मैं डेटा की एक पेज लौट सकते हैं और यह भी सभी डेटा की गिनती पंक्ति एक संग्रहीत प्रक्रिया में कोशिश कर रहा हूँ जो ऐसा दिखाई देता है:CTE, ROW_NUMBER और 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);
मैं (पंक्ति संख्या वापस करने में असमर्थ हूं उच्चतम पंक्ति संख्या)।
मैं जानता हूँ कि यह पहले से ही चर्चा की गई है (मैं इस देखा है: Efficient way of getting @@rowcount from a query using row_number) लेकिन जब मैं CTE प्रदर्शन में खराबी आ में COUNT (एक्स) से अधिक (1 द्वारा भाग) में जोड़ सकते हैं और है कि इसके बाद के संस्करण क्वेरी सामान्य रूप से लेता है निष्पादित करने के लिए हमेशा के लिए कोई समय नहीं लगता है। मुझे लगता है कि यह गणना प्रत्येक पंक्ति के लिए गणना की जाती है? मुझे लगता है कि मैं सीटीई को किसी अन्य प्रश्न में पुन: उपयोग नहीं कर सकता। टेबल प्रॉप्स में 100k रिकॉर्ड हैं, सीटीई 5k रिकॉर्ड लौटाता है।
एक एसक्यूएल सर्वर प्रश्न के रूप में फिर से टैग करना चाहिए है। मैंने यह आपके लिए किया होगा, लेकिन आपको केवल 5 टैग की अनुमति है, और मुझे नहीं पता था कि आप कौन सा हटाना चाहते हैं। –