成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

sql server分頁的兩種方法比較

數據庫 SQL Server
在SQL查詢比較大的情況下,需要用到sql server分頁,下文將為您介紹其中的兩種分頁的方法,并進行了比對,供您參考。

sql server數據庫中,如果一個查詢結果數據量比較大,就需要在查詢的時候分頁,每次只返回其中一頁。下面就將為您講解比較sql server分頁的兩種方法,如果您對sql server分頁感興趣的話,不妨一看。

sql server分頁***種方法:
思路是根據頁號取出兩部分數據,比如取出前90條,然后取出前100條,然后比較取出兩次結果的差集。

在30萬條記錄的情況下,如果只分100頁(結果有10000條記錄),大約需要1分半鐘。索引建得好的話,1分鐘左右。

//select * from //這一句是不能修改的了,因為它是從結果中讀取,所以必須要用*
//(select top @h_count (@filedlist) from @tableName .....) as big //取出符合條件的上限的記錄
//where
//big.guid   //這里是關鍵,根據主鍵從下限結果中過濾掉重復的記錄(只留下不同的數據,也就是求交集)
//not in
//(select top @l_count guid from @table .....)//下限
//order @orderby  //原來的格式,這里只保留了orderby之后的,應該保留條件之后所有的,包括gruopby什么的

函數類似如此:
  public string MakeSqlPager(string sourceSql,int pageIndex)
  {
   //使用默認頁面大小
   string orderbyStr=sourceSql.Substring(sourceSql.ToLower().IndexOf("order by"));
   int index=sourceSql.ToLower().IndexOf("select");
   string bigRes="("+ sourceSql.Insert(index+6," top "+((pageIndex+1)*_pageSize).ToString()+" ")+") as big";
   string smallRes="("+ sourceSql.Insert(index+6," top "+(pageIndex*_pageSize).ToString()+" ")+")";
   return "select * from "+bigRes+" where big.guid not in "+smallRes+" "+orderbyStr;
  }

這種方法還可以改進,就是第二次取過濾時從***個的結果里面過濾。

sql server分頁第二種方法:
掐頭去尾,程序還沒寫
SELECT * FROM
(
  SELECT ***00 * FROM
  (
    SELECT ***00000 * FROM pagetest ORDER BY regt ASC
   ) as a
  ORDER BY regt desc
) as b
 ORDER BY regt ASC

測試了一下,大約用時間29秒。

比較:
***種方法的效率很低,猜測是因為多次需要循環比較,時間復雜度要高一個等級。比如,這種方法的響應時間和所取得的頁號有很大關系。
第二種方法還是可以接受的,和頁號無關,但是也需要兩次比較。

 

 

【編輯推薦】

SQL SERVER分區視圖

SQL中用函數代替游標的方法

SQL中的分析函數

創建SQL函數的實例

SQL中DATENAME函數的用法

責任編輯:段燃 來源: 博客園
相關推薦

2010-11-09 13:09:58

SQL Server分

2010-11-10 13:22:41

SQL Server備

2010-11-12 11:44:37

SQL Server刪

2010-07-01 12:29:27

SQL Server重

2009-04-21 11:23:56

Oraclespool比較

2011-08-09 10:21:55

SQL Server存儲過程分頁

2010-08-04 17:41:52

掛載NFS

2021-12-06 06:19:52

Windows Server管理員密碼

2009-09-25 14:04:09

Hibernate eHibernate h

2010-04-13 09:50:44

Oracle跟蹤

2011-03-30 17:04:24

MySQL添加用戶

2010-11-24 14:36:25

修復mysql表

2010-09-02 10:36:51

SQL刪除

2011-04-06 15:15:19

2010-10-27 14:47:32

Windows 200遠程證書

2010-02-06 14:35:36

ibmdwRUP迭代

2010-09-09 19:53:50

2009-08-05 13:34:18

C#日期相減

2009-06-18 11:09:42

2020-09-16 18:27:36

Linux方法IP地址
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 99爱视频| aaa一区 | 亚洲免费精品 | 午夜精品福利视频 | 欧美日韩在线视频一区 | 亚洲一区二区三区久久久 | 日本成人免费观看 | 久久久成人一区二区免费影院 | 丁香综合| 亚洲国产精品久久久久久 | 日韩av在线一区 | 成人精品鲁一区一区二区 | 国产网站在线播放 | 日韩一区二区在线观看 | 国产精品久久国产精品99 gif | 一区二区三区在线 | 99久久婷婷国产亚洲终合精品 | 国产aⅴ爽av久久久久久久 | 亚洲欧美另类在线 | 国产91久久久久蜜臀青青天草二 | 欧美日韩三级 | 欧美在线视频不卡 | 综合另类| 精品一二区 | 成人性生交大片 | 在线观看成人小视频 | 日韩中文字幕一区二区 | 一级特黄色毛片 | 国产精品一区在线 | 久久精品国产a三级三级三级 | 久久69精品久久久久久久电影好 | 亚洲成人网在线 | 欧美8一10sex性hd | 久久久久无码国产精品一区 | 欧美久久久久久久久中文字幕 | 国产一区二区欧美 | 国产精品久久久久久久久久妇女 | 亚洲色图综合 | 九一国产精品 | 黄色国产| 国产精品视频网 |