程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 海量數據庫的查詢優化及分頁算法方案

海量數據庫的查詢優化及分頁算法方案

編輯:關於SqlServer

隨著“金盾工程”建設的逐步深入和公安信息化的高速發展,公安計算機應用系統被廣泛應用在各警種、各部門。與此同時,應用系統體系的核心、系統數據的存放地――數據庫也隨著實際應用而急劇膨脹,一些大規模的系統,如人口系統的數據甚至超過了1000萬條,可謂海量。那麼,如何實現快速地從這些超大容量的數據庫中提取數據(查詢)、分析、統計以及提取數據後進行數據分頁已成為各地系統管理員和數據庫管理員亟待解決的難題。

  在以下的文章中,我將以“辦公自動化”系統為例,探討如何在有著1000萬條數據的MS SQL Server數據庫中實現快速的數據提取和數據分頁。以下代碼說明了我們實例中數據庫的“紅頭文件”一表的部分數據結構:

CREATE TABLE [dbo].[TGongwen] ( --TGongwen是紅頭文件表名

[Gid] [int] IDENTITY (1, 1) NOT NULL ,
--本表的id號,也是主鍵

[title] [varchar] (80) COLLATE Chinese_PRC_CI_AS NULL ,
--紅頭文件的標題

[fariqi] [datetime] NULL ,
--發布日期

[neibuYonghu] [varchar] (70) COLLATE Chinese_PRC_CI_AS NULL ,
--發布用戶

[reader] [varchar] (900) COLLATE Chinese_PRC_CI_AS NULL ,

--需要浏覽的用戶。每個用戶中間用分隔符“,”分開

) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

GO


  下面,我們來往數據庫中添加1000萬條數據:

declare @i int

set @i=1

while @i<=250000

begin

insert into Tgongwen(fariqi,neibuyonghu,reader,title) values('2004-2-5','通信科','通信科,辦公室,王局長,劉局長,張局長,admin,刑偵支隊,特勤支隊,交巡警支隊,經偵支隊,戶政科,治安支隊,外事科','這是最先的25萬條記錄')

set @i=@i+1

end

GO

declare @i int

set @i=1

while @i<=250000

begin

insert into Tgongwen(fariqi,neibuyonghu,reader,title) values('2004-9-16','辦公室','辦公室,通信科,王局長,劉局長,張局長,admin,刑偵支隊,特勤支隊,交巡警支隊,經偵支隊,戶政科,外事科','這是中間的25萬條記錄')

set @i=@i+1

end

GO

declare @h int

set @h=1

while @h<=100

begin

declare @i int

set @i=2002

while @i<=2003

begin

declare @j int

set @j=0

while @j<50

begin

declare @k int

set @k=0

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved