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

Συμπτώματα

Ας υποθέσουμε ότι προσθέτετε μια στήλη σε έναν πίνακα στον Microsoft SQL Server 2012 ή στον SQL Server 2014. Όταν το μέγεθος της γραμμής είναι κοντά στο μέγιστο επιτρεπόμενο μέγεθος που είναι 8.060 byte, η λειτουργία προσθήκης μπορεί να διαρκέσει αρκετή ώρα.

Αιτία

Το πρόβλημα παρουσιάζεται επειδή, όταν το συνολικό μέγεθος της γραμμής είναι κοντά στο μέγιστο επιτρεπόμενο μέγεθος γραμμής, ο SQL Server κάνει μια πλήρη σάρωση του πίνακα για να βεβαιωθεί ότι η προσθήκη μιας νέας στήλης δεν παραβιάζει την ακεραιότητα των δεδομένων. Οι εκδόσεις πριν από τον SQL Server 2012 δεν κάνουν αυτόν τον λογαριασμό, και αυτό κάνει τη γλώσσα ορισμού δεδομένων (DDL) να εκτελείται ταχύτερα. Ωστόσο, αυτή η συμπεριφορά έχει ως αποτέλεσμα την αποτυχία των μεταγενέστερων λειτουργιών, όπως η ενημέρωση γραμμής ή η συρρίκνωση, εάν το μέγεθος της γραμμής υπερβαίνει το επιτρεπόμενο μέγεθος.

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

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

  • Μπορείτε να ενεργοποιήσετε τη σημαία ανίχνευσης 647, χρησιμοποιώντας την παράμετρο Startup. Για πληροφορίες, ανατρέξτε στο θέμα Επιλογές εκκίνησης υπηρεσίας μηχανισμού βάσης δεδομένων.

  • Μπορείτε να εκτελέσετε το ακόλουθο ερώτημα (Παρακαλείσθε να αντικαταστήσετε <όνομα πίνακα> με το πραγματικό όνομα του πίνακα) για να ελέγξετε τον συγκεκριμένο πίνακα πριν από τη λειτουργία σε ένα σύστημα παραγωγής και να σχεδιάσετε το αποτέλεσμα αυτού του ζητήματος. Εάν το αποτέλεσμα είναι μεγαλύτερο από 8.060, ο πίνακάς σας υπόκειται σε αυτό το πρόβλημα. Επιπλέον, εάν έχετε πέσει στήλες, πρέπει να αλλάξετε τον πίνακα με την επιλογή αναδόμηση. Η αναδόμηση του πίνακα μπορεί να κάνει το ερώτημα να επιστρέψει σωστά αποτελέσματα.

    select  1+1+2 + 2 +  (case  when sum (case when leaf_offset < 0 then 1 else 0 end) > 0 then 2 else 0 end)  +  ( (count (*) + 7)/8 ) + count (case when leaf_offset < 0 then 1 else null end) * 2 +  sum( case when max_length=-1 then 24 else max_length end)  from sys.system_internals_partition_columns   col join sys.partitions par on col.partition_id = par.partition_id  where object_id = object_id ('<table name>')  and  index_id in (0,1) and partition_number =1 
  • Μπορείτε να προσθέσετε στήλες μεταβλητού μήκους ή κατακερματισμένες στήλες όταν η εφαρμογή σας προσθέτει συχνά νέες στήλες στον πίνακα. Είναι μια λειτουργία μόνο μετα-δεδομένων, ακόμα και αν το συνολικό μέγεθος όλων των στηλών υπερβαίνει τα 8.060 byte.

Κατάσταση

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

Χρειάζεστε περισσότερη βοήθεια;

Θέλετε περισσότερες επιλογές;

Εξερευνήστε τα πλεονεκτήματα της συνδρομής, περιηγηθείτε σε εκπαιδευτικά σεμινάρια, μάθετε πώς μπορείτε να προστατεύσετε τη συσκευή σας και πολλά άλλα.