Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Memilih Sampel Baris Rawak dengan Cekap daripada Jadual Pelayan SQL?

Bagaimanakah Saya Boleh Memilih Sampel Baris Rawak dengan Cekap daripada Jadual Pelayan SQL?

Patricia Arquette
Lepaskan: 2025-01-19 08:02:14
asal
731 orang telah melayarinya

Mengekstrak baris rawak dengan cekap daripada jadual SQL Server

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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.

How Can I Efficiently Select a Random Sample of Rows from a SQL Server Table?

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan