程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 關於[SQL]對於分頁存儲過程

關於[SQL]對於分頁存儲過程

編輯:關於SqlServer
 

1。我個人認為最好的分頁方法是:
 

Select top 10 * from table where id>200

寫成存儲過程,上面的語句要拼一下sql語句,要獲得最後大於的哪一個ID號


2。那個用游標的方式,只適合於小數據量的表,如果表在一萬行以上,就差勁了

你的存儲過程還比不上NOT IN分頁,示例:
 

SELECT Top 10 * FROM Customers WHERE Customerid NOT IN (SELECT TOP 20 Customerid from Customers )


 

declare @SQLStr varchar(8000)
set @SQLStr='SELECT Top '+cast(@每頁大小 as varchar)+' * FROM 表 WHERE 主鍵列 NOT IN (SELECT TOP '+cast(@每頁大小*@第幾頁 as varchar)+' 主鍵列 from 表 )'
exec(@SQLStr)



3。以下是我用存儲過程分頁的方式,分頁一個20萬行的表,結果顯示在網頁中,你可以看一下速度:
4。很久前,我說過用sql的游標

游標是存放在內存中,很費內存.

游標一建立,就將相關的記錄鎖住,直到取消游標

游標提供了對特定集合中逐行掃描的手段,一般使用游標來逐行遍歷數據,根據取出數據條件的不同進行不同的操作。而對於多表和大表中定義的游標(大的數據集合)循環很容易使程序進入一個漫長的等待甚至死機.

所以說,我個人的經驗,就是一萬上行上的表,不用游標.小數據量的表,適當的時候可以用游標

因為游標,遍歷小數據量的行集還是不錯的一個方法!
 


5。用臨時表自定義分頁和使用游標自定義分頁都不好!

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved