ΕΠΙΔΙΌΡΘΩΣΗ: Προβλήματα επιδόσεων παρουσιάζονται όταν αυξάνεται η δραστηριότητα κλείδωμα της βάσης δεδομένων στον SQL Server

ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο έχει μεταφραστεί χρησιμοποιώντας λογισμικό μηχανικής μετάφρασης της Microsoft και μπορείτε να το διορθώσετε χρησιμοποιώντας την τεχνολογία Community Translation Framework (CTF) (Πλαίσιο μετάφρασης κοινότητας). Η Microsoft παρέχει μηχανική μετάφραση, επεξεργασία μετά τη μηχανική μετάφραση από την κοινότητα και άρθρα μεταφρασμένα από επαγγελματίες προκειμένου να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής βάσης σε πολλές γλώσσες. Τα άρθρα μηχανικής μετάφρασης και αυτά που επεξεργάζονται ύστερα από μηχανική μετάφραση ενδέχεται να περιέχουν σφάλματα στο λεξιλόγιο, στη σύνταξη ή/και στη γραμματική. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες μας. Για περισσότερες πληροφορίες σχετικά με το CTF, μεταβείτε στην τοποθεσία http://support.microsoft.com/gp/machine-translation-corrections/el.

Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη: 2926217
Ενημέρωση
Από προεπιλογή, Service Pack 1 για SQL Server 2014 και το Service Pack 3 για SQL Server 2012 περιλαμβάνουν αυτήν την ενημέρωση κώδικα και δεν έχετε να προσθέσετε κάποιες σημαίες εντοπισμού για να ενεργοποιήσετε την ενημέρωση κώδικα. Για να ενεργοποιήσετε την ενημέρωση κώδικα, μετά την εγκατάσταση των αθροιστικών ενημερωμένων εκδόσεων στην ενότητα ανάλυση, πρέπει να ξεκινήσετε το Microsoft SQL Server, προσθέτοντας τη σημαία παρακολούθησης Μάρκου παραμέτρους εκκίνησης.
Συμπτώματα
Ας υποθέσουμε ότι εκτελείτε μια παρουσία του Microsoft SQL Server 2014, 2012 διακομιστή SQL, SQL Server 2008 ή SQL Server 2008 R2 σε έναν υπολογιστή που περιέχει πολλούς επεξεργαστές. Όταν ο αριθμός των κλειδωμάτων (τύπος πόρου = βάση ΔΕΔΟΜΈΝΩΝ) για μια συγκεκριμένη βάση δεδομένων υπερβαίνει ένα συγκεκριμένο όριο, αντιμετωπίζετε τα ακόλουθα ζητήματα επιδόσεων:
  • Αυξημένα τιμές παρουσιάζονται για μέτρηση παράταση κλειδώματος LOCK_HASH .

    Σημείωση Ανατρέξτε στην ενότητα "Περισσότερες πληροφορίες" για πληροφορίες σχετικά με τον τρόπο εποπτείας αυτό παράταση κλειδώματος.
  • Ερωτήματα ή λειτουργίες που απαιτούν τα κλειδώματα βάσεων δεδομένων διαρκέσει πολύ χρόνο για να ολοκληρωθεί. Για παράδειγμα, ενδέχεται να παρατηρήσετε τις ακόλουθες καθυστερήσεις απόδοσης:
    • Συνδέσεις SQL Server
    • Συνδεδεμένο διακομιστή ερωτημάτων
    • sp_reset_connection
    • Συναλλαγές
Σημείωση Για να εντοπίσετε τη λίστα των κλειδωμάτων (τύπος πόρου = βάση ΔΕΔΟΜΈΝΩΝ) σε μια βάση δεδομένων, ανατρέξτε στην ενότητα "Περισσότερες πληροφορίες". Η τιμή ορίου διαφέρει από το περιβάλλον.
Προτεινόμενη αντιμετώπιση

Πληροφορίες αθροιστικής ενημερωμένης έκδοσης

Το πρόβλημα επιδιορθώθηκε για πρώτη φορά με την ακόλουθη αθροιστική ενημερωμένη έκδοση του SQL Server.

Αθροιστική ενημερωμένη έκδοση 13 για το SP2 του SQL Server 2008 R2

Αθροιστική ενημερωμένη έκδοση 17 για SQL Server 2008 SP3

Αθροιστική ενημερωμένη έκδοση 1 για SQL Server 2014

Αθροιστική ενημερωμένη έκδοση 9 για SQL Server 2012 SP1

Σχετικά με τις αθροιστικές ενημερωμένες εκδόσεις για τον SQL Server

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

Πληροφορίες άμεσης επιδιόρθωσης

Μια υποστηριζόμενη άμεση επιδιόρθωση είναι διαθέσιμη από τη Microsoft. Ωστόσο, αυτή η άμεση επιδιόρθωση προορίζεται για τη διόρθωση μόνο του προβλήματος που περιγράφεται σε αυτό το άρθρο. Εφαρμόστε αυτήν την άμεση επιδιόρθωση μόνο σε συστήματα που αντιμετωπίζουν το συγκεκριμένο πρόβλημα.

Εάν η άμεση επιδιόρθωση είναι διαθέσιμη για λήψη, θα υπάρχει μια ενότητα "Διαθέσιμη λήψη άμεσης επιδιόρθωσης" στην αρχή αυτού του άρθρου της Γνωσιακής βάσης. Εάν αυτή η ενότητα δεν εμφανίζεται, υποβάλετε μια αίτηση στο τμήμα Εξυπηρέτησης και υποστήριξης πελατών της Microsoft για να αποκτήσετε την άμεση επιδιόρθωση.

Σημείωση Εάν προκύψουν πρόσθετα ζητήματα ή απαιτείται αντιμετώπιση προβλημάτων, ίσως χρειαστεί να δημιουργήσετε ξεχωριστή αίτηση υπηρεσίας. Οι συνηθισμένες χρεώσεις υποστήριξης θα ισχύει για πρόσθετες ερωτήσεις υποστήριξης και θέματα που δεν αφορούν τη συγκεκριμένη επείγουσα επιδιόρθωση. Για την πλήρη λίστα αριθμών τηλεφώνου υποστήριξης και εξυπηρέτησης πελατών της Microsoft ή για να δημιουργήσετε ξεχωριστή αίτηση εξυπηρέτησης, επισκεφθείτε την ακόλουθη τοποθεσία της Microsoft στο Web: Σημείωση Η φόρμα "Διαθέσιμη λήψη άμεσης επιδιόρθωσης" εμφανίζει τις γλώσσες για τις οποίες είναι διαθέσιμη η άμεση επιδιόρθωση. Εάν η γλώσσα σας δεν εμφανίζεται, τότε η άμεση επιδιόρθωση δεν είναι διαθέσιμη για αυτήν τη γλώσσα.

Κατάσταση
Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για ένα ζήτημα των προϊόντων της Microsoft που παρατίθενται στην ενότητα "Ισχύει για".
Περισσότερες πληροφορίες
Όταν μια εφαρμογή δημιουργεί μια σύνδεση με τον SQL Server, δημιουργεί πρώτα ένα περιβάλλον βάσης δεδομένων. Από προεπιλογή, η σύνδεση θα προσπαθήσει να αποκτήσει κλείδωμα βάσης ΔΕΔΟΜΈΝΩΝ σε κατάσταση λειτουργίας απ. Όταν η σύνδεση έχει διακοπεί ή να αλλάξει κατά τη διάρκεια ζωής της σύνδεσης βάσης δεδομένων περιβάλλοντος θα κυκλοφορήσει η ΒΑΛΒΊΔΑ - κλείδωμα της Βάσης ΔΕΔΟΜΈΝΩΝ . Εάν έχετε πολλές ενεργές συνδέσεις που χρησιμοποιούν το ίδιο περιβάλλον βάσης δεδομένων, μπορείτε να έχετε πολλά κλειδώματα του τύπου πόρου βάσης ΔΕΔΟΜΈΝΩΝ για αυτή τη συγκεκριμένη βάση δεδομένων.

Στον υπολογιστή που έχει 16 ή περισσότερα CPU, μόνο τα αντικείμενα πίνακα Χρησιμοποιήστε έναν συνδυασμό διαμερίσματα κλειδώματος. Ωστόσο, τα κλειδώματα βάσεων δεδομένων δεν έχουν διαμερίσματα. Επομένως, τόσο μεγαλύτερο κλειδώνει τον αριθμό των βάσεων δεδομένων, τόσο περισσότερος χρόνος χρειάζεται για να αποκτήσει κλείδωμα στη βάση δεδομένων του SQL Server. Οι περισσότερες εφαρμογές δεν αντιμετωπίζουν προβλήματα που προκαλούνται από αυτήν τη σχεδίαση. Αλλά καθώς ο αριθμός υπερβαίνει ένα συγκεκριμένο όριο, επιπλέον εργασία και χρόνος απαιτείται για να αποκτήσετε το κλείδωμα. Αν και το κόστος είναι μόνο micro δευτερόλεπτα για κάθε επιπλέον κλειδώματος, το συνολικό χρόνο μπορεί να αυξηθεί γρήγορα επειδή τις λίστες παλαιών αρχείων κατακερματισμού του κλειδώματος είναι προστατευμένα, χρησιμοποιώντας μια παράταση κλειδώματος. Αυτό έχει ως αποτέλεσμα πρόσθετες κύκλους Επεξεργαστή και περιμένει πρόσθετες εργαζομένων για να αποκτήσετε το κλείδωμα.

Αυτή η επείγουσα επιδιόρθωση παρέχει διαμερισματοποίησης βάσης ΔΕΔΟΜΈΝΩΝ lock όταν είναι ενεργοποιημένη η σημαία παρακολούθησης T1236 κατά την εκκίνηση. Δημιουργία διαμερισμάτων το κλείδωμα της βάσης ΔΕΔΟΜΈΝΩΝ , το βάθος της λίστας κλείδωμα διατηρεί διαχείρισης σε κάθε τοπικό διαμέρισμα. Έτσι βελτιστοποιείται σημαντικά τη διαδρομή πρόσβασης που χρησιμοποιείται για να αποκτήσετε ένα κλείδωμα της βάσης ΔΕΔΟΜΈΝΩΝ .

Για να εποπτεύσετε την παράταση κλειδώματος LOCK_HASH , μπορείτε να χρησιμοποιήσετε το παρακάτω ερώτημα.
SET NOCOUNT ONCREATE TABLE #spinlock_stats([CaptureTime] datetime,[name] nvarchar(512),[collisions] bigint,[spins] bigint,[spins_per_collision] real,[sleep_time] bigint,[backoffs] int)DECLARE @counter int = 1WHILE @counter < 100      BEGIN            INSERT INTO #spinlock_stats SELECT GETDATE() as "CaptureTime" , * FROM sys.dm_os_spinlock_stats WHERE [name] = 'LOCK_HASH'            WAITFOR DELAY '00:00:05'            SET @counter +=1      ENDSELECT * FROM #spinlock_stats ORDER BY [CaptureTime]DROP TABLE #spinlock_stats
Για περισσότερες πληροφορίες σχετικά με τη διάγνωση και την Επίλυση διένεξης παράταση κλειδώματος στον SQL Server, μεταβείτε στο ακόλουθο έγγραφο:

Σημείωση Αν και αυτό το έγγραφο έχει συνταχθεί για SQL Server 2008 R2, οι πληροφορίες είναι εξακολουθούν να ισχύουν για το SQL Server 2012.
Αναφορές
Για περισσότερες πληροφορίες σχετικά με τις σημαίες εντοπισμού στο SQL Server 2012, μεταβείτε στην ακόλουθη τοποθεσία Web TechNet:


Για περισσότερες πληροφορίες σχετικά με τον τρόπο για να βρείτε τον αριθμό κλειδωμάτων βάσης δεδομένων στο χρήστη ανά βάση δεδομένων, χρησιμοποιήστε το παρακάτω ερώτημα για να υπολογίσετε αυτήν την τιμή:
select  Resource_database_id, resource_type, request_mode, request_status,  count (*) 'LockCount' from sys.dm_tran_locks group by  Resource_database_id, resource_type, request_mode, request_status


Προειδοποίηση: Αυτό το άρθρο έχει μεταφραστεί αυτόματα

Ιδιότητες

Αναγνωριστικό άρθρου: 2926217 - Τελευταία αναθεώρηση: 12/03/2015 06:00:00 - Αναθεώρηση: 9.0

Microsoft SQL Server 2012 Enterprise, Microsoft SQL Server 2012 Developer, Microsoft SQL Server 2012 Standard, Microsoft SQL Server 2012 Express, Microsoft SQL Server 2012 Web, Microsoft SQL Server 2012 Service Pack 1, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2008 Service Pack 3, Microsoft SQL Server 2008 R2 Service Pack 2

  • kbqfe kbfix kbsurveynew kbexpertiseadvanced kbautohotfix kbhotfixserver kbmt KB2926217 KbMtel
Σχόλια