資源描述:
《海量數(shù)據(jù)庫的 查詢優(yōu)化及分頁算法方案》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、海量數(shù)據(jù)庫的查詢優(yōu)化及分頁算法方案.txt兩個男人追一個女人用情淺的會先放棄。兩個女人追一個男人用情深的會先放棄。╰︶ ̄—你的話,我連標點符號都不信男女授受不親,中國哪來13億人口。隨著“金盾工程”建設(shè)的逐步深入和公安信息化的高速發(fā)展,公安計算機應用系統(tǒng)被廣泛應用在各警種、各部門。與此同時,應用系統(tǒng)體系的核心、系統(tǒng)數(shù)據(jù)的存放地――數(shù)據(jù)庫也隨著實際應用而急劇膨脹,一些大規(guī)模的系統(tǒng),如人口系統(tǒng)的數(shù)據(jù)甚至超過了1000萬條,可謂海量。那么,如何實現(xiàn)快速地從這些超大容量的數(shù)據(jù)庫中提取數(shù)據(jù)(查詢)、分析、統(tǒng)計以及提取數(shù)據(jù)后進行數(shù)據(jù)分頁已成為各地系統(tǒng)管理員和數(shù)據(jù)庫管理員亟待解決的難題。在以下的文章中,我將
2、以“辦公自動化”系統(tǒng)為例,探討如何在有著1000萬條數(shù)據(jù)的MSSQLSERVER數(shù)據(jù)庫中實現(xiàn)快速的數(shù)據(jù)提取和數(shù)據(jù)分頁。以下代碼說明了我們實例中數(shù)據(jù)庫的“紅頭文件”一表的部分數(shù)據(jù)結(jié)構(gòu):CREATETABLE[dbo].[TGongwen](--TGongwen是紅頭文件表名[Gid][int]IDENTITY(1,1)NOTNULL,--本表的id號,也是主鍵[title][varchar](80)COLLATEChinese_PRC_CI_ASNULL,--紅頭文件的標題[fariqi][datetime]NULL,--發(fā)布日期[neibuYonghu][varchar](70)COLLATE
3、Chinese_PRC_CI_ASNULL,--發(fā)布用戶[reader][varchar](900)COLLATEChinese_PRC_CI_ASNULL,--需要瀏覽的用戶。每個用戶中間用分隔符“,”分開)ON[PRIMARY]TEXTIMAGE_ON[PRIMARY]GO下面,我們來往數(shù)據(jù)庫中添加1000萬條數(shù)據(jù):declare@iintset@i=1while@i<=250000begininsertintoTgongwen(fariqi,neibuyonghu,reader,title)values('2004-2-5','通信科','通信科,辦公室,王局長,劉局長,張局長,admi
4、n,刑偵支隊,特勤支隊,交巡警支隊,經(jīng)偵支隊,戶政科,治安支隊,外事科','這是最先的25萬條記錄')set@i=@i+1endGOdeclare@iintset@i=1while@i<=250000begininsertintoTgongwen(fariqi,neibuyonghu,reader,title)values('2004-9-16','辦公室','辦公室,通信科,王局長,劉局長,張局長,admin,刑偵支隊,特勤支隊,交巡警支隊,經(jīng)偵支隊,戶政科,外事科','這是中間的25萬條記錄')set@i=@i+1endGOdeclare@hintset@h=1while@h<=100be
5、gindeclare@iintset@i=2002while@i<=2003begindeclare@jintset@j=0while@j<50begindeclare@kintset@k=0while@k<50begininsertintoTgongwen(fariqi,neibuyonghu,reader,title)values(cast(@iasvarchar(4))+'-8-153:'+cast(@jasvarchar(2))+':'+cast(@jasvarchar(2)),'通信科','辦公室,通信科,王局長,劉局長,張局長,admin,刑偵支隊,特勤支隊,交巡警支隊,經(jīng)偵支隊,
6、戶政科,外事科','這是最后的50萬條記錄')set@k=@k+1endset@j=@j+1endset@i=@i+1endset@h=@h+1endGOdeclare@iintset@i=1while@i<=9000000begininsertintoTgongwen(fariqi,neibuyonghu,reader,title)values('2004-5-5','通信科','通信科,辦公室,王局長,劉局長,張局長,admin,刑偵支隊,特勤支隊,交巡警支隊,經(jīng)偵支隊,戶政科,治安支隊,外事科','這是最后添加的900萬條記錄')set@i=@i+1000000endGO通過以上語句,我
7、們創(chuàng)建了25萬條由通信科于2004年2月5日發(fā)布的記錄,25萬條由辦公室于2004年9月6日發(fā)布的記錄,2002年和2003年各100個2500條相同日期、不同分秒的由通信科發(fā)布的記錄(共50萬條),還有由通信科于2004年5月5日發(fā)布的900萬條記錄,合計1000萬條。一、因情制宜,建立“適當”的索引建立“適當”的索引是實現(xiàn)查詢優(yōu)化的首要前提。索引(index)是除表之外另一重要的、用戶定義的存