Memilih Julat Baris dalam Pelayan SQL: Mengurus Had Kiraan Baris
Keperluan biasa dalam SQL Server ialah memilih julat baris tertentu daripada sebuah meja. Ini boleh dicapai melalui kaedah çeşitli, masing-masing dengan batasan dan pertimbangan prestasi tersendiri.
Kiraan Baris Terhad dalam sys.all_columns
Satu teknik melibatkan penggunaan ROW_NUMBER() dan CTE untuk menjana senarai baris dalam julat yang ditentukan. Walau bagaimanapun, pendekatan ini menghadapi had apabila digunakan pada jadual besar, terutamanya untuk julat melebihi 7374 baris. Ini kerana jadual sys.all_columns yang mendasari mempunyai 有限数量的行。
Kaedah Alternatif untuk Menjana Julat Baris
Untuk mengatasi had ini, kaedah alternatif menggunakan CTE berlatarkan untuk mencipta "Tally Table." Pendekatan ini menjana senarai nombor sehingga julat tertentu. Berikut ialah contoh:
DECLARE @Range AS INT = 7374 ;WITH E1(N) AS( -- 10 ^ 1 = 10 rows SELECT 1 FROM(VALUES (1),(1),(1),(1),(1),(1),(1),(1),(1),(1))t(N) ), E2(N) AS(SELECT 1 FROM E1 a CROSS JOIN E1 b), -- 10 ^ 2 = 100 rows E4(N) AS(SELECT 1 FROM E2 a CROSS JOIN E2 b), -- 10 ^ 4 = 10,000 rows E8(N) AS(SELECT 1 FROM E4 a CROSS JOIN E4 b), -- 10 ^ 8 = 10,000,000 rows CteTally(N) AS( SELECT TOP(@Range) ROW_NUMBER() OVER(ORDER BY(SELECT NULL)) FROM E8 ) SELECT * FROM CteTally
Kaedah ini mencipta jadual pengiraan sehingga @Julat yang ditentukan, menyediakan cara yang lebih cekap untuk menjana julat baris.
Pertimbangan Prestasi
Prestasi kaedah berbeza untuk menjana jadual pengiraan berbeza-beza bergantung pada keperluan khusus dan persekitaran pangkalan data. Untuk perbandingan prestasi yang komprehensif, rujuk sumber luaran seperti artikel Jeff Moden dan kajian penyelidikan lain.
Ringkasan
Memilih julat baris dalam SQL Server adalah perkara biasa tugas dengan pelbagai teknik yang ada.Memahami batasan dan pertimbangan prestasi setiap pendekatan membolehkan pemilihan kaedah yang paling cekap untuk senario tertentu. Pendekatan CTE bertingkat yang dibentangkan di sini menawarkan cara yang boleh dipercayai dan berskala untuk menjana jadual pengiraan sehingga sejumlah besar baris, mengatasi batasan yang dihadapi dalam kaedah lain.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memilih Julat Baris Khusus dalam Pelayan SQL dengan Cekap, Terutamanya Apabila Berurusan dengan Set Data Besar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!