Berapa ukuran sampel statistik standar dalam SQL Server?

11

Dari MSDN :

Ketika tidak ada opsi sampel (SAMPLE, FULLSCAN, RESAMPLE)yang ditentukan, pengoptimal kueri sampel data dan menghitung ukuran sampel secara default.

Bagaimana cara mengidentifikasi ukuran sampel statistik standar?

Saya telah melalui MSDN tetapi tidak menemukan formula atau metode apa pun untuk mengidentifikasi ukuran sampel default. Di mana-mana hanya ada rumus yang hadir untuk memicu pembaruan statistik otomatis. Petunjuk apa pun akan sangat membantu.

P ரதீப்
sumber

Jawaban:

20

Bagaimana cara mengidentifikasi ukuran sampel statistik standar?

Saya akan mengutip dari artikel Blogs.msdn

Algoritma Statistik Pembaruan Otomatis:

Jadi statistik Pembaruan Otomatis akan diaktifkan untuk setiap 500 + 20% perubahan dalam baris tabel. Tentu saja, kami memiliki algoritme yang ditingkatkan dalam SQL 2012 yang merupakan SQRT (1000 * Table rows) yang jauh lebih baik.

Ketika menyala, ia akan menggunakan laju sampling default dan di sini adalah algoritma bagaimana menghitung laju sampling.

1) Jika tabel <8MB maka itu memperbarui statistik dengan fullscan.

2) Jika tabel> 8MB, itu mengikuti algoritma. Ini mengurangi laju sampling karena jumlah baris dalam tabel ditingkatkan untuk memastikan kami tidak memindai terlalu banyak data. Ini bukan nilai tetap tetapi di bawah kendali pengoptimal. Ini juga bukan algoritma linier.

Contoh: jika kita memiliki 1.000.000 baris, ia akan menggunakan tingkat pengambilan sampel 30% tetapi ketika jumlah baris meningkat menjadi 8.000.000, itu akan mengurangi tingkat pengambilan sampel menjadi 10%. Kecepatan pengambilan sampel ini tidak di bawah kendali DBA tetapi pengoptimal memutuskannya.

Untuk memahami lebih lanjut saya sarankan Anda membaca

Shanky
sumber