--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)
--go
--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
--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
--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
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
--select count (Did) from TGongwen
下面是得到SELECT时间的方法:
declare @d datetime --定义日期时间
set @d = getdate()--给变量付值
select * from orders where orderdate < 1997-1-12--select语句
select "查询执行时间" = datediff(ms,@d,getdate())--得到语句的执行时间
建议:在插入最后900万记录时,系统性能不好的朋友,最好分段插入,比如每次插入100万。
up
眼熟!!
http://dev.csdn.net/article/43/43936.shtm
海量数据库的查询优化及分页算法方案
和这里的是不是一样的呀?
学习学习,我sql好弱...
上次自己写循环插1000万条记录用了两个小时。
当数据大量重复的时候,索引不但失效,而且可能比没有索引还慢。
数据库的查询语句优化方法,要根据很多种数据排列情况进行修改!
你真的认为现实当中的业务数据由如此相似性?使用错误的测试数据,会得到完全错误的经验。
同意楼上的讲法,因为具体问题要用具体相对应的方法解决,这样才能真正发挥数据库的高效处理能力!
楼主的SQL语句只可以仅作参考,不可以直接套用!
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
如果就执行这句要用2个小时吗,恐怖哦
900 0000条记录的分页怎么做啊,还是想想这个吧
====================强烈建议============================
http://dev.csdn.net/article/43/43936.shtm
海量数据库的查询优化及分页算法方案
唉!大家还是先看看这个吧!!!
====================强烈建议============================
添加海量数据,不能带着索引,都是首先停用所有索引,插入之后再用DBCC命令重建索引的。
数据库会自动分析数据,以期在决定查询步骤的时候找出正确的运行步骤。数据库在执行一个SQL命令之前、要编译它,用几十种可能的运行步骤检验,最后确定最好的步骤。
但是,错误的数据,会给数据库留下完全错误的编译结果。除非你每一次重复执行同一结构SQL命令之前都用DBCC命令强制数据库重新进行查询优化,否则它都会自动复用第一次的编译结果。
因此,模拟现实当中的数据要尽量与现实的数据值离散分布情况相似。搞数十万条基本重复的记录来代表数十万条离散分布的数据记录,是错误的做法。