有关海量数据的探索(1000万)(一)
使用SQL SERVER2000,当数据量上百万时性能会明显的变慢(硬件一定)。带着着个问题我做了如下的探讨:
1、建表
drop table TGongwen
create table TGongwen(
[Did] [int] IDENTITY(1,1) NOT NULL primary key check(Did > 0),
title varchar(80) default null,
fariqi datetime null,
neibuyonghu varchar(70)null,
reader varchar(70) null)
2、向数据表插入数据
--开始的25万条数据记录
declare @i int
set @i = 1
while @i<= 250000
begin
insert into TGongwen(fariqi,neibuyonghu,reader,title) values ('2005-9-9','通信科','通信科,办公室,王局长,刘局长,张局长,admin,外事科','这是最先的25万条记录')
set @i = @i +1
end
go
--中间的25万条数据记录
declare @i int
set @i = 1
while @i<= 250000
begin
insert into TGongwen(fariqi,neibuyonghu,reader,title) values ('2005-8-16','办公室','通信科,办公室,王局长,刘局长,张局长,admin,外事科','这是中间的25万条记录')
set @i = @i+1
end
go
最后的50万条数据记,通过改变时间而得到不同的记录。
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 5:'+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
--这是最后添加的900万数据记录
declare @i int
set @i = 1
while @i <= 9000000
begin
insert into TGongwen(fariqi,neibuyonghu,reader,title) values ('2005-8-14','办公室','强奸,办公室,王局长,刘局长,张局长,admin,外事科','这是最后添加的900万条记录')
set @i = @i + 1
end
go
3、测试
得到SELECT时间的方法:
declare @d datetime --定义日期时间
set @d = getdate()--给变量付值
select ..............................
select "查询执行时间" = datediff(ms,@d,getdate())--得到语句的执行时间
下回分解。。。。。。。。。。。
1、建表
drop table TGongwen
create table TGongwen(
[Did] [int] IDENTITY(1,1) NOT NULL primary key check(Did > 0),
title varchar(80) default null,
fariqi datetime null,
neibuyonghu varchar(70)null,
reader varchar(70) null)
2、向数据表插入数据
--开始的25万条数据记录
declare @i int
set @i = 1
while @i<= 250000
begin
insert into TGongwen(fariqi,neibuyonghu,reader,title) values ('2005-9-9','通信科','通信科,办公室,王局长,刘局长,张局长,admin,外事科','这是最先的25万条记录')
set @i = @i +1
end
go
--中间的25万条数据记录
declare @i int
set @i = 1
while @i<= 250000
begin
insert into TGongwen(fariqi,neibuyonghu,reader,title) values ('2005-8-16','办公室','通信科,办公室,王局长,刘局长,张局长,admin,外事科','这是中间的25万条记录')
set @i = @i+1
end
go
最后的50万条数据记,通过改变时间而得到不同的记录。
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 5:'+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
--这是最后添加的900万数据记录
declare @i int
set @i = 1
while @i <= 9000000
begin
insert into TGongwen(fariqi,neibuyonghu,reader,title) values ('2005-8-14','办公室','强奸,办公室,王局长,刘局长,张局长,admin,外事科','这是最后添加的900万条记录')
set @i = @i + 1
end
go
3、测试
得到SELECT时间的方法:
declare @d datetime --定义日期时间
set @d = getdate()--给变量付值
select ..............................
select "查询执行时间" = datediff(ms,@d,getdate())--得到语句的执行时间
下回分解。。。。。。。。。。。
                    
                
                
            
        
浙公网安备 33010602011771号