依據記錄總數和每頁大小取頁數

2021-09-30 15:27:45 字數 1024 閱讀 9681

例如:總記錄數為totalrow,每頁顯示數為pagesize,現在要求總頁數totalpage

1 常用方法:整除,判斷餘數,餘數大於0,整除結果加1。

if(totalrow%pagesize==0)

totalpage=totalrow/pagesize;

else

totalpage=totalrow/pagesize+1;

這種計算方法,會導致程式先取餘數,再比較是否有餘數,再進行整除操作,然後再進行相加操作

2 今天無意間發現還有另外一種計算方式(以前沒怎麼多想)

totalpage=(totalrow+(pagesize-1))/pagesize

由於餘數最小為1,那麼先加上最大的餘數(pagesize-1)後,只要totalrow/pagesize餘數不為0,(totalpage+(pagesize-1))/pagesize的結果一定會比totalrow/pagesize大1;否則結果相等;此計算公式結果和方法1中結果一致,但是寫法簡單,無需bool判斷,而且整除或者取餘數操作只進行了一步,相對來講效率有所提公升,效率比較**

long t1=system.currenttimemillis();

for(int i=0;i<10000;i++)else

} long t2=system.currenttimemillis();

for(int i=0;i<10000;i++)

long t3=system.currenttimemillis();

system.out.println("時間間隔:方法一耗時["+(t2-t1)+"]ms\t方法二耗時["+(t3-t2)+"]ms");

連續執行4次,執行結果:

時間間隔:方法一耗時[277]ms    方法二耗時[223]ms

時間間隔:方法一耗時[281]ms    方法二耗時[256]ms

時間間隔:方法一耗時[335]ms    方法二耗時[248]ms

時間間隔:方法一耗時[281]ms    方法二耗時[215]ms

儲存過程返回記錄總數

在網上找了很長時間,經過個人總結,終於得到如願的 create procedure recordcount tablename nvarchar 100 strwhere nvarchar 500 as declare flag int declare sqlstr nvarchar 1000 se...

獲取表的記錄總數

select rows from sysindexes where id object id n tablename and indid 2 該方法獲取表的記錄總數的速度非常快,在毫秒級就可以完成,相比select count 要快上數萬倍,但是 大家在運用該方法是一定要主要,該方法得到的表的總記錄...

獲取表的記錄總數

select rows from sysindexes where id object id n tablename and indid 2 該方法獲取表的記錄總數的速度非常快,在毫秒級就可以完成,相比select count 要快上數萬倍,但是 大家在運用該方法是一定要主要,該方法得到的表的總記錄...