- 1、本文档共19页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据库的查询优化及分页算法方案
在以下的文章中,我将以“办公自动化”系统为例,探讨如何在有着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 @j50
??????????? begin
declare @k int
??????????? set @k=0
??????????? while @k50
??????????? 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
set @i=1
while @i=9000000
begin
??? insert into Tgongwen(fariqi,neibuyonghu,reader,title) values(2004-5-5,通信科,通信科,办公室,王局长,刘局长,张局长,admin,刑侦支队,特勤支队,交巡警支队,经侦支队,户政科,治安支队,外事科,这是最后添加的900万条记录)
??? set @i=@i+1000000
end
GO
通过以上语句,我们创建了25万条由通信科于2004年2月5日发布的记录,25万条由办公室于2004年9月6日发布的记录,2002年和2003年各100个2500条相同日期、不同分秒的由通信科发布的记录(共50万条),还有由通信科于2004年5月5日发布的900万条记录,合计1000万条。
一、因情制宜,建立“适当”的索引
建立“适当”的索引是实现查询优化的首要前提。
索引(index)是除表之外另一重要的、用户定义的存储在物理介质上的
文档评论(0)