KB2986423-memperbaiki: butuh waktu lama untuk menambahkan kolom baru ke tabel saat ukuran baris melebihi ukuran maksimum yang diizinkan

Gejala

Misalnya Anda menambahkan kolom ke tabel di Microsoft SQL Server 2012 atau SQL Server 2014. Saat ukuran baris mendekati ukuran maksimum yang diizinkan yaitu 8.060 byte, operasi penambahan mungkin memakan waktu lama.

Penyebab

Masalah ini terjadi karena, ketika ukuran Total baris mendekati ukuran maksimum baris yang diperbolehkan, SQL Server melakukan pemindaian penuh tabel untuk memastikan bahwa penambahan kolom baru tidak melanggar integritas data. Versi sebelum 2012 SQL Server tidak melakukan pemeriksaan ini, dan yang membuat bahasa definisi data (DDL) berjalan lebih cepat. Namun, perilaku ini menyebabkan kegagalan operasi berikutnya seperti memperbarui baris atau menyusut jika ukuran baris melebihi ukuran yang diperbolehkan.

Setiap pembaruan kumulatif baru untuk SQL Server berisi semua hotfix dan semua perbaikan keamanan yang disertakan dengan pembaruan kumulatif sebelumnya. Lihat pembaruan kumulatif terbaru untuk SQL Server:

Informasi Selengkapnya

  • Anda dapat mengaktifkan bendera pelacakan 647 dengan menggunakan parameter permulaan. Untuk informasi, lihat opsi permulaan layanan mesin database.

  • Anda bisa menjalankan kueri berikut (ganti nama <tabel> dengan nama tabel Anda yang sebenarnya) untuk menguji tabel tertentu sebelum operasi pada sistem produksi, dan rencanakan efek masalah ini. Jika hasilnya lebih besar dari 8.060, tabel Anda tunduk pada masalah ini. Selain itu, jika Anda telah menjatuhkan kolom, Anda harus mengubah tabel dengan opsi Rebuild. Menyusun ulang tabel bisa membuat kueri mengembalikan hasil yang benar.

    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 
  • Anda bisa mempertimbangkan menambahkan kolom panjang variabel atau kolom jarang ketika aplikasi Anda sering menambahkan kolom baru ke tabel. Ini adalah operasi metadata saja meskipun ukuran Total Semua kolom melebihi 8.060 byte.

Status

Microsoft telah mengonfirmasi bahwa ini adalah masalah pada produk Microsoft yang tercantum di bagian "Berlaku untuk".

Perlu bantuan lainnya?

Kembangkan keterampilan Anda
Jelajahi pelatihan
Dapatkan fitur baru terlebih dahulu
Gabung Microsoft Insider

Apakah informasi ini bermanfaat?

Terima kasih atas umpan balik Anda!

Terima kasih atas umpan balik Anda! Sepertinya menghubungkan Anda ke salah satu agen dukungan Office kami akan sangat membantu.

×