游标对于分页存储过程
1。我個人認為最好的分頁方法是:
Select top 10 * from table where id>200
寫成存儲過程,上面的語句要拼一下sql語句,要獲得最后大于的哪一個ID號
2。那個用游標(biāo)的方式,只適合于小數(shù)據(jù)量的表,如果表在一萬行以上,就差勁了
你的存儲過程還比不上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。游標(biāo)是存放在內(nèi)存中,很費內(nèi)存.
游標(biāo)一建立,就將相關(guān)的記錄鎖住,直到取消游標(biāo)
游標(biāo)提供了對特定集合中逐行掃描的手段,一般使用游標(biāo)來逐行遍歷數(shù)據(jù),根據(jù)取出數(shù)據(jù)條件的不同進行不同的操作。而對于多表和大表中定義的游標(biāo)(大的數(shù)據(jù)集合)循環(huán)很容易使程序進入一個漫長的等待甚至死機.
所以說,我個人的經(jīng)驗,就是一萬上行上的表,不用游標(biāo).小數(shù)據(jù)量的表,適當(dāng)?shù)臅r候可以用游標(biāo)
因為游標(biāo),遍歷小數(shù)據(jù)量的行集還是不錯的一個方法!
?
4。用臨時表自定義分頁和使用游標(biāo)自定義分頁都不好!
?
總結(jié)
以上是生活随笔為你收集整理的游标对于分页存储过程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 征集佳句-精妙SQL语句收集
- 下一篇: C#技术内幕 学习笔记