Συμβουλή συστήματοςΑυτό το άρθρο ισχύει για διαφορετικό λειτουργικό σύστημα από αυτό που χρησιμοποιείτε. Το περιεχόμενο του άρθρου που ενδέχεται να μην σας αφορά έχει απενεργοποιηθεί.
Αυτό το άρθρο βήμα προς βήμα περιγράφει τον τρόπο αντιμετώπισης προβλημάτων του SQL Server ζητήματα επιδόσεων. Αντιμετώπιση προβλημάτων απόδοσης περιλαμβάνει τη χρήση μιας σειράς βημάτων για να απομονώσετε και να προσδιορίσετε την αιτία του μια επιβράδυνση της εφαρμογής. Πιθανές αιτίες είναι οι εξής:
Ο αποκλεισμός.
Διένεξη πόρων συστήματος.
Προβλήματα στο σχεδιασμό εφαρμογής.
Ένα συγκεκριμένο σύνολο ερωτήματα ή αποθηκευμένες διαδικασίες με μεγάλα χρονικά διαστήματα της εκτέλεσης.
Αυτό το άρθρο περιγράφει πώς να προσδιορίσετε την αιτία ενός ζητήματος επιδόσεων. Αναφέρεται επίσης άλλα άρθρα της Γνωσιακής Βάσης της Microsoft που καλύπτουν τις λεπτομέρειες των ζητημάτων επιδόσεων ειδικά για πρόσθετη αντιμετώπιση προβλημάτων.
SQL Profiler είναι ένα ισχυρό εργαλείο κατά την αντιμετώπιση προβλημάτων του SQL Server 7.0 ή νεότερη έκδοση, εφαρμογή επιδόσεων. SQL Profiler σάς επιτρέπει να καταγράψετε εύκολα όλα τα συμβάντα που παρουσιάζονται στο διακομιστή με μια τυπική φόρτωση και παρέχει πληροφορίες σχετικά με αυτά. Χρήση SQL Profiler σε συνδυασμό με τα Microsoft Windows NT Performance Monitor και ορισμένα απλά ερωτήματα για να προσδιορίσετε αν ο αποκλεισμός προέκυψε θα σας δώσει τις πληροφορίες πρέπει να έχετε για να επιλύσετε τη μεγάλη πλειοψηφία των προβλημάτων επιδόσεων.
1. Ορίσετε SQL Profiler για να καταγράψετε μια ανίχνευση. Για να το κάνετε αυτό, ακολουθήστε τα εξής βήματα:
Άνοιγμα SQL Profiler.
Στο διακομιστήΕργαλείαμενού, κάντε κλικ στο κουμπίOptions.
Βεβαιωθείτε ότι τοΌλων των κλάσεων συμβάντωνκαι τοΌλες οι στήλες δεδομένωνΟι επιλογές είναι ενεργοποιημένες.
Κάντε κλικOk.
Δημιουργήστε μια νέα ανίχνευση.
Στο διακομιστήFILEμενού, σημείοΝέα, και στη συνέχεια κάντε κλικ στο κουμπίΑνίχνευσης.
Στο διακομιστήΓενικάκαρτέλα, για να καθορίσετε ένα όνομα παρακολούθηση και καταγραφή των δεδομένων σε ένα αρχείο.
Στο διακομιστήΣυμβάντακαρτέλα, προσθέστε τους ακόλουθους τύπους συμβάντων ανίχνευσης σας:
Σύμπτυξη αυτού του πίνακαΑνάπτυξη αυτού του πίνακα
Επικεφαλίδα
Προσθήκη συμβάντος
Περιγραφή
Οι δρομείς
CursorPrepare
Το συμβάν αυτό υποδεικνύει ότι έχει προετοιμαστεί ένα δρομέα σε μια πρόταση SQL με χρήση του ODBC, OLEDB ή της βιβλιοθήκης ΒΔ.
Σφάλμα και προειδοποίηση
Δεν υπάρχει στήλη στατιστικά στοιχεία
Το συμβάν αυτό δηλώνει ότι δεν υπήρχαν διαθέσιμα στατιστικά στοιχεία στηλών που μπορεί να είναι χρήσιμη για τη βελτιστοποίηση. Για ναTextη στήλη εμφανίζει τη λίστα των στηλών με τα στατιστικά στοιχεία που λείπουν. Αυτό το συμβάν, σε συνδυασμό με έναΔιάφορα: Auto-UpdateStatsτο συμβάν, υποδεικνύει ότι τοΑυτόματη δημιουργία στατιστικών στοιχείωνΕνεργοποιήθηκε η επιλογή.
Διάφορα.
Προσοχή
Το συμβάν αυτό υποδεικνύει ότι ένα σήμα προσοχή έχει αποσταλεί από έναν υπολογιστή-πελάτη.
Διάφορα.
Αυτόματη UpdateStats
Το συμβάν αυτό υποδεικνύει ότι τοΑυτόματη ενημέρωση στατιστικών στοιχείωνΕνεργοποιήθηκε η επιλογή.
Διάφορα.
Προετοιμασία SQL Exec
Το συμβάν αυτό υποδεικνύει ότι ODBC, OLE DB ή της βιβλιοθήκης ΒΔ εκτελεστεί μια ήδη έτοιμη πρόταση Transact-SQL ή προτάσεις.
Διάφορα.
Σχεδιασμός εκτέλεσης
Αυτό το συμβάν εμφανίζεται στο δέντρο σχεδίου από την πρόταση Transact-SQL που εκτελέστηκε.
Διάφορα.
Προετοιμασία SQL
Το συμβάν αυτό υποδεικνύει ότι έχει προετοιμαστεί μια εφαρμογή ODBC, OLE DB ή βιβλιοθήκης ΒΔ Transact-SQL πρόταση ή προτάσεις για χρήση.
Διάφορα.
Unprepare SQL
Το συμβάν αυτό υποδεικνύει ότι μια εφαρμογή ODBC, OLE DB ή βιβλιοθήκης ΒΔ που δεν έχει προετοιμαστεί Transact-SQL πρόταση ή προτάσεις για χρήση.
Περίοδοι λειτουργίας
Σύνδεση
Το συμβάν αυτό υποδεικνύει ότι έχει γίνει μια νέα σύνδεση.
Περίοδοι λειτουργίας
Αποσύνδεση
Το συμβάν αυτό υποδεικνύει ότι ένας υπολογιστής-πελάτης έχει αποσυνδεθεί.
Περίοδοι λειτουργίας
Σύνδεση υπάρχοντος
Το συμβάν αυτό υποδεικνύει ότι μια σύνδεση υπήρχε κατά την έναρξή της ανίχνευσης SQL Profiler.
Αποθηκευμένες διαδικασίες
SP: ολοκληρώθηκε
Το συμβάν αυτό υποδεικνύει πότε μια αποθηκευμένη διαδικασία έχει ολοκληρώσει την εκτέλεση.
Αποθηκευμένες διαδικασίες
SP: μεταγλωττίζει
Το συμβάν αυτό υποδεικνύει ότι μια αποθηκευμένη διαδικασία έχει recompiled κατά την εκτέλεση.
Αποθηκευμένες διαδικασίες
SP: εκκίνηση
Το συμβάν αυτό υποδεικνύει πότε μια αποθηκευμένη διαδικασία ξεκίνησε η εκτέλεση.
Αποθηκευμένες διαδικασίες
SP: StmtCompleted
Το συμβάν αυτό υποδεικνύει πότε μια πρόταση σε μια αποθηκευμένη διαδικασία έχει ολοκληρώσει την εκτέλεση.
TSQL:
SQL:BatchCompleted
Το συμβάν αυτό δηλώνει ότι θα ολοκληρωθεί μια δέσμη Transact-SQL. Για ναTextη στήλη εμφανίζει την πρόταση που εκτελέστηκε.
TSQL:
SQL:StmtCompleted
Το συμβάν αυτό υποδεικνύει μια πρόταση Transact-SQL ολοκληρώθηκε. Για ναTextη στήλη εμφανίζει την πρόταση που εκτελέστηκε.
TSQL:
RPC: ολοκληρώθηκε
Το συμβάν αυτό υποδεικνύει ότι έχει ολοκληρωθεί μια κλήση απομακρυσμένης διαδικασίας (RPC).
If your application is receiving timeout errors, stops
responding (hangs), or experiences other events that cause the problem
statements to never complete, also include the following events:
Σύμπτυξη αυτού του πίνακαΑνάπτυξη αυτού του πίνακα
TSQL:
SQL:BatchStarting
This event
indicates the start of a Transact-SQL batch. Για ναTextcolumn shows the statement being executed.
TSQL:
SQL:StmtStarting
This event
indicates the start of a Transact-SQL statement. Για ναTextcolumn shows the statement being executed.
TSQL:
RPC:Starting
This event indicates
the start of a remote procedure call (RPC).
Stored Procedures
SP: StmtStarting
This
event indicates when a statement in a stored procedure is starting
execution.
This will help to make certain that you can see
the statement that was executing when the timeout occurred
Στο διακομιστήData Columnstab, make sure that the following columns are included:
Για τον SQL Server 2000
Start Time
End Time
LoginSid
SPID
Event Class
TextData
IntegerData
BinaryData
Duration
CPU
Reads
Writes
Application Name
NT User
Name
DBUserName
For SQL Server 7.0
Start Time
End Time
Connection
ID
SPID
Event Class
Text
Integer
Data
Binary Data
Duration
CPU
Reads
Writes
Application Name
NT User
Name
SQL User Name
For information about using SQL Profiler, see SQL Server
7.0 and SQL Server 2000 Books Online.
2. Use Performance Monitor to capture Windows NT and SQL
Server counters. Για να το κάνετε αυτό, ακολουθήστε τα εξής βήματα:
Start Windows NT Performance Monitor.
Στο διακομιστήViewμενού, κάντε κλικ στο κουμπίLog.
Στο διακομιστήOptionsμενού, κάντε κλικ στο κουμπίLog.
Specify a file name and location to log the performance
counters. You can adjust the update interval as appropriate.
Στο διακομιστήΕπεξεργαστείτε τη διαδρομήμενού, κάντε κλικ στο κουμπίAdd To
Log.
Add all objects. Both the Windows NT and the SQL Server
objects.
To start the log, on theOptionsμενού, κάντε κλικ στο κουμπίLog, και στη συνέχεια κάντε κλικ στοStart Logτο κουμπί.
Για πρόσθετες πληροφορίες, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft (Knowledge Base):
150934
(http://support.microsoft.com/kb/150934/EN-US/
)
How to Create a Performance Monitor Log for NT Troubleshooting
3. Check for blocking.
To see if
blocking is occurring, run thesp_whosystem stored procedure:
exec sp_who
This output will contain ablkCOLUMN. Εξετάστε το αποτέλεσμα για όλες τις καταχωρήσεις μη μηδενική τιμή που δηλώνει ότι ο αποκλεισμός προέκυψε. Εκτελέστε αυτήν τη διαδικασία περιοδικά σε όλο το χρονικό πλαίσιο όταν προέκυψε το επιβράδυνση των επιδόσεων.
ΣΗΜΕΙΩΣΗΕκτελεί τοsp_whoυπάρχει αποθηκευμένη διαδικασία είναι μια επιταγή για να δείτε εάν ο αποκλεισμός συστήματος.
Συνήθως, δεν είναι επαρκείς πληροφορίες πλήρως αντιμετώπισης ενός ζητήματος αποκλεισμού.Για πρόσθετες πληροφορίες, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft (Knowledge Base):
251004
(http://support.microsoft.com/kb/251004/EN-US/
)
Το αρχείο INF: Τρόπος παρακολούθησης αποκλεισμού του SQL Server 7.0
Ιδανικά, είναι προτιμότερο να καταγράψετε την SQL Profiler, Εποπτεία επιδόσεων και αποκλεισμού εξόδου κατά τη διάρκεια του ίδιου χρονικού πλαισίου. Αυτό το χρονικό πλαίσιο πρέπει να περιλαμβάνουν ένα χρόνο όταν τίθεται επιδόσεις εφαρμογών από καλή σε εσφαλμένο. Ο συνδυασμός αυτών των πληροφοριών θα σας βοηθήσει να λάβετε μια εικόνα πιο καθαρό από όπου προέκυψε το επιβράδυνση των επιδόσεων.
Ερμηνεύουν τα αποτελέσματα
Έλεγχος για τον αποκλεισμό.
Αν υπάρχει ήδη ο φάκελοςblkστήλη με τοsp_whoΈξοδος είναι μη μηδενική τιμή, αυτό σημαίνει ότι ο αποκλεισμός προέκυψε στο σύστημά σας. Εάν οι διεργασίες που εμποδίζουν τους, τις διεργασίες που έχουν αποκλειστεί μπορεί να αντιμετωπίσετε μεγαλύτερους χρόνους εκτέλεσης.Για πρόσθετες πληροφορίες, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft (Knowledge Base):
224453
(http://support.microsoft.com/kb/224453/EN-US/
)
Το αρχείο INF: Κατανόηση και επίλυση του SQL Server 7.0 ή 2000 αποκλεισμού προβλημάτων
Εξετάστε το αποτέλεσμα SQL Profiler.
Προβολή δεδομένων SQL Profiler αποτελεσματικά είναι εξαιρετικά χρήσιμες στην επίλυση προβλημάτων επιδόσεων. Το πιο σημαντικό πράγμα που πρέπει να αντιληφθούν είναι ότι δεν χρειάζεται να βλέπετε όλα τα στοιχεία που λαμβάνονται. Η επιλεκτική. SQL Profiler παρέχει δυνατότητες σας βοηθούν να αποτελεσματικά προβάλλετε την καταγραφή δεδομένων. Στο διακομιστήΙδιότητες (Properties)καρτέλες (κάντε κλικΙδιότητες (Properties)Στο διακομιστήFILEμενού), SQL Profiler σάς επιτρέπει να περιορίσετε τα δεδομένα που εμφανίζονται από την κατάργηση στηλών δεδομένων ή τα συμβάντα, ομαδοποίηση (ταξινόμηση) στήλες δεδομένων και την εφαρμογή φίλτρων. Μπορείτε να αναζητήσετε την ανίχνευση ολόκληρου ή μόνο μια συγκεκριμένη στήλη για συγκεκριμένες τιμές (από τοΕπεξεργαστείτε τη διαδρομήμενού, κάντε κλικ στο κουμπίΕύρεση). Μπορείτε επίσης να αποθηκεύσετε τα δεδομένα SQL Profiler σε πίνακα του SQL Server (από τοFILEμενού, σημείοΑποθήκευση ωςΚάντε κλικΠίνακας ανίχνευσης), και στη συνέχεια εκτελέστε ερωτήματα SQL για αυτήν.
Προσέξτε να πραγματοποιήσετε φιλτράρισμα μόνο σε ένα αρχείο ανίχνευσης που αποθηκεύσατε προηγουμένως. Εάν εκτελείτε αυτά τα βήματα σε ένα ενεργό ανίχνευσης, κινδυνεύετε να χάσετε δεδομένα που καταγράφηκε από τη στιγμή που ξεκίνησε η παρακολούθηση. Αποθήκευση ενός ενεργού παρακολούθησης σε ένα αρχείο ή πίνακα πρώτα (από τοFILEμενού, κάντε κλικ στο κουμπίΑποθήκευση ως) και στη συνέχεια ανοίξετε πάλι (από τοFILEμενού, κάντε κλικ στο κουμπίOpen) πριν να συνεχίσετε. Όταν εργάζεστε σε ένα αρχείο αποθηκευμένο ανίχνευσης, το φιλτράρισμα δεν καταργήσετε οριστικά τα δεδομένα που φιλτράρεται, απλώς δεν εμφανίζει την. Μπορείτε να προσθέσετε και να καταργήσετε τα συμβάντα και στήλες δεδομένων, όπως είναι απαραίτητο για να εστιάσετε τις αναζητήσεις.
Το πρώτο βήμα για την εξέταση αρχείων παρακολούθησης SQL Profiler για περιπτώσεις απόδοσης είναι να προσδιορίσετε πού παρουσιάζονται τους διαφορετικούς τύπους συμβάντων στο διακομιστή.
Ομαδοποίηση της ανίχνευσης από κλάσης συμβάντων:
α από τοFILEμενού, κάντε κλικ στο κουμπίΙδιότητες (Properties).
b. από τοΔεδομένα στηλώνκαρτέλα, χρησιμοποιήστε το κουμπί ΕΠΑΝΩ ΒΕΛΟΣ για να μετακινηθείτεΣυμβάν κλάσηςκάτω από τοΟμάδεςεπικεφαλίδα και το ΚΆΤΩ κουμπί για να καταργήσετε όλες τις άλλες στήλες στην περιοχή τουΟμάδεςεπικεφαλίδα.
γ. Κάντε κλικ στο κουμπίOk.
Ομαδοποίηση κατά τη στήλη κλάση συμβάντος που εμφανίζει τον τύπο των συμβάντων που παρουσιάζονται στον SQL Server, και πόσο συχνά. Αναζήτηση σε αυτήν τη στήλη για τα ακόλουθα συμβάντα:
SP:RECOMPILE
Το συμβάν αυτό υποδεικνύει ότι μια αποθηκευμένη διαδικασία έχει recompiled κατά την εκτέλεση. Διάφορα συμβάντα μεταγλωττίστε υποδεικνύουν ότι SQL Server αφιερώνει πόρους στη μεταγλώττιση ερώτημα αντί για εκτέλεση του ερωτήματος.
Για πρόσθετες πληροφορίες σχετικά με την αντιμετώπιση προβλημάτων εναναμεταγλωττίσεων αποθηκευμένη διαδικασία, κάντε κλικ στον αριθμό του άρθρου παρακάτω για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
Ένα σήμα προσοχή δηλώνει ότι ένα ερώτημα ακυρώθηκε από έναν υπολογιστή-πελάτη. Αυτό είναι συνήθως λόγω κάποιας από τις δύο αιτίες:
Ο χρήστης ακύρωσε το ερώτημα ρητά ή τερματισμός της εφαρμογής.
-ή-
Ξεπεράστηκε το χρονικό όριο ερωτήματος.
Εάν βλέπετε την προσοχή των σημάτων, αυτό μπορεί να υποδεικνύει ότι ορισμένα ερωτήματα εκτελούνται πιο αργά.
Για πρόσθετες πληροφορίες, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft (Knowledge Base):
243589
(http://support.microsoft.com/kb/243589/EN-US/
)
HOW TO: Troubleshoot Slow-Running Queries on SQL Server 7.0 or Later
To help identify the query that received the
attention signal, revise the trace so that it is not grouped by any data
column, and filter on the system process ID (SPID) that received it (on theFilterstab, set SPID =x). Για ναSQL:StmtStarting,SQL:BatchStarting, ήSP:StmtStartingevent immediately preceding the attention signal is the query
that received the timeout or cancel. You can search theEvent Classcolumn for the Attention event to easily locate it (on theΕπεξεργαστείτε τη διαδρομήμενού, κάντε κλικ στο κουμπίΕύρεση).
PREPARE SQL and EXEC
PREPARED SQL
Για ναPrepare
SQLevent indicates that an ODBC, OLE DB, or DB-Library application
prepared a Transact-SQL statement ,or statements, for use. Για ναExec
Prepared SQLevent indicates that the application made use of an existing
prepared statement to run a command.
Compare the number of times
these two events occur. Ideally, an application must prepare a SQL statement
one time and run it several times. This saves the Optimizer the cost of
compiling a new plan each time the statement is executed. Therefore, the number
ofΠροετοιμασία SQL Execevents should be much larger than the number ofΠροετοιμασία SQLevents. If the number ofΠροετοιμασία SQLevents is roughly equivalent to the number ofΠροετοιμασία SQL Execevents, this may indicate that the application is not making good
use of the prepare/execute model. It is best not to prepare a statement that is
only going to be executed a single time. For more information about preparing
SQL statements, see the "Preparing SQL Statements" topic in SQL Server 7.0
Books Online.
If the number ofExec Prepared
SQLevents is not three to five times greater than the number ofΠροετοιμασία SQLevents, the application may not be making efficient use of the
prepare/execute model.For additional information, click the
following article number to view the article in the Microsoft Knowledge Base:
243588
(http://support.microsoft.com/kb/243588/EN-US/
)
HOW TO: Troubleshoot the Performance of Ad-Hoc Queries
In SQL Server 2000, the excessive roundtrips
per prepare/execute will be eliminated, so the 3-5 ratio is not as stringent.
However, it can still be a good rule, to try and reuse the prepared plan more
than one time.
Missing Column
Statistics
This event indicates that statistical information the
Optimizer could have used to generate a better query plan was unavailable. This
indicates that the query does not have useful indexes on at least one table
involved. Beyond not having a useful index, SQL Server does not even have
statistical data about the columns involved to make an informed decision for a
query plan. The outcome is that the query plan generated may not be the optimal
one. If you see these events, look at the query and the execution plan
generated, and then see the following article in the Microsoft Knowledge Base
for steps to take to improve the performance of this query:
243589
(http://support.microsoft.com/kb/243589/
)
HOW TO: Troubleshoot Slow-Running Queries on SQL Server 7.0 or Later
When you view theMissing Column
Statisticsσυμβάντα, εστίαση πρώτα σε εκείνους που παρουσιάζονται σε σχέση με ερωτήματα μακράς διαρκείας. Ορισμένα συμβάντα ενδέχεται να δημιουργηθούν και να επιλυθούν αυτόματα από τον SQL Server με autostats και ενδέχεται να μην απαιτούν παρέμβαση του χρήστη. Επομένως, είναι η καλύτερη στρατηγική πρώτη εστίασης σε ερωτημάτων με μεγάλη διάρκεια, όπως φαίνεται παρακάτω σε αυτό το άρθρο και σημείωση, εάν υπάρχουν σχετικέςΠου λείπουν Στατιστικά στοιχεία στήληςσυμβάντα.
Εάν δεν βλέπετε τις εμφανίσεις αυτών των κλάσεων συμβάντων, το επόμενο βήμα είναι να προσδιορίσετε πού κατανάλωσε ο χρόνος.
Ομαδοποίηση το αποτέλεσμα της παρακολούθησης κατά τη διάρκεια:
α από τοFILEμενού, κάντε κλικ στο κουμπίΙδιότητες (Properties).
Στο διακομιστήΔεδομένα στηλώνκαρτέλα, χρησιμοποιήστε το κουμπί ΕΠΑΝΩ ΒΕΛΟΣ για να μετακινηθείτεΔιάρκειακάτω από τοΟμάδεςεπικεφαλίδα και το ΚΆΤΩ κουμπί για να καταργήσετε όλες τις άλλες στήλες στην περιοχή τουΟμάδεςεπικεφαλίδα.
γ. από τοΣυμβάντακαρτέλα, καταργήστε όλες τις ομάδες εκτός απόTSQLANDΑποθηκευμένες διαδικασίες.
d. Κάντε κλικ στο κουμπίOk.
Με την ομαδοποίηση κατά τη διάρκεια, μπορείτε να δείτε εύκολα τι προτάσεις SQL, δέσμες ή διαδικασίες εκτελούνται η βραδύτερη. Είναι πολύ σημαντικό να εξετάσετε όχι μόνο κατά το χρόνο όταν προέκυψε το πρόβλημα, αλλά και για να λάβετε μια γραμμή βάσης του πότε οι επιδόσεις είναι καλό να συγκρίνετε με. Μπορείτε να φιλτράρετε με χρόνο έναρξης για να διασπάσετε το ίχνος σε ενότητες, όταν έχει καλή απόδοση και μια ξεχωριστή ενότητα για το πότε έγινε κακή απόδοση. Αναζητήστε τα ερωτήματα με τη μεγαλύτερη διάρκεια όταν είναι καλή απόδοση. Αυτά είναι το πιο πιθανό είναι η ρίζα του προβλήματος. Εάν η συνολική απόδοση του συστήματος έχει μειωθεί, ακόμα καλή ερωτημάτων μπορεί να εμφανίσει μεγάλης διάρκειας όπως περιμένετε στους πόρους συστήματος.
Εάν δείτε ένα μικρό αριθμό ερωτημάτων με μεγάλη διάρκεια, ανατρέξτε στο ακόλουθο άρθρο της Γνωσιακής Βάσης της Microsoft:
243589
(http://support.microsoft.com/kb/243589/
)
ΔΙΑΔΙΚΑΣΙΕΣ: Αντιμετώπιση προβλημάτων αργές-εκτέλεση ερωτημάτων στον SQL Server 7.0 ή νεότερη έκδοση
Αν δείτε ότι στη διάρκεια των επιμέρους ερωτήματα είναι χαμηλό, αλλά υπάρχουν πολλά από αυτά, και τοSQL μεταγλωττίσεων/δευτερόλεπτοείναι υψηλή μετρητών στην Εποπτεία επιδόσεων έξοδο (περιγράφεται παρακάτω), ανατρέξτε στο ακόλουθο άρθρο της Γνωσιακής Βάσης της Microsoft:
243588
(http://support.microsoft.com/kb/243588/
)
ΔΙΑΔΙΚΑΣΙΕΣ: Αντιμετώπιση προβλημάτων της απόδοσης των ερωτημάτων Ad-Hoc
Εξετάστε τις υπόλοιπες στήλες δεδομένων:
Πρόσθετες πληροφορίες σε τη φύση του προβλήματος επιδόσεων μπορεί να κέρδους, προβάλλοντας τις στήλες δεδομένων στα δεδομένα ανιχνεύσεων. Παρακάτω δίνονται ορισμένα πράγματα που πρέπει να ληφθούν υπόψη:
Εάν η χρήση της CPU είναι υψηλή, ομάδα από τον Επεξεργαστή για να δείτε τα ερωτήματα είναι το μεγαλύτερο χρήστες του χρόνου της CPU. Αναζήτηση τουTextη στήλη "κλειδί κατακερματισμού" ή "Συγχώνευση", για να βρείτε ποιο σχέδιο εκτέλεσης ερωτήματος χρησιμοποιεί αυτούς τους τύπους συνδέσμου. Αυτοί οι περισσότερες CPU και της μνήμης γραφικών από ένα σύνδεσμο ένθετων βρόχου, που είναι συνήθως εισόδου/ΕΞΌΔΟΥ γραφικών.
Εάν η είσοδος/ΈΞΟΔΟΣ δίσκου είναι το σημείο κυκλοφοριακής συμφόρησης, ομάδα, αναγνώσεις και εγγραφές. Προβολή τουΌνομα εφαρμογής,Όνομα χρήστη NTANDΤο όνομα χρήστη SQLπεδία για να σας βοηθήσει να απομονώσετε το αρχείο προέλευσης ερωτήματος μακράς διαρκείας.
Η στήλη δεδομένων ακεραίων του συμβάντος εξαίρεσης υποδεικνύει τα σφάλματα που επιστράφηκαν σε υπολογιστή-πελάτη. Μπορείτε να βρείτε το κείμενο του μηνύματος λάθους κατά την αναζήτηση του αριθμού στον SQL Server 7.0 ηλεκτρονικά βιβλία.
Για ναΤο Αναγνωριστικό σύνδεσηςτο πεδίο είναι χρήσιμο για να βεβαιωθείτε ότι προβάλλετε τις ίδιες περιόδους λειτουργίας για έναν συγκεκριμένο υπολογιστή-πελάτη. Ένα αναγνωριστικό SPID δεν μπορεί να εγγυηθεί, όπως ένας χρήστης μπορεί να έχει αποσυνδεθεί και ένας νέος χρήστης συνδεδεμένος και έλαβε το ίδιο αναγνωριστικό SPID.
Το όφελος που προκύπτουν από αυτά τα πεδία μπορεί να διαφέρουν ανάλογα με το σενάριο, αλλά θα πρέπει να εξεταστεί εάν εμφανή πεδία παραπάνω σε αυτό το άρθρο δεν παρέχει μια απάντηση.
Εξετάστε τα αποτελέσματα της Εποπτείας επιδόσεων.
Η Εποπτεία επιδόσεων θα εμφανίζει το συνολικό σύστημα συνωστισμούς. Μπορεί να είναι SQL Server και την εφαρμογή των εκτελούνται όπως αναμένεται, αλλά είναι underpowered, οποίο δεν διαθέτει μνήμη ή άλλοι πόροι του υπολογιστή. Ή συγκεκριμένους μετρητές μπορούν να παρουσιαστούν δυσκολίες με τον τρόπο εκτέλεσης της εφαρμογής και του SQL Server. Τουλάχιστον, ελέγξτε τους παρακάτω μετρητές:
Αντικείμενο: Επεξεργασία
Ο μετρητής: επεξεργαστή
Instance: SQL Server
Object: Processor
Counter: %Processor
Time
Instance: Check each processor instance
Object: Physical Disk
Counter: Avg. Disk Queue
Length
Instance: Check each physical disk
instance
Object: SQL Server:SQL Statistics
Counter: SQL
Compilations/sec
Look for a trend over the timeframe from when performance went
from good to bad: what increased first? Is the computer CPU bound or DISK IO
bound? This information, together with the Profiler output earlier in this
article, will help you narrow down the problem areas. High CPU problems may
indicate large numbers of stored procedure recompilations, ad-hoc query
compilations, or intensive use of hash and merge joins. The articles referenced
earlier in this article must be followed to determine the correct course of
action. High disk queue lengths may indicate the need for more system memory or
an improved disk subsystem.
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:224587
(http://support.microsoft.com/kb/224587/en-us/
)
Πόση προσπάθεια καταβάλλατε για να χρησιμοποιήσετε αυτό το άρθρο;
Πολύ λίγη
Λίγη
Μέτρια
Μεγάλη
Πολύ μεγάλη
Πείτε μας για ποιον λόγο και με ποιον τρόπο θα μπορούσαμε να βελτιώσουμε αυτές τις πληροφορίες
Σας ευχαριστούμε! Τα σχόλιά σας θα μας βοηθήσουν να βελτιώσουμε το περιεχόμενο υποστήριξης. Για περισσότερες επιλογές βοήθειας, επισκεφτείτε την αρχική σελίδα της Βοήθειας και υποστήριξης.