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

  • Maschine Tutorials

    Maschine Tut

    15 ŞUBAT 2011
  • Neil Cicierega

    Neil Ciciere

    22 Mart 2006
  • undrmyumbrellaa

    undrmyumbrel

    25 Temmuz 2012