select * from ab1 表中有1000万条记录,慢怎么解决 用sql—2000,在查询分析中执行语句select * from ab1 需要很长时间才能执行完,显示结果。表中有1000万条记录,慢怎么解决。 谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 硬件:增加内存,换高性能CPU软件: 加索引. 下面我们就来看一下在1000万条数据量的情况下各种查询的速度表现(3个月内的数据为25万条): (1)仅在主键上建立聚集索引,并且不划分时间段: Select gid,fariqi,neibuyonghu,title from tgongwen用时:128470毫秒(即:128秒) (2)在主键上建立聚集索引,在fariq上建立非聚集索引: select gid,fariqi,neibuyonghu,title from Tgongwenwhere fariqi> dateadd(day,-90,getdate())用时:53763毫秒(54秒) (3)将聚合索引建立在日期列(fariqi)上: select gid,fariqi,neibuyonghu,title from Tgongwenwhere fariqi> dateadd(day,-90,getdate())用时:2423毫秒(2秒) 详见:http://www.cnblogs.com/tintown/archive/2005/04/24/144272.html 你select 出1000W,谁看啊?有意义吗 Select Top N 只取符合条件的前N条,太多也看不过来 1、提高硬件的配置了cup、内存、硬盘的读取速度。2、软件最好把这样的大表建立复合索引或者分区表之类的,已提高性能。 如果你是想看一哈各个字段的话,建议直接select top 10 * from ab1;没必要全部显示出来撒。 其实显示结果浪费了很多的时间,我的测试结果表记录1016万记录select count(*) from tb //Time 2046毫秒select * into #tmp from tb //Time 19516毫秒select * from tb //2分15秒,显示了230万条记录 如果是100w行数据都要的话,就BCP导出给他们吧。提升硬盘的I/O也是不错的选择。 XP系统的本子装什么版本的SQL比较好? asp+sql2005 编写 出现类型不匹配 如何把小数后面后面超过两位的数全部检索出来 如何用select返回一个月前的记录 字符串加1? 去重复 SQL Server 2005附加数据库出现的提示 请教高手 粘不进去? SQLSERVER中如何写触发器,当更改一条记录时,该记录的一个字段如OP_TIME会自动更新成当前时间 两个表用同一个增长序列做主键,该怎么弄? 无0占位的字符串序数如何排列
软件: 加索引.
用时: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
2、软件最好把这样的大表建立复合索引或者分区表之类的,已提高性能。
表记录1016万记录select count(*) from tb //Time 2046毫秒select * into #tmp from tb //Time 19516毫秒select * from tb //2分15秒,显示了230万条记录
如果是100w行数据都要的话,就BCP导出给他们吧。提升硬盘的I/O也是不错的选择。