Αναγν. άρθρου: 931279 - Τελευταία αναθεώρηση: Παρασκευή, 24 Δεκεμβρίου 2010 - Αναθεώρηση: 2.0 Τιμές χρονισμού του SQL Server ενδέχεται να είναι εσφαλμένα, όταν χρησιμοποιείτε τα βοηθητικά προγράμματα ή τεχνολογίες που αλλάζουν συχνότητες CPU
Σε αυτήν τη σελίδαΠερίληψηMicrosoft SQL Server 2005 χρησιμοποιεί τον μετρητή CPU υψηλής ανάλυσης για την παροχή δυνατοτήτων χρονισμού μικροδευτερόλεπτο. Ένα μικροδευτερόλεπτο είναι το εκατομμυριοστό ενός δευτερολέπτου (ή το ένα χιλιοστό ενός χιλιοστού του δευτερολέπτου). Ωστόσο, τιμές χρονισμού του SQL Server μπορεί να είναι εσφαλμένες, αν χρησιμοποιείτε τεχνολογίες που αλλάζουν συχνότητες CPU. Για παράδειγμα, αυτό το ζήτημα ενδέχεται να προκύψει όταν χρησιμοποιείτε οποιαδήποτε από τις ακόλουθες τεχνολογίες:
ΣυμπτώματαΚατά τη χρήση της εντολής SET ΣΤΑΤΙΣΤΙΚΏΝ TIME για να εμφανίσετε την εκτέλεση διακομιστή ανάλυσης και μεταγλώττιση φορές, ενδέχεται να λάβετε λανθασμένες τιμές. Για παράδειγμα, ενδέχεται να παρατηρήσετε ότι ο χρόνος του χρόνου εκτέλεσης του SQL Server είναι πολύ περισσότερο από το χρόνο της CPU. Αυτό το ζήτημα ενδέχεται να επηρεάσει την ακρίβεια της ρύθμιση των επιδόσεων. Αυτό το ζήτημα προκύπτει όταν χρησιμοποιείτε μία από τις τεχνολογίες που παρατίθενται στην ενότητα "Σύνοψη" στο διακομιστή. ΑιτίαΑυτό το ζήτημα παρουσιάζεται επειδή αλλάζουν συχνότητες CPU όταν χρησιμοποιείτε αυτές τις τεχνολογίες. SQL Server 2005 χρησιμοποιεί τον μετρητή CPU υψηλής ανάλυσης για την παροχή δυνατοτήτων χρονισμού μικροδευτερόλεπτο. Εάν αλλάξουν CPU συχνότητες για την εξοικονόμηση ενέργειας και μείωση της εξόδου θερμότητας, υπολογισμού διάρκειες μπορεί να είναι εσφαλμένη. Προτεινόμενη αντιμετώπισηΠληροφορίες για το Service PackΓια να επιλύσετε αυτό το ζήτημα, αποκτήστε το πιο πρόσφατο service pack για SQL Server 2005. Για περισσότερες πληροφορίες, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft (Knowledge Base):913089
(http://support.microsoft.com/kb/913089/
)
Τρόπος απόκτησης του τελευταίου service pack για τον SQL Server 2005 ΣΗΜΕΙΩΣΗΣτον SQL Server 2005 Service Pack 3 και σε μελλοντικά service pack, δεν χρησιμοποιείται η σήμανση χρόνου επεξεργαστή. Αυτές οι εκδόσεις του SQL Server 2005 χρησιμοποιεί μια πιο αξιόπιστη χρονομέτρου που έχει μια μέγιστη ακρίβεια 1 χιλιοστό του δευτερολέπτου.Κατάσταση Το ζήτημα αυτό διορθώθηκε αρχικά στο SQL Server 2005 Service Pack 3. Εναλλακτικός τρόπος αντιμετώπισηςSQL Server 2005 απαιτεί σημείων δεδομένων γνωστή και σταθερά για να εκτελέσετε τη ρύθμιση της απόδοσης ακριβείς. Εάν είναι ενεργοποιημένες οι δυναμικές τροποποιήσεις συχνότητα CPU στον υπολογιστή, μπορείτε να τις απενεργοποιήσετε έτσι ώστε η CPU διατηρήσετε μια σταθερή συχνότητα ταχύτητα πριν ξεκινήσετε την Εποπτεία και ρύθμιση της απόδοσης του SQL Server. Για να το κάνετε αυτό, χρησιμοποιήστε τις παρακάτω μεθόδους. Ρυθμίστε τις παραμέτρους του συνδυασμού τροφοδοσίας του υπολογιστή για την επιβολή της CPU για να παραμένουν στη μέγιστη συχνότηταΓια να το κάνετε αυτό, ακολουθήστε τα εξής βήματα: (Use the tools in the Windows Recovery Environment to repair Windows Vista. To do this, follow these steps:):
If you cannot restart the computer, enable SQL Server processor affinity to prevent SQL Server worker threads from moving between CPUs. When you do this, you do not have to restart the computer even if a divergence between CPU frequency values occurs. To enable SQL Server processor affinity for all CPUs on the server, you must use a different mask, depending on the number of logical processors that are on the server. The following table lists example scenarios. Σύμπτυξη αυτού του πίνακα
Use third-party utilities and drivers to synchronize CPU frequencies and CPU clock countersOn rare occasions, a system may require an update from the manufacturer to correct CPU frequency issues. It is a best practice to check the system for the latest BIOS, microcode, and firmware updates if you suspect that the system may have an issue.Περισσότερες πληροφορίεςMicrosoft SQL Server 2000 and earlier versions of SQL Server use the Windows timing mechanisms. The timing mechanisms use millisecond-precision values. Typically, this precision is 10 to 15 ms. However, the precision may be as large as 55 ms. SQL Server queries frequently complete within single-digit millisecond or microsecond time spans. This precision requires a high-resolution timer. Therefore, these versions of SQL Server report the duration of some queries as 0 ms. Therefore, it is difficult to monitor performance and tune SQL Server performance in earlier versions of SQL Server. SQL Server 2005 improves accuracy by using the high-resolution CPU counter to provide microsecond timing capabilities. When you use the technologies that are listed in the "Summary" section, the reported timing values may be incorrect. This issue may affect the following objects and features:
The text of the error message resembles one of the following error messages: Μήνυμα λάθους 1 The time stamp counter of CPU on scheduler id 2 is not synchronized with other CPUs. Μήνυμα λάθους 2 CPU time stamp frequency has changed from 191469 to 1794177 ticks per millisecond. The new frequency will be used SQL Server uses the Real Time Stamp Counter (RDTSC) instruction to acquire the 64-bit CPU tick count. You can divide this value by the CPU frequency to convert the value to millisecond values. Timing variations can occur when the CPU frequency changes or drift occurs. CPU steppingCPU stepping is defined as a deliberate change in CPU frequency. CPU stepping may also be known as Intel SpeedStep technology or AMD PowerNow! technology. When CPU stepping occurs, the CPU speed may increase or decrease in increments as small as 50 MHz to conserve energy and reduce heat output. CPUs that are within the same non-uniform memory access (NUMA) node do not independently adjust frequencies.The following table illustrates how CPU stepping changes may affect timing calculations. Σύμπτυξη αυτού του πίνακα
In this example, the following timing calculations occur when you use a frequency value of 200 or 100:
If this calculation is used in anRPC: ολοκληρώθηκεtrace event, thedurationANDend timedata columns are reported incorrectly. Για ναRPC: ολοκληρώθηκεσυμβάντων καταγράφει το πλήθος υποδιαιρέσεων χρονομέτρησης της CPU και ώρα ρολογιού τοίχου. Για να αποκτήσετε την υψηλότερη ανάλυση χρονισμού από τα Windows παρέχει στον SQL Server 2005, τοδιάρκειαANDώρα λήξηςυπολογίζονται οι στήλες δεδομένων σε ένα πρόγραμμα εντοπισμού του SQL Server χρησιμοποιώντας το που πέρασαν πλήθος υποδιαιρέσεων χρονομέτρησης της CPU. Για ναώρα λήξηςστήλη υπολογίζεται προσθέτοντας τοδιάρκειαστήλη για τοώρα έναρξηςCOLUMN. Σε αυτό το παράδειγμα, τοώρα λήξηςστήλη υπολογίζεται προσθέτοντας εσφαλμένα 2.5 ms ή 5 ms για την ώρα έναρξης. ΠαρέκκλισηΠαρέκκλιση είναι ένα divergence σε τιμές ρολογιού του Επεξεργαστή. Τα συστήματα με πολλούς επεξεργαστές μπορούν να παράγουν διαφορετικές τιμές του ρολογιού της CPU για το ίδιο σημείο στο χρόνο. Παρόλο που δεν είναι συνηθισμένος, CPU ενδέχεται να αντιμετωπίσετε διαχωρισμό ρολόι μέσα στο χρόνο.Το παρακάτω παράδειγμα δείχνει πώς αλλαγές παρέκκλιση μπορεί να επηρεάσει το αποτέλεσμα τηςδιάρκειαστήλη δεδομένων σε μια ανίχνευση του SQL Server. Το παράδειγμα αυτό θεωρεί ότι η συχνότητα CPU παραμένει σταθερή κατά 200 κτύπων ανά χιλιοστό του δευτερολέπτου. Ο ακόλουθος πίνακας παρουσιάζει τα συμβάντα σε αυτό το σενάριο. Σύμπτυξη αυτού του πίνακα
Ωστόσο, διακόπηκε η εκτέλεση δέσμης σε κάποιο σημείο και SQL Server αποστέλλονται την εκτέλεση δέσμης στην ουρά βρίσκεται σε αναμονή. When SQL Server sent the SQL Server worker thread that services this batch to the runnable queue again, Windows dispatched the thread to run on the second CPU (CPU 2). The SQL Server worker thread completed running on CPU 2. Because of CPU drift, the end tick value that was captured from CPU 2 was 1900 instead of 900. You can avoid this behavior if you enable SQL Server processor affinity. The following timing calculations are used in this example:
Drift warning messages are added to SQL Server 2005 to indicate that the performance outputs that are mentioned earlier may not be reliable. In some uncovered situations, SQL Server 2005 SP2 may report warning messages about the following:
You can use trace flag 8033 (–T8033) to return to the reporting behavior in the original release version of SQL Server 2005 and in SQL Server 2005 SP1. The original release version of SQL Server 2005 and SQL Server 2005 SP1 do not report drift warning messages. If you are running the original release version of SQL Server 2005 or SQL Server 2005 SP1 without problems, you can typically ignore the messages. Why does the WAITFOR DELAY statement work correctly? What about periodic system processes?Time-out mechanisms are not affected by the high-resolution design. SQL Server does not use the high-resolution timer for timer-based activities. Some time-out activities are based on the reduced resolution timer that uses theGetTickCountFunction. These time-out activities include lock time-out, the WAITFOR DELAY statement, and deadlock detection.Για περισσότερες πληροφορίες, κάντε κλικ στους αριθμούς των άρθρων παρακάτω για να προβάλετε τα άρθρα της Γνωσιακής Βάσης (Knowledge Base) της Microsoft: 938448
(http://support.microsoft.com/kb/938448/
)
A Windows Server 2003-based server may experience time-stamp counter drift if the server uses dual-core AMD Opteron processors or multiprocessor AMD Opteron processors 895980
(http://support.microsoft.com/kb/895980/
)
Programs that use the QueryPerformanceCounter function may perform poorly in Windows Server 2003 and in Windows XP Τα προϊόντα άλλων κατασκευαστών που αναφέρονται σε αυτό το άρθρο έχουν κατασκευαστεί από εταιρείες ανεξάρτητες από τη Microsoft. Η Microsoft δεν παρέχει καμία εγγύηση, σιωπηρή ή άλλη, σχετικά με τις επιδόσεις ή την αξιοπιστία αυτών των προϊόντων.Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
Μηχανικά μεταφρασμένοΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης. Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:931279
(http://support.microsoft.com/kb/931279/en-us/
)
| Άλλοι πόροι Tοποθεσίες υποστήριξης
ΚοινότηταΆμεση λήψη βοήθειαςΜεταφράσεις άρθρων
|






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email


Επιστροφή στην αρχή
