1. 程式人生 > >sql2000,千萬級大資料量分頁儲存過程效率測試附程式碼

sql2000,千萬級大資料量分頁儲存過程效率測試附程式碼

在專案中,我們經常遇到或用到分頁,那麼在大資料量(百萬級以上)下,哪種分頁演算法效率最優呢?我們不妨用事實說話。

測試環境

硬體:CPU 酷睿雙核T5750  記憶體:2G

軟體:Windows server 2003    +   Sql server 2005

OK,我們首先建立一資料庫:data_Test,並在此資料庫中建立一表:tb_TestTable

複製程式碼  1createdatabase data_Test  --建立資料庫data_Test  2GO 3use data_Test 
 4GO 5createtable tb_TestTable   
--建立表  6
 7    id intidentity(1,1primarykey
 8    userName nvarchar(20notnull
 9    userPWD nvarchar(20notnull
10    userEmail nvarchar(40null11
12GO 複製程式碼 複製程式碼

然後我們在資料表中插入2000000條資料:

複製程式碼  1--插入資料  2setidentity_insert tb_TestTable on 3declare@countint 4set@count=1 5while@count
<=2000000 6begin 7    insertinto tb_TestTable(id,userName,userPWD,userEmail) values(@count,'admin','admin888','[email protected]'
 8    set@count=@count+1 9end10setidentity_insert tb_TestTable off 複製程式碼 複製程式碼

我首先寫了五個常用儲存過程:

1,利用select top 和select not in進行分頁,具體程式碼如下:

複製程式碼  1createprocedure
 proc_paged_with_notin  --利用select top and select not in  2
 3    @pageIndexint,  --頁索引  4@pageSizeint--每頁記錄數  5
 6as 7begin 8    set nocount on
 9    declare@timediffdatetime--耗時 10

相關推薦

sql2000,千萬料量儲存過程效率測試程式碼

在專案中,我們經常遇到或用到分頁,那麼在大資料量(百萬級以上)下,哪種分頁演算法效率最優呢?我們不妨用事實說話。 測試環境 硬體:CPU 酷睿雙核T5750  記憶體:2G 軟體:Windows server 2003    +   Sql server 2005 OK

料量儲存過程效率測試

我首先寫了五個常用儲存過程: 1,利用select top 和select not in進行分頁,具體程式碼如下: CREATE PROCEDURE Proc_paged_with_notin --利用select top and select n

MySQL料量查詢方法及其優化 MySQL料量查詢方法及其優化

MySQL大資料量分頁查詢方法及其優化   ---方法1: 直接使用資料庫提供的SQL語句---語句樣式: MySQL中,可用如下方法: SELECT * FROM 表名稱 LIMIT M,N ---適應場景: 適用於資料量較少的情況(元組百/千級) --

解決mongodb料量查詢效率問題

最常見的分頁採用的是skip+limit這種組合方式,這種方式對付小資料倒也可以,但是對付上幾百上千萬的大資料,只能力不從心,skip如果跳過大量的資料會很慢,並且會越查越慢,針對這一情況,可以通過條件查詢+排序+限制返回記錄,即 邊查詢,邊排序,排序之後,抽取上一頁中的最後一條記錄,作為當前分

mongodb料量查詢效率問題

最常見的分頁採用的是skip+limit這種組合方式,這種方式對付小資料倒也可以,但是對付上幾百上千萬的大資料,只能力不從心,skip如果跳過大量的資料會很慢,並且會越查越慢。 //程式碼大概看下意思就行了 const list = db.getCollection('se

MySQL料量查詢方法及其優化 ---方法1: 直接使用資料庫提供的SQL語句 ---語句樣式: MySQL中,可用如下方法: SELECT * FROM 表名稱 LIMIT M,N ---適

測試實驗 1.   直接用limit start, count分頁語句, 也是我程式中用的方法: select * from product limit start, count 當起始頁較小時,查詢沒有效能問題,我們分別看下從10, 100, 1000, 10000開始分頁的執行時間(每頁取20條), 如

Mysql千萬料量查詢優化

1.對查詢進行優化,應儘量避免全表掃描,首先應考慮在 where 及 order by 涉及的列上建立索引。2.應儘量避免在 where 子句中對欄位進行 null 值判斷,否則將導致引擎放棄使用索引而進行全表掃描,如:select id from t where num i

mysql 料量優化

假設有一個千萬量級的表,取1到10條資料; select * from table limit 0,10; select * from table limit 1000,10; 這兩條語句查詢時間應該在毫秒級完成; select * from table limit

MySQL料量查詢方法及其優化

方法1: 直接使用資料庫提供的SQL語句 語句樣式: MySQL中,可用如下方法: SELECT * FROM 表名稱 LIMIT M,N 適應場景: 適用於資料量較少的情況(元組百/千級) 原因/缺點: 全表掃描,速度會很慢 且 有的資料庫結果集返回不穩定(如某次返回

SQL料量效能優化

目前在進行web api只讀介面的改造,在改造過程中,發現改在後響應時間和之前區別不是很大,通過測試結果顯示在sql的分頁功能處找到原因,並對其進行優化,優化方案如下。測試內容此次執行時間對比採用平臺資金記錄最多的使用者 user_id 36062測試次數未5次  為避免索引

Displaytag使用與應用displaytag完成料量顯示的例子

Display Tag Lib是一個標籤庫,用來處理jsp網頁上的Table,功能非常強,可以對的Table進行分頁、資料匯出、分組、對列排序等等,反正我在做專案時需要的功能它都給我提供了,而且使用起來非常的方便。能夠大大減少程式碼量。     介個是Display Tag

料量優化--延遲查詢

延遲關聯 select * from it_area where name like '%東山%';+------+-----------+------+ | id   | name      | pid  | +------+-----------+------+ |  

MySQL料量SQL語句優化

分頁程式原理很簡單,這裡就不多說了,本篇文章主要說的是在資料表記錄量比較大的情況下,如何將分頁SQL做到更優化,讓MySQL執行的更快的方法。 一般的情況下,我們的分頁SQL語句是這樣的:

【資料庫效能測試實戰】測試不同儲存過程在10w,100w以及1000w料量下面的表現

前言 資料庫的效能與每一行程式碼息息相關,所以,每次寫程式碼可以考慮一下在不同級別的資料量下面測試一下效能。 本文參考了: Postgresql生成大量測試資料 以及 準備測試用資料 此次測試我們將分別用10w,100w以及1000w級別的表來測試,下面先建立

SQL Server百萬料量刪除

刪除一個表中的部分資料,資料量百萬級。 一般delete from 表 delete from ysh where date<’2016-06-21’ ; 此操作可能導致,刪除操作執行的時間長;日誌檔案急速增長; 針對此情況處理 delete to

Sql2000 版通用儲存過程

 CREATEPROCEDURE  sys_QuickSortPaging(     @Tablenvarchar(4000),                            --表名(必須)@PrimaryKeyFieldnvarchar(50),         

多表查詢千萬數量級儲存過程,可支援多表查詢,任意排序

Create PROCEDURE usp_PagingLarge @TableNames VARCHAR(200),     --表名,可以是多個表,但不能用別名 @PrimaryKey VARCHAR(100),     --主鍵,可以為空,但@Order為空時該值不能為

C++標準模板庫中list料量情況下析構效率的研究

list在程式設計中是一種十分常用的序列式容器,如果你的程式更注重容器以下特性時,list可謂首選容器: 1、資料按原本順序儲存(不需要排序) 2、容器可以高效在任意位置插入、刪除資料 3、迭代器不會因插入與刪除等操作而失效(當然被刪除元素的迭代器除外) 4、不需要隨機訪問

mysql儲存過程一步一步實現

1.  CREATE DEFINER=`root`@`localhost` PROCEDURE `P_HoverTreePages`( IN `TableName` VARCHAR(200), IN `FieldList` VARCHAR(2000) , IN `Pr

Vs呼叫儲存過程

/// <summary>         /// 顯示+分頁+模糊查詢         /// </summary>  &n