分頁(yè)查詢(xún) 效率最高
更新時(shí)間:2009年06月14日 18:28:06 作者:
給大家分享個(gè)效率最高的分頁(yè)查詢(xún) 5000萬(wàn)級(jí)別有效 比 ROWNUMBER 和Top效率高
復(fù)制代碼 代碼如下:
/*
日期:2009-03-19
功能:根據(jù)各種條件獲取 游戲國(guó)家任務(wù) 列表數(shù)據(jù)
*/
Create procedure [dbo].[PrGs_Nation_Task_GetList]
@PageSize int = 100, -- 每頁(yè)顯示記錄條數(shù),默認(rèn)為100
@PageIndex int = 1, -- 當(dāng)前提取要顯示的頁(yè)碼,默認(rèn)為1,數(shù)據(jù)庫(kù)根據(jù)PageSize,PageIndex 計(jì)算返回一頁(yè)數(shù)據(jù)
@RetTotal int output, -- 記錄總數(shù)
@RetCount int output, -- 返回記錄數(shù)
@RetPageIndex int output, -- 輸出當(dāng)前頁(yè)碼
@ReturnDesc varchar(128) output -- 返回操作結(jié)果描述
as
begin
set nocount on
set xact_abort on
set @RetTotal = 0
set @RetCount = 0
set @RetPageIndex = @PageIndex
-- 多條件取值
declare @Err int -- 錯(cuò)誤
declare @PageCount int -- 總頁(yè)數(shù)
declare @BeginRID int -- 開(kāi)始行 Rid
declare @MaxRow int -- 最后行
select @RetTotal = count(*)
from NationTask
select @Err = @@ERROR
if @Err <> 0
begin
set @ReturnDesc = '提取國(guó)家任務(wù)總數(shù)失敗!'
return -1
end
-- 如果無(wú)數(shù)據(jù), 則返回空結(jié)果集
if @RetTotal = 0
begin
set @ReturnDesc = '當(dāng)前條件無(wú)國(guó)家任務(wù)記錄!'
return 1
end
-- 計(jì)算總頁(yè)數(shù)
set @PageCount = @RetTotal / @PageSize
if @RetTotal % @PageSize > 0
begin
set @PageCount = @PageCount + 1
end
-- 超過(guò)總頁(yè)數(shù),則返回空結(jié)果集
if @PageIndex > @PageCount
begin
set @ReturnDesc = '當(dāng)前條件無(wú)國(guó)家任務(wù)記錄!'
return 1
end
-- 獲取 要返回頁(yè)面的 第一行紀(jì)錄的 Rid
set @MaxRow = @PageSize * (@PageIndex - 1) + 1
set rowcount @MaxRow
select @BeginRID = Rid
from NationTask
order by Rid desc
-- 返回?cái)?shù)據(jù)列表
set rowcount @PageSize
select Rid
,TaskName
,TaskTitle
,ImageID
,EffectID
,StartTime
from NationTask
where Rid <= @BeginRID
order by Rid desc
set @RetCount = @@rowcount
-- 結(jié)束
set @ReturnDesc = '提取國(guó)家任務(wù)列表成功!'
return 1
end
您可能感興趣的文章:
- Mysql中分頁(yè)查詢(xún)的兩個(gè)解決方法比較
- 高效的SQLSERVER分頁(yè)查詢(xún)(推薦)
- 真正高效的SQLSERVER分頁(yè)查詢(xún)(多種方案)
- oracle,mysql,SqlServer三種數(shù)據(jù)庫(kù)的分頁(yè)查詢(xún)的實(shí)例
- 三種SQL分頁(yè)查詢(xún)的存儲(chǔ)過(guò)程代碼
- php下巧用select語(yǔ)句實(shí)現(xiàn)mysql分頁(yè)查詢(xún)
- 防SQL注入 生成參數(shù)化的通用分頁(yè)查詢(xún)語(yǔ)句
- SQL Server 分頁(yè)查詢(xún)存儲(chǔ)過(guò)程代碼
- 數(shù)據(jù)庫(kù)分頁(yè)查詢(xún)方法
- Access 模糊參數(shù) 分頁(yè)查詢(xún)
- Ajax案例集下載:新增分頁(yè)查詢(xún)案例(包括《Ajax開(kāi)發(fā)精要》中的兩個(gè)綜合案例) 下載
- 高效的jsp分頁(yè)查詢(xún)
- PHP 分頁(yè)原理分析,大家可以看看
- php 分頁(yè)原理詳解
- 默默小談PHP&MYSQL分頁(yè)原理及實(shí)現(xiàn)
- mysql分頁(yè)原理和高效率的mysql分頁(yè)查詢(xún)語(yǔ)句
相關(guān)文章
此數(shù)據(jù)庫(kù)沒(méi)有有效所有者,因此無(wú)法安裝數(shù)據(jù)庫(kù)關(guān)系圖支持對(duì)象
此數(shù)據(jù)庫(kù)沒(méi)有有效所有者,因此無(wú)法安裝數(shù)據(jù)庫(kù)關(guān)系圖支持對(duì)象。若要繼續(xù),請(qǐng)首先使用“數(shù)據(jù)庫(kù)屬性”對(duì)話框的“文件”頁(yè)或ALTER AUTHORIZATION語(yǔ)句將數(shù)據(jù)庫(kù)所有者設(shè)置為有效登錄名,然后再添加數(shù)據(jù)庫(kù)關(guān)系圖支持對(duì)象2012-01-01利用腳本自動(dòng)安裝SQLServer的實(shí)現(xiàn)步驟分析
在工作中,經(jīng)常被要求一天安裝個(gè)10臺(tái)、8臺(tái)的SQL Server。2010-11-11ASP.NET和MSSQL高性能分頁(yè)實(shí)例代碼
這篇文章主要介紹了ASP.NET和MSSQL高性能分頁(yè)實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下2016-01-01sql server字符串非空判斷實(shí)現(xiàn)方法
在使用sql server過(guò)程中會(huì)遇到非空判斷,本文將詳細(xì)介紹sql server字符串非空判斷實(shí)現(xiàn)方法,需要了解的朋友可以參考下2012-12-12SQL查詢(xún)連續(xù)登陸7天以上的用戶的方法實(shí)現(xiàn)
本文主要介紹了SQL查詢(xún)連續(xù)登陸7天以上的用戶的方法實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12數(shù)據(jù)庫(kù)Left join , Right Join, Inner Join 的相關(guān)內(nèi)容,非常實(shí)用
Left join , Right Join, Inner Join 的相關(guān)內(nèi)容,非常實(shí)用2009-07-07