Μετάβαση στο κύριο περιεχόμενο
Υποστήριξη
Είσοδος με Microsoft
Είσοδος ή δημιουργία λογαριασμού.
Γεια σας,
Επιλέξτε διαφορετικό λογαριασμό.
Έχετε πολλούς λογαριασμούς
Επιλέξτε τον λογαριασμό με τον οποίο θέλετε να εισέλθετε.

Συμπτώματα

Ας υποθέσουμε ότι προσθέτετε μια στήλη σε έναν πίνακα στον 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 που παρατίθενται στην ενότητα "ισχύει για".

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

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

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

Οι κοινότητες σάς βοηθούν να κάνετε και να απαντάτε σε ερωτήσεις, να δίνετε σχόλια και να ακούτε από ειδικούς με πλούσια γνώση.

Σας βοήθησαν αυτές οι πληροφορίες;

Πόσο ικανοποιημένοι είστε με τη γλωσσική ποιότητα;
Τι επηρέασε την εμπειρία σας;
Πατώντας "Υποβολή" τα σχόλια σας θα χρησιμοποιηθούν για τη βελτίωση των προϊόντων και των υπηρεσιών της Microsoft. Ο διαχειριστής IT θα έχει τη δυνατότητα να συλλέξει αυτά τα δεδομένα. Δήλωση προστασίας προσωπικών δεδομένων.

Σας ευχαριστούμε για τα σχόλιά σας!

×