Saya memiliki prosedur tersimpan yang memotong beberapa tabel dengan sekitar 1,75M baris di masing-masing, sebelum memasukkan data baru (berdasarkan data dalam tabel lain, perhitungan, dll.)
Garis dasar sangat sederhana:
- Tabel terpotong
- Masukkan baris 1,75M dalam 'kumpulan' sekitar 75.000 per waktu.
Saya bertanya-tanya apakah saya harus secara eksplisit membangun kembali indeks kapan saja dalam proses ini? misalnya
- Tabel terpotong
ALTER INDEX ALL ON xxx REBUILD WITH (FILLFACTOR=90)
[atau yang serupa]- Masukkan baris 1,75M
atau mungkin
ALTER INDEX ALL ON xxx DISABLE
- Tabel terpotong
- Masukkan baris 1,75M
ALTER INDEX ALL ON xxx REBUILD WITH (FILLFACTOR=90)
[atau yang serupa]
Bantuan apa pun yang dihargai ... bukan DBA - Dev yang tahu DB dengan cukup baik lebih akurat!
sql-server
performance
index
BlueChippy
sumber
sumber
insert into
dan saat ini tidak adaorder by
klausa, tetapi saya bisa menambahkan bahwa jika itu akan membantu? ID dan Kode juga diindeks secara terpisah.Jawaban:
Seperti kebanyakan pertanyaan jenis ini, itu tergantung. Tidak mungkin bahwa Anda akan memasukkan data dalam urutan "benar" untuk semua indeks yang terlibat, yang berarti bahwa semua indeks tersebut cenderung menemui banyak pemisahan halaman selama proses penyisipan. Jadi mari kita asumsikan bahwa Anda memasukkan dalam urutan indeks berkerumun. Anda bisa menonaktifkan semua indeks yang tidak berkerumun, memotong, melakukan penyisipan Anda, dan kemudian membangun kembali semua indeks yang tidak berkerumun. Tentu saja, mencoba kedua pendekatan itu akan memberi tahu Anda kebenaran yang lebih cepat terlepas dari teori di baliknya. :)
sumber
Plan Basic dengan semua indeks yang diaktifkan mungkin lambat dan dapat menyebabkan fragmentasi.
ALTER INDEX REBUILD pada tabel terpotong dan karenanya kosong tidak ada gunanya, jadi Anda perlu mengubah Rencana Anda A. Seharusnya:
Mungkin masih lambat, tapi setidaknya Anda mendapatkan indeks yang tajam.
Paket B baik-baik saja. Tes ketiganya dan lihat mana yang tercepat dan yang memberikan indeks fragmentasi paling sedikit. Kemudian putuskan apakah pembangunan kembali layak dilakukan.
sumber