主頁 > 知識庫 > sql 存儲過程分頁代碼 支持億萬龐大數(shù)據(jù)量

sql 存儲過程分頁代碼 支持億萬龐大數(shù)據(jù)量

熱門標(biāo)簽:陜西電銷外呼系統(tǒng)好用嗎 如何做地圖標(biāo)注圖鋪 沒聽見電話機(jī)器人幫你接 銀川高頻外呼回?fù)芟到y(tǒng)多少錢 成都電話外呼系統(tǒng)一般多少錢 al智能電話機(jī)器人 蘭州語音外呼系統(tǒng)運(yùn)營商 最新人工智能電銷機(jī)器人 數(shù)字匠心電銷機(jī)器人
復(fù)制代碼 代碼如下:

CREATE PROCEDURE page
@tblName varchar(255), -- 表名
@strGetFields varchar(1000) = '*', -- 需要返回的列
@fldName varchar(255)='id', -- 排序的字段名
@PageSize int = 10, -- 頁尺寸
@PageIndex int = 1, -- 頁碼
@doCount bit = 0, -- 返回記錄總數(shù), 非 0 值則返回
@OrderType bit = 0, -- 設(shè)置排序類型, 非 0 值則降序 0:asc 1:desc
@strWhere varchar(1500) = '', -- 查詢條件 (注意: 不要加 where)
@ID nvarchar(50)='id' --主表的列。。最好是主鍵
AS
declare @strSQL varchar(5000) -- 主語句
declare @strTmp varchar(110) -- 臨時變量
declare @strOrder varchar(400) -- 排序類
if @doCount != 0 begin
if @strWhere !=''
set @strSQL = 'select count(*) as Total from ' + @tblName+ ' where '+@strWhere
else
set @strSQL = 'select count(*) as Total from ' + @tblName + ''
end
--以上代碼的意思是如果@doCount傳遞過來的不是0,就執(zhí)行總數(shù)統(tǒng)計(jì)。以下的所有代碼都是@doCount為0的情況
else begin
if @OrderType != 0 begin
set @strTmp = '(select min'
set @strOrder = ' order by ' + @fldName +' desc'
--如果@OrderType不是0,就執(zhí)行降序,這句很重要!
end
else begin
set @strTmp = '>(select max'
set @strOrder = ' order by ' + @fldName +' asc'
end
if @PageIndex = 1 begin
if @strWhere != ''
set @strSQL = 'select top ' + str(@PageSize) +' '+@strGetFields+ ' from ' + @tblName + ' where ' + @strWhere + ' ' + @strOrder
else
set @strSQL = 'select top ' + str(@PageSize) +' '+@strGetFields+ ' from '+ @tblName + ' '+ @strOrder
--如果是第一頁就執(zhí)行以上代碼,這樣會加快執(zhí)行速度
end
else begin
--以下代碼賦予了@strSQL以真正執(zhí)行的SQL代碼
set @strSQL = 'select top ' + str(@PageSize) +' '+@strGetFields+ ' from '
+ @tblName + ' where ' + @fldName + ' ' + @strTmp + '( '+ @ID + ' ) from (select top ' + str((@PageIndex-1)*@PageSize) + ' '+ @fldName + ' from ' + @tblName + @strOrder + ') as tblTmp)'+ @strOrder
if @strWhere != ''
set @strSQL = 'select top ' + str(@PageSize) +' '+@strGetFields+ ' from '
+ @tblName + ' where ' + @fldName + ' ' + @strTmp + '('
+ @ID + ') from (select top ' + str((@PageIndex-1)*@PageSize) + ' '
+ @fldName + ' from ' + @tblName + ' where ' + @strWhere + ' '
+ @strOrder + ') as tblTmp) and ' + @strWhere + ' ' + @strOrder
end
end
exec (@strSQL)
您可能感興趣的文章:
  • 大數(shù)據(jù)量時提高分頁的效率
  • 數(shù)據(jù)庫高并發(fā)情況下重復(fù)值寫入的避免 字段組合約束
  • 大數(shù)據(jù)量分頁存儲過程效率測試附測試代碼與結(jié)果
  • 大數(shù)據(jù)量,海量數(shù)據(jù)處理方法總結(jié)
  • MySQL數(shù)據(jù)庫優(yōu)化經(jīng)驗(yàn)詳談(服務(wù)器普通配置)
  • MySQL數(shù)據(jù)庫十大優(yōu)化技巧
  • SQL Server數(shù)據(jù)庫的高性能優(yōu)化經(jīng)驗(yàn)總結(jié)
  • 數(shù)據(jù)庫性能優(yōu)化三:程序操作優(yōu)化提升性能
  • 數(shù)據(jù)庫性能優(yōu)化二:數(shù)據(jù)庫表優(yōu)化提升性能
  • 數(shù)據(jù)庫性能優(yōu)化一:數(shù)據(jù)庫自身優(yōu)化提升性能
  • Oracle 數(shù)據(jù)庫優(yōu)化實(shí)戰(zhàn)心得總結(jié)
  • 優(yōu)化mysql數(shù)據(jù)庫的經(jīng)驗(yàn)總結(jié)
  • mysql數(shù)據(jù)庫優(yōu)化總結(jié)(心得)
  • 關(guān)于數(shù)據(jù)庫優(yōu)化問題收集匯總
  • oracle數(shù)據(jù)庫sql的優(yōu)化總結(jié)
  • sql 百萬級數(shù)據(jù)庫優(yōu)化方案分享
  • 優(yōu)化Mysql數(shù)據(jù)庫的8個方法
  • mysql數(shù)據(jù)庫sql優(yōu)化原則(經(jīng)驗(yàn)總結(jié))
  • 針對Sqlserver大數(shù)據(jù)量插入速度慢或丟失數(shù)據(jù)的解決方法
  • MySQL數(shù)據(jù)庫優(yōu)化詳解
  • MySQL中實(shí)現(xiàn)高性能高并發(fā)計(jì)數(shù)器方案(例如文章點(diǎn)擊數(shù))
  • 超大數(shù)據(jù)量存儲常用數(shù)據(jù)庫分表分庫算法總結(jié)
  • sqlserver數(shù)據(jù)庫優(yōu)化解析(圖文剖析)
  • 詳解MySQL性能優(yōu)化(一)
  • 詳解MySQL性能優(yōu)化(二)
  • 19個MySQL性能優(yōu)化要點(diǎn)解析
  • 大數(shù)據(jù)量高并發(fā)的數(shù)據(jù)庫優(yōu)化詳解

標(biāo)簽:邢臺 宜春 朔州 巴彥淖爾 遼源 本溪 鹽城 通化

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《sql 存儲過程分頁代碼 支持億萬龐大數(shù)據(jù)量》,本文關(guān)鍵詞  sql,存儲,過程,分頁,代碼,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《sql 存儲過程分頁代碼 支持億萬龐大數(shù)據(jù)量》相關(guān)的同類信息!
  • 本頁收集關(guān)于sql 存儲過程分頁代碼 支持億萬龐大數(shù)據(jù)量的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章