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

SQLServer數據庫的查詢優化及分頁算法(1)

編輯:關於SqlServer
探討如何在有著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
  
  while @k<50
  
  begin
  
  insert into Tgongwen(fariqi,neibuyonghu,reader,title) values(cast(@i as varchar(4))+'-8-15 3:'+cast(@j as varchar(2))+':'+cast(@j as varchar(2)),'通信科','辦公室,通信科,王局長,劉局長,張局長,admin,刑偵支隊,特勤支隊,交巡警支隊,經偵支隊,戶政科,外事科','這是最後的50萬條記錄')
  
  set @k=@k+1
  
  end
  
  set @j=@j+1
  
  end
  
  set @i=@i+1
  
  end
  
  set @h=@h+1
  
  end
  
  GO
  
  declare @i int
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved