偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

sql server分頁(yè)的兩種方法比較

數(shù)據(jù)庫(kù) SQL Server
在SQL查詢(xún)比較大的情況下,需要用到sql server分頁(yè),下文將為您介紹其中的兩種分頁(yè)的方法,并進(jìn)行了比對(duì),供您參考。

sql server數(shù)據(jù)庫(kù)中,如果一個(gè)查詢(xún)結(jié)果數(shù)據(jù)量比較大,就需要在查詢(xún)的時(shí)候分頁(yè),每次只返回其中一頁(yè)。下面就將為您講解比較sql server分頁(yè)的兩種方法,如果您對(duì)sql server分頁(yè)感興趣的話(huà),不妨一看。

sql server分頁(yè)***種方法:
思路是根據(jù)頁(yè)號(hào)取出兩部分?jǐn)?shù)據(jù),比如取出前90條,然后取出前100條,然后比較取出兩次結(jié)果的差集。

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

//select * from //這一句是不能修改的了,因?yàn)樗菑慕Y(jié)果中讀取,所以必須要用*
//(select top @h_count (@filedlist) from @tableName .....) as big //取出符合條件的上限的記錄
//where
//big.guid   //這里是關(guān)鍵,根據(jù)主鍵從下限結(jié)果中過(guò)濾掉重復(fù)的記錄(只留下不同的數(shù)據(jù),也就是求交集)
//not in
//(select top @l_count guid from @table .....)//下限
//order @orderby  //原來(lái)的格式,這里只保留了orderby之后的,應(yīng)該保留條件之后所有的,包括gruopby什么的

函數(shù)類(lèi)似如此:
  public string MakeSqlPager(string sourceSql,int pageIndex)
  {
   //使用默認(rèn)頁(yè)面大小
   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;
  }

這種方法還可以改進(jìn),就是第二次取過(guò)濾時(shí)從***個(gè)的結(jié)果里面過(guò)濾。

sql server分頁(yè)第二種方法:
掐頭去尾,程序還沒(méi)寫(xiě)
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

測(cè)試了一下,大約用時(shí)間29秒。

比較:
***種方法的效率很低,猜測(cè)是因?yàn)槎啻涡枰h(huán)比較,時(shí)間復(fù)雜度要高一個(gè)等級(jí)。比如,這種方法的響應(yīng)時(shí)間和所取得的頁(yè)號(hào)有很大關(guān)系。
第二種方法還是可以接受的,和頁(yè)號(hào)無(wú)關(guān),但是也需要兩次比較。

 

 

【編輯推薦】

SQL SERVER分區(qū)視圖

SQL中用函數(shù)代替游標(biāo)的方法

SQL中的分析函數(shù)

創(chuàng)建SQL函數(shù)的實(shí)例

SQL中DATENAME函數(shù)的用法

責(zé)任編輯:段燃 來(lái)源: 博客園
相關(guān)推薦

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存儲(chǔ)過(guò)程分頁(yè)

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跟蹤

2010-11-24 14:36:25

修復(fù)mysql表

2011-03-30 17:04:24

MySQL添加用戶(hù)

2010-09-02 10:36:51

SQL刪除

2011-04-06 15:15:19

2010-10-27 14:47:32

Windows 200遠(yuǎn)程證書(shū)

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地址
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)