SORU
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ş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Kanál používateľa McsFuego

    Kanál použ

    12 EKİM 2011
  • stewmurray47

    stewmurray47

    1 Kasım 2006
  • VJ VIMANA

    VJ VIMANA

    3 Mayıs 2007