能處理百萬資料的儲存過程

2021-04-07 06:12:09 字數 991 閱讀 1211

//過程名和輸入輸出引數

create procedure getcustomdatapage @pagesize int, @pageindex int, @pagecount int output, @recordcount int output as

//定義變數

declare @sql varchar(1000)

//取得記錄數量

select @recordcount=count(*) from products

//計算得到頁數

set @pagecount=ceiling(@recordcount*1.0/@pagesize)

//經典演算法,我還沒有看明白

if @pageindex = 0 or @pagecount<=1

set @sql='select top '+str(@pagesize)+' productid,productname, unitprice from products order by productid asc'

else if @pageindex = @pagecount -1

set @sql='select * from ( select top '+str(@recordcount - @pagesize * @pageindex)+' productid,productname, unitprice from products order by productid desc) temptable order by productid asc'

else set @sql='select top '+str(@pagesize) +' * from ( select top '+str(@recordcount - @pagesize * @pageindex)+' productid,productname, unitprice from products order by productid desc) temptable order by productid asc' exec(@sql) go

基於百萬資料集的登入儲存過程

現在jtthink資料庫有使用者表 user sys有100萬使用者,書寫登入 1 設定user name為唯一索引,搜尋更加快 2 儲存過程書寫如下 1 begin 2 routine body goes here.34 set gid 0 5 set user name 6 set result...

oracle高效分頁儲存過程(百萬資料級)

create or replace procedure pager page in number,資料頁數,從1開始 pagesize in number,每頁大小 tablename nvarchar2,表名strwhere nvarchar2,where條件 orderby nvarchar2,...

儲存過程處理json資料

後臺物件集合轉換為json資料作為儲存過程的入參,處理方式如下 create or replace procedure sp khzbdfb update p json in varchar2,傳入的json串 p code out number,結果 p message out varchar2 ...

MySQL儲存過程批量處理資料

本文主要講述了mysql實現查詢資料並根據條件更新到另一張表的方法 create definer root procedure tasktaxnumber begin routine body goes here.需要定義接收遊標資料的變數 declare done boolean default ...

用儲存過程萬能分頁顯示錶資料

create procedure getrecordfrompage tblname varchar 255 表名 fldname varchar 255 欄位名 pagesize int 10,頁尺寸 pageindex int 1,頁碼 iscount bit 0,返回記錄總數,非 0 值則返回...