Συμπτώματα
Ας υποθέσουμε ότι έχετε έναν πίνακα που έχει ένα συγκεντρωτικό ευρετήριο columnstore στον Microsoft SQL Server 2014. Μπορείτε να εκτελέσετε ένα ερώτημα DDL στον πίνακα για να αλλάξετε τον τύπο δεδομένων μιας υπάρχουσας στήλης. Για παράδειγμα, μπορείτε να ενημερώσετε τον τύπο δεδομένων για Column_1 Table_1 από το VARCHAR (499) στο NVARCHAR (500) εκτελώντας την ακόλουθη εντολή:
ALTER TABLE Table_1 ALTER COLUMN Column_1 NVARCHAR(500) NOT NULL
Σε αυτήν την περίπτωση, προκύπτουν πολλές αποτυχίες διεκδίκησης και λαμβάνετε το ακόλουθο μήνυμα σφάλματος:
Τοποθεσία: <διαδρομή αρχείου> \Xmcolenc.inl: 413Expression: PF_CURRENT_STATUS = = PFS_OK (στο XMColumnEncoder<ανυπόγραφο char *>:: EncodeValueForSecondary) spid: <SPID>Αναγνωριστικό διεργασίας: <Αναγνωριστικό διεργασίας >Περιγραφή: hr: 0X0Location: <διαδρομή αρχείου> \xmerror.cpp: 43EXPRESSION: 0 (στο PFSetLastError) SPID: <Αναγνωριστικό διεργασίας SPID>αναγνωριστικό διεργασίας : <
Επιπλέον, δημιουργούνται πολλά αρχεία ένδειξης σφαλμάτων μνήμης στο φάκελο καταγραφής σφαλμάτων του SQL Server και πολλά μηνύματα σφάλματος που μοιάζουν με τα παρακάτω καταγράφονται στο αρχείο καταγραφής σφαλμάτων του SQL Server:
<ημερομηνία ώρα> SPID<Αναγνωριστικό> * * * η ένδειξη σφαλμάτων στοίβας αποστέλλεται στο <Όνομα δίσκου>: \Program Files\Microsoft SQL Server\MSSQL12. SQL2014\MSSQL\LOG\SQLDump0002.txt<ημερομηνία> SPID<Αναγνωριστικό> * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Date Time * * * * * * * Date Time * * * * * * * * * * * * * * * * * * * * * * * * * <><> <<IDIDDate TimeIDDate Timeημερομηνία ώρα> SPID<Αναγνωριστικό> * <ημερομηνία ώρας> SPID<Αναγνωριστικό> * θέση: <διαδρομή αρχείου> \xmcolenc.inl: 413<ημερομηνία ώρα> SPID<Αναγνωριστικό> * παράσταση: PF_CURRENT_STATUS = = PFS_OK<ημερομηνία ώρας> SPID<ID> ID * (στο XMColumnEncoder<ανυπόγραφο char *>:: EncodeValueForSecondary) <ημερομηνία ώρα> SPID<ID> * SPID: 60<ημερομηνία ώρας> SPID<ID> * Αναγνωριστικό διεργασίας Date Time : 3680<ημερομηνία ώρα> SPID<Αναγνωριστικό> * Περιγραφή: hr: 0x0<ημερομηνία ώρα> SPID<ID> * <ημερομηνία ώρας> spid<αναγνωριστικό> * Buffer εισόδου 136 byte-<ημερομηνία ώρα> SPID<ID> * ALTER TABLE Table_1 ALTER COLUMN ΣΤ1 nvarchar (500) not null;
Επίλυση
Μετά την εφαρμογή αυτής της επείγουσας επιδιόρθωσης, ενδέχεται να εμφανιστεί το ακόλουθο νέο μήνυμα σφάλματος όταν αποτύχει το ερώτημα DDL:
Η πρόταση ALTER TABLE απέτυχε, επειδή ένα δευτερεύον λεξικό έφτασε στο μέγιστο όριο μεγέθους. Εξετάστε το ενδεχόμενο να αποθέσετε το ευρετήριο columnstore, αλλάζοντας τη στήλη και, στη συνέχεια, δημιουργώντας ένα νέο ευρετήριο του columnstore
Αυτή η επιδιόρθωση αποτρέπει επίσης τη δημιουργία αρχείων ένδειξης σφαλμάτων μνήμης στο αρχείο καταγραφής σφαλμάτων του SQL Server. το πρόβλημα διορθώθηκε για πρώτη φορά με τις ακόλουθες αθροιστικές ενημερώσεις του SQL Server:
Κάθε νέα αθροιστική ενημέρωση για τον SQL Server περιέχει όλες τις επείγουσες επιδιορθώσεις και όλες τις επιδιορθώσεις ασφαλείας που συμπεριλήφθηκαν στην προηγούμενη αθροιστική ενημέρωση. Συνιστούμε να κάνετε λήψη και εγκατάσταση των πιο πρόσφατων αθροιστικών ενημερώσεων για τον SQL Server:
Κατάσταση
Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για ένα πρόβλημα στα προϊόντα της Microsoft που παρατίθενται στην ενότητα "ισχύει για".