李洪根關於 SQL 對於分頁儲存過程

2021-03-31 08:56:31 字數 1148 閱讀 4630

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

select

top10

*from

table

where

id>

200

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

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

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

select

top10

*from

customers 

where

customerid 

notin

(select

top20

customerid 

from

customers )

declare

@sqlstr 

varchar

(8000

)

set@sqlstr='

select top '+

cast

(@每頁大小 

asvarchar)+

'* from 表 where 主鍵列 not in (select top '+

cast

(@每頁大小

*@第幾頁 

asvarchar)+

'主鍵列 from 表 )

'

exec

(@sqlstr)

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

4。很久前,我說過用sql的游標

游標是存放在記憶體中,很費記憶體.

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

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

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

因為游標,遍歷小資料量的行集還是不錯的乙個方法!

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

李洪根關於 SQL 對於分頁儲存過程

1。我個人認為最好的分頁方法是 top10 from table where id 200 寫成儲存過程,上面的語句要拼一下sql語句,要獲得最後大於的哪乙個id號 2。那個用光標的方式,只適合於小資料量的表,如果表在一萬行以上,就差勁了 你的儲存過程還比不上not in分頁,示例 top10 fr...

李洪強 C語言4 記憶體分析

c語言記憶體分析 一 進製 概念 進製是一種計數方式,是數值的表現形式 4種主要的進製 十進位制 0 9 二進位制 0和1 八進位制 0 7 十六進製制 0 9 a b c d e f c語言在預設的情況下為十進位制。int num 1010 十進位制 int num 0b1100 二進位制,以0b...

李洪強iOS開發之Foundation框架 結構體

foundation框架 結構體 一 基本知識 foundation 基礎框架。框架中包含了很多開發中常用的資料型別,如結構體,列舉,類等,是其他ios框架的基礎。如果要想使用foundation框架中的資料型別,那麼包含它的主標頭檔案就可以了。即 import 補充 core foundation...