ΔΙΑΔΙΚΑΣΙΕΣ: Αντιμετώπιση προβλημάτων επιδόσεων της εφαρμογής με τον SQL Server

Μεταφράσεις άρθρων Μεταφράσεις άρθρων
Αναγν. άρθρου: 224587 - Δείτε τα προϊόντα στα οποία αναφέρεται το συγκεκριμένο άρθρο.
Ανάπτυξη όλων | Σύμπτυξη όλων

Σε αυτήν τη σελίδα

Περίληψη

Αυτό το άρθρο βήμα προς βήμα περιγράφει τον τρόπο αντιμετώπισης προβλημάτων του SQL Server ζητήματα επιδόσεων. Αντιμετώπιση προβλημάτων απόδοσης περιλαμβάνει τη χρήση μιας σειράς βημάτων για να απομονώσετε και να προσδιορίσετε την αιτία του μια επιβράδυνση της εφαρμογής. Πιθανές αιτίες είναι οι εξής:
  • Ο αποκλεισμός.
  • Διένεξη πόρων συστήματος.
  • Προβλήματα στο σχεδιασμό εφαρμογής.
  • Ένα συγκεκριμένο σύνολο ερωτήματα ή αποθηκευμένες διαδικασίες με μεγάλα χρονικά διαστήματα της εκτέλεσης.
Αυτό το άρθρο περιγράφει πώς να προσδιορίσετε την αιτία ενός ζητήματος επιδόσεων. Αναφέρεται επίσης άλλα άρθρα της Γνωσιακής Βάσης της Microsoft που καλύπτουν τις λεπτομέρειες των ζητημάτων επιδόσεων ειδικά για πρόσθετη αντιμετώπιση προβλημάτων.

SQL Profiler


SQL Profiler είναι ένα ισχυρό εργαλείο κατά την αντιμετώπιση προβλημάτων του SQL Server 7.0 ή νεότερη έκδοση, εφαρμογή επιδόσεων. SQL Profiler σάς επιτρέπει να καταγράψετε εύκολα όλα τα συμβάντα που παρουσιάζονται στο διακομιστή με μια τυπική φόρτωση και παρέχει πληροφορίες σχετικά με αυτά. Χρήση SQL Profiler σε συνδυασμό με τα Microsoft Windows NT Performance Monitor και ορισμένα απλά ερωτήματα για να προσδιορίσετε αν ο αποκλεισμός προέκυψε θα σας δώσει τις πληροφορίες πρέπει να έχετε για να επιλύσετε τη μεγάλη πλειοψηφία των προβλημάτων επιδόσεων.

Τι προς παρακολούθηση

1. Ορίσετε SQL Profiler για να καταγράψετε μια ανίχνευση. Για να το κάνετε αυτό, ακολουθήστε τα εξής βήματα:
  1. Άνοιγμα SQL Profiler.
  2. Στο διακομιστήΕργαλείαμενού, κάντε κλικ στο κουμπίOptions.
  3. Βεβαιωθείτε ότι τοΌλων των κλάσεων συμβάντωνκαι τοΌλες οι στήλες δεδομένωνΟι επιλογές είναι ενεργοποιημένες.
  4. Κάντε κλικOk.
  5. Δημιουργήστε μια νέα ανίχνευση.
  6. Στο διακομιστήFILEμενού, σημείοΝέα, και στη συνέχεια κάντε κλικ στο κουμπίΑνίχνευσης.
  7. Στο διακομιστήΓενικάκαρτέλα, για να καθορίσετε ένα όνομα παρακολούθηση και καταγραφή των δεδομένων σε ένα αρχείο.
  8. Στο διακομιστήΣυμβάντακαρτέλα, προσθέστε τους ακόλουθους τύπους συμβάντων ανίχνευσης σας:

    Σύμπτυξη αυτού του πίνακαΑνάπτυξη αυτού του πίνακα
    ΕπικεφαλίδαΠροσθήκη συμβάντοςΠεριγραφή
    Οι δρομείς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).
  9. 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:BatchStartingThis event indicates the start of a Transact-SQL batch. Για ναTextcolumn shows the statement being executed.
    TSQL:SQL:StmtStartingThis event indicates the start of a Transact-SQL statement. Για ναTextcolumn shows the statement being executed.
    TSQL:RPC:StartingThis event indicates the start of a remote procedure call (RPC).
    Stored ProceduresSP: StmtStartingThis 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
  10. Στο διακομιστή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. Για να το κάνετε αυτό, ακολουθήστε τα εξής βήματα:
  1. Start Windows NT Performance Monitor.
  2. Στο διακομιστήViewμενού, κάντε κλικ στο κουμπίLog.
  3. Στο διακομιστήOptionsμενού, κάντε κλικ στο κουμπίLog.
  4. Specify a file name and location to log the performance counters. You can adjust the update interval as appropriate.
  5. Στο διακομιστήΕπεξεργαστείτε τη διαδρομήμενού, κάντε κλικ στο κουμπίAdd To Log.
  6. Add all objects. Both the Windows NT and the SQL Server objects.
  7. To start the log, on theOptionsμενού, κάντε κλικ στο κουμπίLog, και στη συνέχεια κάντε κλικ στοStart Logτο κουμπί.

Για πρόσθετες πληροφορίες, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft (Knowledge Base):
150934How 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Το αρχείο INF: Τρόπος παρακολούθησης αποκλεισμού του SQL Server 7.0

Εκτέλεση της εφαρμογής σε τυπική φόρτωσης

Ιδανικά, είναι προτιμότερο να καταγράψετε την SQL Profiler, Εποπτεία επιδόσεων και αποκλεισμού εξόδου κατά τη διάρκεια του ίδιου χρονικού πλαισίου. Αυτό το χρονικό πλαίσιο πρέπει να περιλαμβάνουν ένα χρόνο όταν τίθεται επιδόσεις εφαρμογών από καλή σε εσφαλμένο. Ο συνδυασμός αυτών των πληροφοριών θα σας βοηθήσει να λάβετε μια εικόνα πιο καθαρό από όπου προέκυψε το επιβράδυνση των επιδόσεων.


Ερμηνεύουν τα αποτελέσματα

  1. Έλεγχος για τον αποκλεισμό.

    Αν υπάρχει ήδη ο φάκελοςblkστήλη με τοsp_whoΈξοδος είναι μη μηδενική τιμή, αυτό σημαίνει ότι ο αποκλεισμός προέκυψε στο σύστημά σας. Εάν οι διεργασίες που εμποδίζουν τους, τις διεργασίες που έχουν αποκλειστεί μπορεί να αντιμετωπίσετε μεγαλύτερους χρόνους εκτέλεσης.Για πρόσθετες πληροφορίες, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft (Knowledge Base):
    224453Το αρχείο INF: Κατανόηση και επίλυση του SQL Server 7.0 ή 2000 αποκλεισμού προβλημάτων
  2. Εξετάστε το αποτέλεσμα 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:
    243586Το αρχείο INF: Αντιμετώπιση προβλημάτων Recompilation αποθηκευμένης διαδικασίας


    Προσοχή

    Ένα σήμα προσοχή δηλώνει ότι ένα ερώτημα ακυρώθηκε από έναν υπολογιστή-πελάτη. Αυτό είναι συνήθως λόγω κάποιας από τις δύο αιτίες:

    Ο χρήστης ακύρωσε το ερώτημα ρητά ή τερματισμός της εφαρμογής.

    -ή-

    Ξεπεράστηκε το χρονικό όριο ερωτήματος.

    Εάν βλέπετε την προσοχή των σημάτων, αυτό μπορεί να υποδεικνύει ότι ορισμένα ερωτήματα εκτελούνται πιο αργά.

    Για πρόσθετες πληροφορίες, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft (Knowledge Base):
    243589HOW 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:
    243588HOW 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:
    243589HOW 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ΔΙΑΔΙΚΑΣΙΕΣ: Αντιμετώπιση προβλημάτων αργές-εκτέλεση ερωτημάτων στον SQL Server 7.0 ή νεότερη έκδοση
    Αν δείτε ότι στη διάρκεια των επιμέρους ερωτήματα είναι χαμηλό, αλλά υπάρχουν πολλά από αυτά, και τοSQL μεταγλωττίσεων/δευτερόλεπτοείναι υψηλή μετρητών στην Εποπτεία επιδόσεων έξοδο (περιγράφεται παρακάτω), ανατρέξτε στο ακόλουθο άρθρο της Γνωσιακής Βάσης της Microsoft:
    243588ΔΙΑΔΙΚΑΣΙΕΣ: Αντιμετώπιση προβλημάτων της απόδοσης των ερωτημάτων Ad-Hoc
    Εξετάστε τις υπόλοιπες στήλες δεδομένων:

    Πρόσθετες πληροφορίες σε τη φύση του προβλήματος επιδόσεων μπορεί να κέρδους, προβάλλοντας τις στήλες δεδομένων στα δεδομένα ανιχνεύσεων. Παρακάτω δίνονται ορισμένα πράγματα που πρέπει να ληφθούν υπόψη:

    Εάν η χρήση της CPU είναι υψηλή, ομάδα από τον Επεξεργαστή για να δείτε τα ερωτήματα είναι το μεγαλύτερο χρήστες του χρόνου της CPU. Αναζήτηση τουTextη στήλη "κλειδί κατακερματισμού" ή "Συγχώνευση", για να βρείτε ποιο σχέδιο εκτέλεσης ερωτήματος χρησιμοποιεί αυτούς τους τύπους συνδέσμου. Αυτοί οι περισσότερες CPU και της μνήμης γραφικών από ένα σύνδεσμο ένθετων βρόχου, που είναι συνήθως εισόδου/ΕΞΌΔΟΥ γραφικών.

    Εάν η είσοδος/ΈΞΟΔΟΣ δίσκου είναι το σημείο κυκλοφοριακής συμφόρησης, ομάδα, αναγνώσεις και εγγραφές. Προβολή τουΌνομα εφαρμογής,Όνομα χρήστη NTANDΤο όνομα χρήστη SQLπεδία για να σας βοηθήσει να απομονώσετε το αρχείο προέλευσης ερωτήματος μακράς διαρκείας.

    Η στήλη δεδομένων ακεραίων του συμβάντος εξαίρεσης υποδεικνύει τα σφάλματα που επιστράφηκαν σε υπολογιστή-πελάτη. Μπορείτε να βρείτε το κείμενο του μηνύματος λάθους κατά την αναζήτηση του αριθμού στον SQL Server 7.0 ηλεκτρονικά βιβλία.

    Για ναΤο Αναγνωριστικό σύνδεσηςτο πεδίο είναι χρήσιμο για να βεβαιωθείτε ότι προβάλλετε τις ίδιες περιόδους λειτουργίας για έναν συγκεκριμένο υπολογιστή-πελάτη. Ένα αναγνωριστικό SPID δεν μπορεί να εγγυηθεί, όπως ένας χρήστης μπορεί να έχει αποσυνδεθεί και ένας νέος χρήστης συνδεδεμένος και έλαβε το ίδιο αναγνωριστικό SPID.

    Το όφελος που προκύπτουν από αυτά τα πεδία μπορεί να διαφέρουν ανάλογα με το σενάριο, αλλά θα πρέπει να εξεταστεί εάν εμφανή πεδία παραπάνω σε αυτό το άρθρο δεν παρέχει μια απάντηση.
  3. Εξετάστε τα αποτελέσματα της Εποπτείας επιδόσεων.

    Η Εποπτεία επιδόσεων θα εμφανίζει το συνολικό σύστημα συνωστισμούς. Μπορεί να είναι 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.

Ιδιότητες

Αναγν. άρθρου: 224587 - Τελευταία αναθεώρηση: Κυριακή, 19 Δεκεμβρίου 2010 - Αναθεώρηση: 2.0
Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • Microsoft SQL Server 7.0 Standard Edition
Λέξεις-κλειδιά: 
kbproductlink kbhowtomaster kbhowto kbinfo kbmt KB224587 KbMtel
Μηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:224587

Αποστολή σχολίων

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com