Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

एसक्यूएल सर्वर 2008 पेजिंग विधियां?

निम्नलिखित T-SQL संग्रहीत कार्यविधि एक बहुत है पेजिंग का कुशल कार्यान्वयन। SQL ऑप्टिमाइज़र पहली आईडी को बहुत तेज़ी से ढूंढ सकता है। इसे ROWCOUNT के उपयोग के साथ संयोजित करें, और आपके पास एक ऐसा दृष्टिकोण है जो CPU-कुशल और पढ़ने-कुशल दोनों है। बड़ी संख्या में पंक्तियों वाली तालिका के लिए, यह निश्चित रूप से किसी भी दृष्टिकोण को हरा देता है जिसे मैंने अस्थायी तालिका या तालिका चर का उपयोग करते हुए देखा है।

एनबी:मैं इस उदाहरण में अनुक्रमिक पहचान कॉलम का उपयोग कर रहा हूं, लेकिन कोड पेज सॉर्टिंग के लिए उपयुक्त किसी भी कॉलम पर काम करता है। साथ ही, उपयोग किए जा रहे कॉलम में अनुक्रम विराम परिणाम को प्रभावित नहीं करते क्योंकि कोड कॉलम मान के बजाय कई पंक्तियों का चयन करता है।

संपादित करें:यदि आप संभावित गैर-अद्वितीय मानों (जैसे अंतिम नाम) वाले कॉलम पर सॉर्ट कर रहे हैं, तो सॉर्ट मानों को फिर से अद्वितीय बनाने के लिए ऑर्डर बाय क्लॉज में दूसरा कॉलम जोड़ें।

CREATE  PROCEDURE dbo.PagingTest
(
    @PageNumber int,
    @PageSize int
)
AS

DECLARE @FirstId int, @FirstRow int

SET @FirstRow = ( (@PageNumber - 1) * @PageSize ) + 1
SET ROWCOUNT @FirstRow

-- Add check here to ensure that @FirstRow is not
-- greater than the number of rows in the table.

SELECT   @FirstId = [Id]
FROM     dbo.TestTable
ORDER BY [Id]

SET ROWCOUNT @PageSize

SELECT   *
FROM     dbo.TestTable
WHERE    [Id] >= @FirstId
ORDER BY [Id]

SET ROWCOUNT 0
GO 


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. कन्वर्ट () SQL सर्वर में

  2. SQL सर्वर डेटाबेस में प्राथमिक कुंजी बाधा क्या है - SQL सर्वर / T-SQL ट्यूटोरियल भाग 54

  3. SQL सर्वर डेटाबेस में सभी अशक्त और अशक्त स्तंभों की सूची प्राप्त करें - SQL सर्वर / T-SQL ट्यूटोरियल भाग 53

  4. SQL सर्वर में प्राथमिक कुंजी के बिना सभी तालिकाओं को वापस करने के 3 तरीके

  5. कैसे ठीक करें "से क्लॉज में बल्क रोसेट के लिए एक सहसंबंध नाम निर्दिष्ट किया जाना चाहिए।" SQL सर्वर में