20 EYLÜL 2008, CUMARTESİ
SQL Server sonuçları ilerlemek için en iyi yolu nedir
Eğer siz de sonuçları toplam sayısını (daha önce) paginating almak istiyorsanız SQL Server sonuçları 2000, 2005, 2008, 2012 ilerlemek için en iyi yolu (performans açısından)?
CEVAP
20 EYLÜL 2008, CUMARTESİ
Toplam sonuç sayısını almak ve paginating iki farklı ameliyat. Bu örnek için, hadi uğraşıyoruz sorgu olduğunu varsayalım
SELECT * FROM Orders WHERE OrderDate >= '1980-01-01' ORDER BY OrderDate
Bu durumda, toplam sonuç sayısını kullanarak belirleyin:
SELECT COUNT(*) FROM Orders WHERE OrderDate >= '1980-01-01'
...verimsiz gibi görünebilir, ama aslında oldukça ölçülebilir, vb tüm dizinler üstleniyor. düzgün ayarla.
Gerçek sonuçlar alınabilen bir şekilde geri gelecek, aşağıdaki sorgu en verimli olurdu:
SELECT *
FROM ( SELECT ROW_NUMBER() OVER ( ORDER BY OrderDate ) AS RowNum, *
FROM Orders
WHERE OrderDate >= '1980-01-01'
) AS RowConstrainedResult
WHERE RowNum >= 1
AND RowNum < 20
ORDER BY RowNum
Bu satırları özgün sorgu 1-19 dönecektir. Serin şey burada, özellikle web uygulamaları için, Satır Numaraları iade edilmesi dışında herhangi bir devlet tutmak zorunda değilsiniz.
Bunu Paylaş:
Otomatik oluşturmak SQL Server tablo i...
Tetikleyici SQL Server var olup olmadı...
Bir nesneyi klonlamak için en etkili y...
C bir Sözlük üzerinde yineleme için en...
JQuery ile bir dizi seçmek için bir se...