需要很长时间才能执行完,显示结果。
表中有1000万条记录,慢怎么解决。 谢谢
20 个解决方案
#1
1.建立主键或索引.
2.提高硬件配置.
2.提高硬件配置.
#2
硬件:增加内存,换高性能CPU
软件: 加索引.
软件: 加索引.
#3
这是最基本的语句,
把*换成字段名, 其它没啥好优化
把*换成字段名, 其它没啥好优化
#4
顶起,在sql查询中建议不要常用'*',指定字段名。
#5
下面我们就来看一下在1000万条数据量的情况下各种查询的速度表现(3个月内的数据为25万条):
(1)仅在主键上建立聚集索引,并且不划分时间段:
Select gid,fariqi,neibuyonghu,title from tgongwen
用时:128470毫秒(即:128秒)
(2)在主键上建立聚集索引,在fariq上建立非聚集索引:
select gid,fariqi,neibuyonghu,title from Tgongwen
where fariqi> dateadd(day,-90,getdate())
用时:53763毫秒(54秒)
(3)将聚合索引建立在日期列(fariqi)上:
select gid,fariqi,neibuyonghu,title from Tgongwen
where fariqi> dateadd(day,-90,getdate())
用时:2423毫秒(2秒)
详见:http://www.cnblogs.com/tintown/archive/2005/04/24/144272.html
(1)仅在主键上建立聚集索引,并且不划分时间段:
Select gid,fariqi,neibuyonghu,title from tgongwen
用时:128470毫秒(即:128秒)
(2)在主键上建立聚集索引,在fariq上建立非聚集索引:
select gid,fariqi,neibuyonghu,title from Tgongwen
where fariqi> dateadd(day,-90,getdate())
用时:53763毫秒(54秒)
(3)将聚合索引建立在日期列(fariqi)上:
select gid,fariqi,neibuyonghu,title from Tgongwen
where fariqi> dateadd(day,-90,getdate())
用时:2423毫秒(2秒)
详见:http://www.cnblogs.com/tintown/archive/2005/04/24/144272.html
#6
提升硬件
使用字段名取代 *
使用字段名取代 *
#7
你select 出1000W,谁看啊?有意义吗
#8
提升硬件,设计索引
#9
Select Top N 只取符合条件的前N条,太多也看不过来
#10
根据需要选择字段输出。尽量使用优化策略。
#11
1、提高硬件的配置了cup、内存、硬盘的读取速度。
2、软件最好把这样的大表建立复合索引或者分区表之类的,已提高性能。
2、软件最好把这样的大表建立复合索引或者分区表之类的,已提高性能。
#12
如果你是想看一哈各个字段的话,建议直接select top 10 * from ab1;没必要全部显示出来撒。
#13
1000万条记录,你全查出来又能怎样?
#14
其实显示结果浪费了很多的时间,我的测试结果
表记录1016万记录
表记录1016万记录
select count(*) from tb //Time 2046毫秒
select * into #tmp from tb //Time 19516毫秒
select * from tb //2分15秒,显示了230万条记录
#15
如果你的程序有这样的语句,改掉它是唯一的方法
#16
如果是100w行数据都要的话,就BCP导出给他们吧。
提升硬盘的I/O也是不错的选择。
#17
1.看看你的电脑配置怎么样 电脑配置如果不是很好的话 当然会慢一点了
2.可以创建主键索引 加快查询速度
3.如果是在程序里要查询的这1000万行数据的话 我建议你写 一个存储过程 先在数据库中先预编译一下 这样在 程序中调这条 存储过程 就会很快了
2.可以创建主键索引 加快查询速度
3.如果是在程序里要查询的这1000万行数据的话 我建议你写 一个存储过程 先在数据库中先预编译一下 这样在 程序中调这条 存储过程 就会很快了
#18
从1000万条里查n条
还是必须输出1000万条?
后者不应该
前者通过加合适的索引,速度不会慢
还是必须输出1000万条?
后者不应该
前者通过加合适的索引,速度不会慢
#19
分页吧
#20
每个人都告诉你建索引,我想提醒楼主,水可载舟亦可覆舟,你先高清楚各个索引的区别,然后建立不同的索引看看效果,实践才能检验真理啊。。还有,如果楼主这个表插入更新很频繁记得定期索引重建。。
P.S 5楼叶子推荐的文章楼主可以看看。。
#21
#1
1.建立主键或索引.
2.提高硬件配置.
2.提高硬件配置.
#2
硬件:增加内存,换高性能CPU
软件: 加索引.
软件: 加索引.
#3
这是最基本的语句,
把*换成字段名, 其它没啥好优化
把*换成字段名, 其它没啥好优化
#4
顶起,在sql查询中建议不要常用'*',指定字段名。
#5
下面我们就来看一下在1000万条数据量的情况下各种查询的速度表现(3个月内的数据为25万条):
(1)仅在主键上建立聚集索引,并且不划分时间段:
Select gid,fariqi,neibuyonghu,title from tgongwen
用时:128470毫秒(即:128秒)
(2)在主键上建立聚集索引,在fariq上建立非聚集索引:
select gid,fariqi,neibuyonghu,title from Tgongwen
where fariqi> dateadd(day,-90,getdate())
用时:53763毫秒(54秒)
(3)将聚合索引建立在日期列(fariqi)上:
select gid,fariqi,neibuyonghu,title from Tgongwen
where fariqi> dateadd(day,-90,getdate())
用时:2423毫秒(2秒)
详见:http://www.cnblogs.com/tintown/archive/2005/04/24/144272.html
(1)仅在主键上建立聚集索引,并且不划分时间段:
Select gid,fariqi,neibuyonghu,title from tgongwen
用时:128470毫秒(即:128秒)
(2)在主键上建立聚集索引,在fariq上建立非聚集索引:
select gid,fariqi,neibuyonghu,title from Tgongwen
where fariqi> dateadd(day,-90,getdate())
用时:53763毫秒(54秒)
(3)将聚合索引建立在日期列(fariqi)上:
select gid,fariqi,neibuyonghu,title from Tgongwen
where fariqi> dateadd(day,-90,getdate())
用时:2423毫秒(2秒)
详见:http://www.cnblogs.com/tintown/archive/2005/04/24/144272.html
#6
提升硬件
使用字段名取代 *
使用字段名取代 *
#7
你select 出1000W,谁看啊?有意义吗
#8
提升硬件,设计索引
#9
Select Top N 只取符合条件的前N条,太多也看不过来
#10
根据需要选择字段输出。尽量使用优化策略。
#11
1、提高硬件的配置了cup、内存、硬盘的读取速度。
2、软件最好把这样的大表建立复合索引或者分区表之类的,已提高性能。
2、软件最好把这样的大表建立复合索引或者分区表之类的,已提高性能。
#12
如果你是想看一哈各个字段的话,建议直接select top 10 * from ab1;没必要全部显示出来撒。
#13
1000万条记录,你全查出来又能怎样?
#14
其实显示结果浪费了很多的时间,我的测试结果
表记录1016万记录
表记录1016万记录
select count(*) from tb //Time 2046毫秒
select * into #tmp from tb //Time 19516毫秒
select * from tb //2分15秒,显示了230万条记录
#15
如果你的程序有这样的语句,改掉它是唯一的方法
#16
如果是100w行数据都要的话,就BCP导出给他们吧。
提升硬盘的I/O也是不错的选择。
#17
1.看看你的电脑配置怎么样 电脑配置如果不是很好的话 当然会慢一点了
2.可以创建主键索引 加快查询速度
3.如果是在程序里要查询的这1000万行数据的话 我建议你写 一个存储过程 先在数据库中先预编译一下 这样在 程序中调这条 存储过程 就会很快了
2.可以创建主键索引 加快查询速度
3.如果是在程序里要查询的这1000万行数据的话 我建议你写 一个存储过程 先在数据库中先预编译一下 这样在 程序中调这条 存储过程 就会很快了
#18
从1000万条里查n条
还是必须输出1000万条?
后者不应该
前者通过加合适的索引,速度不会慢
还是必须输出1000万条?
后者不应该
前者通过加合适的索引,速度不会慢
#19
分页吧
#20
每个人都告诉你建索引,我想提醒楼主,水可载舟亦可覆舟,你先高清楚各个索引的区别,然后建立不同的索引看看效果,实践才能检验真理啊。。还有,如果楼主这个表插入更新很频繁记得定期索引重建。。
P.S 5楼叶子推荐的文章楼主可以看看。。