Menjana sampel rawak daripada jadual SQL Server ialah operasi yang berguna untuk pelbagai tujuan. Penyelesaian biasa adalah dengan memilih bilangan baris tetap secara rawak daripada jadual.
Kelemahan kaedah yang kompleks
Isu yang dinyatakan dalam artikel menunjukkan kaedah yang kompleks menggunakan jadual sementara dan gelung RAND(). Kaedah ini tidak cekap dan tidak fleksibel.
Batasan kaedah NEWID()
Artikel itu juga menyebut kaedah alternatif menggunakan fungsi NEWID(). Walau bagaimanapun, pendekatan ini mungkin tidak sesuai untuk keperluan memilih peratusan baris tertentu.
Penyelesaian T-SQL
Untuk menyelesaikan masalah ini, artikel tersebut menyediakan skrip SQL Server:
<code class="language-sql">select top 10 percent * from [yourtable] order by newid()</code>
Pernyataan ini menggunakan fungsi NEWID() dan klausa TOP untuk memilih 10% baris teratas dan mengembalikan sampel rawak jadual.
Kaedah pengoptimuman untuk meja besar
Untuk jadual besar, prestasi boleh dipertingkatkan dengan menggunakan skrip yang diubah suai berikut:
<code class="language-sql">select * from [yourtable] where [yourPk] in (select top 10 percent [yourPk] from [yourtable] order by newid())</code>
Kaedah ini berfungsi dalam dua langkah: pertama, pilih nilai kunci utama rawak kemudian, gunakan nilai kunci utama ini untuk mendapatkan baris yang sepadan. Ia mengimbangi imbasan kunci dan kos menyertai, menjadikannya lebih cekap untuk meja besar.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memilih Sampel Baris Rawak dengan Cekap daripada Jadual Pelayan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!