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

  • Air_Fooj

    Air_Fooj

    24 NİSAN 2009
  • spectragirlz16's channel

    spectragirlz

    22 Ocak 2012
  • tsweeney79

    tsweeney79

    21 Ocak 2008