KB2887888 - ΕΠΙΔΙΌΡΘΩΣΗ: Αργές επιδόσεις στο SQL Server όταν δημιουργείτε ένα ευρετήριο σε έναν τύπο χωρικών δεδομένων ενός μεγάλου πίνακα σε μια παρουσία SQL Server 2012 ή SQL Server 2014

Ισχύει για
SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

Συμπτώματα

Όταν προσπαθείτε να δημιουργήσετε ένα ευρετήριο (χρησιμοποιώντας CREATE INDEX ή ALTER INDEX) σε έναν τύπο χωρικών δεδομένων ενός μεγάλου πίνακα στο Microsoft SQL Server 2012 ή SQL Server 2014, η διένεξη είναι υψηλή στον τύπο αναμονής CMEMTHREAD και οι επιδόσεις του SQL Server μειώνονται.

Επίλυση

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

Αθροιστική ενημέρωση 1 για το SQL Server 2014 /el-gr/help/2931693

Αθροιστική ενημερωμένη έκδοση 7 για SQL Server 2012 SP1 /el-gr/help/2894115

Πληροφορίες σχετικά με τις αθροιστικές ενημερώσεις για SQL Server

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

      

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

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

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

/contactus/?ws=support Σημείωση Η φόρμα "Διαθέσιμη λήψη επείγουσας επιδιόρθωσης" εμφανίζει τις γλώσσες για τις οποίες είναι διαθέσιμη η επείγουσα επιδιόρθωση. Εάν δεν βλέπετε τη γλώσσα σας, αυτό συμβαίνει επειδή δεν υπάρχει διαθέσιμη επείγουσα επιδιόρθωση για αυτήν τη γλώσσα.

Περισσότερες πληροφορίες

Ένας τύπος αναμονής CMEMTHREAD υποδεικνύει την αναμονή στα εσωτερικά αντικείμενα μνήμης με ασφάλεια νημάτων. Υψηλότερα επίπεδα παραλληλισμού ερωτήματος μπορεί να προκαλέσουν την αναμονή που οδηγεί σε μειωμένη απόδοση της χωρικής δραστηριότητας.

Αυτή η επιδιόρθωση διαμερίζει το CMEMTHREAD που σχετίζεται με το "αντικείμενο χωρικής μνήμης" χρησιμοποιώντας τη διαμέριση κόμβου NUMA. Αυτό μειώνει τον ταυτοχρονισμό της δραστηριότητας του εργαζομένου με τον αριθμό των ενεργών προγραμματιστών σε έναν μεμονωμένο κόμβο. Για συστήματα με υψηλότερα επίπεδα προγραμματιστών ανά κόμβο, η σημαία ανίχνευσης –T8048 μπορεί να χρησιμοποιηθεί για περαιτέρω διαμέριση όλων των αντικειμένων μνήμης που επιτρέπουν τη διαμέριση μέσω χρονοδιαγράμματος. Χρησιμοποιήστε προσεκτικά τη σημαία ανίχνευσης, καθώς εισάγει μια μικρή ποσότητα μνήμης σε όλα τα αντικείμενα μνήμης που έχουν χωριστεί σε κόμβους NUMA.

Σημείωση Το αντικείμενο χωρικής μνήμης δημιουργείται όταν το SqlServerSpatial110.dll φορτώνεται στο χώρο διευθύνσεων SQL Server διαδικασίας. Στις περισσότερες περιπτώσεις, αυτό απαιτεί επανεκκίνηση της διεργασίας SQL Server για να εφαρμοστούν τα εφέ σημαίας ανίχνευσης.

Ο τύπος αναμονής CMEMTHREAD αυξάνεται για οποιαδήποτε αναμονή αντικειμένου μνήμης με ασφάλεια νήματος, όχι μόνο για το χωρικό αντικείμενο. Ο ακόλουθος ορισμός περιόδου λειτουργίας XEvent και η χρήση δημόσιων συμβόλων μπορούν να χρησιμοποιηθούν για τον προσδιορισμό της συγκεκριμένης γραμμής κώδικα που δημιουργεί αναμονές CMEMTHREAD:CREATE EVENT SESSION wait_stacks
ΣΤΟ ΔΙΑΚΟΜΙΣΤΉ
ΠΡΟΣΘΉΚΗ ΣΥΜΒΆΝΤΟΣ sqlos.wait_info
(
      action(package0.callstack)
      όπου opcode = 1 -- η αναμονή ολοκληρώθηκε
            και wait_type = 191 -- CMEMTHREAD
)
προσθέστε package0.asynchronous_bucketizer προορισμού (SET source_type = 1, source = 'package0.callstack'),
προσθήκη package0.ring_buffer προορισμού (SET max_memory = 4096)
Με (MAX_DISPATCH_LATENCY = 1 ΔΕΥΤΕΡΟΛΈΠΤΟ)
Μετάβαση
Alter event session wait_stacks on server state = start
μετάβαση

Εκτέλεση της αναπαραγωγής

επιλέξτε event_session_address, target_name, execution_count, διανομή (target_data ως XML)
από sys.dm_xe_session_targets xst
      Inner join sys.dm_xe_sessions XS ON (xst.event_session_address = xs.address)
όπου xs.name = 'wait_stacks'
μετάβαση

Κατάσταση

Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για ένα ζήτημα που αφορά τα προϊόντα της Microsoft που παρατίθενται στην ενότητα "Ισχύει για".