Bir saklı yordam bir veri sayfasını dönmek ve aynı zamanda tüm verilerin sayısını kürek çalışıyorum hangi aşağıdaki gibidir:CTE, ROW_NUMBER ve ROWCOUNT
WITH Props AS
(
SELECT *,
ROW_NUMBER() OVER (ORDER BY PropertyID) AS RowNumber
FROM Property
WHERE PropertyType = @PropertyType AND ...
)
SELECT * FROM Props
WHERE RowNumber BETWEEN ((@PageNumber - 1) * @PageSize) + 1 AND (@PageNumber * @PageSize);
I (satır sayısını döndürmek alamıyorum en yüksek satır sayısı). Bu zaten tartışıldı biliyorum
(bunu görmüştüm: Efficient way of getting @@rowcount from a query using row_number) ama CTE performans düşer içinde COUNT (x) AŞIRI (1 TARAFINDAN BÖLME) ekleyip zaman yukarıda sorgu normalde alır sonsuza kadar sürecek bir zaman almaz. Sanırım sayım her satır için hesaplanıyor? Görünüşe göre CTE'yi başka bir sorguda tekrar kullanamıyorum. Tablo Sahne 100k kayıtları vardır, CTE 5k kayıtları verir.
bir SQL Server soru olarak yeniden etiketleme mı şimdi. Bunu sizin için yapardım, ancak yalnızca 5 etikete izin verdiniz ve hangisini kaldırmak istediğinizi bilmiyordum. –