社区
ASP
帖子详情
40万数据的SQL查询,怎么优化select * from table,不优化要执行10秒啊
yc406740872
2010-12-03 10:39:36
40万数据的SQL查询,怎么优化select * from table,不优化要执行10秒啊,,我是查询全部字段,所以必须seelct * ,这样一来,页面要执行10秒才能被执行完,,怎么进行优化啊??
还有,就是 rs.recordcount ,查询总记录数,也要执行5秒,我在本地测试的,传上服务器,执行时间会更长,请问有什么方法解决吗??
...全文
1673
19
打赏
收藏
40万数据的SQL查询,怎么优化select * from table,不优化要执行10秒啊
40万数据的SQL查询,怎么优化select * from table,不优化要执行10秒啊,,我是查询全部字段,所以必须seelct * ,这样一来,页面要执行10秒才能被执行完,,怎么进行优化啊?? 还有,就是 rs.recordcount ,查询总记录数,也要执行5秒,我在本地测试的,传上服务器,执行时间会更长,请问有什么方法解决吗??
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
19 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
liulei0102
2010-12-14
打赏
举报
回复
谁让你用“*”通配符的呢!你查啥写啥不就省事多了!
lenqen
2010-12-14
打赏
举报
回复
可能是游标问题,我通常用Forward Only,虽然这样不能用RECORDCOUNT属性,但效率高很多。
至于RECORDCOUNT属性,可以用MOVE NEXT加一个计数器实现。
Nichel168
2010-12-14
打赏
举报
回复
select * 这样写很费资源的。还是要需要查询的字段列出来。
测试后执行速度就要稍好些。
还有查询记录数的时候,重新写个sql查询,你看那种方式更快。
chinank
2010-12-08
打赏
举报
回复
1
楼主的问题是个伪命题
你40万数据取出来干嘛,你想全部在一个页面显示吗?
多数电脑的IE会被你这40万数据搞死的
你只需要取出你自己想要的数据就可以了,where后面字段,一定要加index
至于count,不要用recordcout,要用
selcect count(1) from xxx 这样用,count(*)会慢一点
取的时候,只取rs(0)就知道是多少了
=====================================================
楼上说的很准确, 另外我补充一点,
select * ……,这样也浪费资源, 只读取你有用的字段即可,
索引+存储过程+ sql语句优化 缺一不可。
小丫头
2010-12-08
打赏
举报
回复
用存储过程呗
youngsheep
2010-12-06
打赏
举报
回复
楼主的问题是个伪命题
你40万数据取出来干嘛,你想全部在一个页面显示吗?
多数电脑的IE会被你这40万数据搞死的
你只需要取出你自己想要的数据就可以了,where后面字段,一定要加index
至于count,不要用recordcout,要用
selcect count(1) from xxx 这样用,count(*)会慢一点
取的时候,只取rs(0)就知道是多少了
gentle_sword
2010-12-04
打赏
举报
回复
用ms sql加存储过程
一把编程的菜刀
2010-12-04
打赏
举报
回复
goodsname 肯定要建立索引 like本身就快不了多少
xd521
2010-12-04
打赏
举报
回复
select * from tb_goods where goodsname like '%1%'
你说你要取所有列的数据集,那你用的*,没有问题
如果你要进行模糊查询,那你用%%,也没有问题
没法优化了
这样的需求,存储过程也无济于事,
我理解你的需求就是:在40万条数据中找“商品编码”列任意部分包含“1”的数据
yc406740872
2010-12-04
打赏
举报
回复
我的是个库存系统,ASP+SQLSERVER。。。商品都存在一个tb_goods表里面,大约30-40万吧。。我做的搜索,就是很简单的搜索 goodsname(商品编码)字段,当然ID是主键索引,我要查goodsname字段,是不是将goodsname字段建立非聚集索引??楼上说不用like,那用什么查询语句呢??
我用传统的like查询,要执行10多秒呀。。请大家帮帮忙。
就以这段SQL语句进行索引的修改(*我是要查所有字段):select * from tb_goods where goodsname like '%%'
namesliu
2010-12-04
打赏
举报
回复
晕。。。。不能,为什么 不加 where
Ygb_Prince
2010-12-04
打赏
举报
回复
我想你是用asp边sqlserver吧?
1,清理好数据表的沉余字段,可以建立字表作为关联,记得为关键字段(需要作为条件的字段都可以设置为字段,不要太多要合理)添加索引;
2,获取数据的数目,可以用select count(id) from table 以id作为索引;
3,合理的化分页
zming
2010-12-04
打赏
举报
回复
where xxx like '%xxx%' 这种用法不使用索引,建立索引也没用的。
只有
where xxx like 'xxx%' 才会使用到索引
xmrxw
2010-12-04
打赏
举报
回复
你可以找一下通用存储过程代码,百万级别的数据!
kkbac
2010-12-04
打赏
举报
回复
like语句本来就慢, 需要的字段上建议索引啊.
phuai007
2010-12-04
打赏
举报
回复
40万数据,最好是加存储过程了。
huangli21
2010-12-04
打赏
举报
回复
存储过程 必须的
hookee
2010-12-03
打赏
举报
回复
为何要 rs.recordcount 取总数? 该不会要把所有数据都读出来?一般都会加WHERE条件的
id如果建立过索引的话,可以用 SELECT COUNT(*) 取总数.
要查询的字段加索引, 尽量避免用LIKE '%xx%'类型的查询
xuStanly
2010-12-03
打赏
举报
回复
什么数据库呀?40万数据都扛不住?
数据
库
40
万
数据
查询12
秒
效率怎么样
本文分析
数据
库查询
40
万
条
数据
耗时12
秒
的效率,指出需结合具体场景判断。介绍了常规性能参考标准,分析影响查询效率的关键因素,如查询语句类型、索引使用、硬件与配置、
数据
分布等,还给出
优化
建议,包括分析
执行
计划、
优化
索引和SQL语句、硬件与配置
优化
等。
来自灵魂的拷问——知道什么是SQL
执行
计划吗?
本文深入讲解SQL
执行
计划,包括
执行
计划中的关键信息如id、
select
_type、
table
等列的含义和作用,以及如何通过理解这些信息来
优化
SQL查询
效率。
ORACLE分页查询SQL语句(最有效的分页)
本文探讨了ORACLE
数据
库中分页查询的高效写法和低效写法,重点分析了无ORDER BY和有ORDER BY的分页效率,并指出在CBO
优化
模式下,如何利用ROWNUM
优化
查询性能。建议在分页查询时,尤其对于大量
数据
,采用ROWNUM结合WHERE子句的写法以提高效率。
五个简单的 SQL 查询性能测试题,只有
40
% 及格率。你敢来挑战吗?
本文包含5个关于
SQL查询
性能的测试题,旨在检测读者对索引和查询
优化
的理解。通过解析,读者可以学习如何避免常见错误,提升
数据
库性能。
从
40
秒
到11毫
秒
:TiDB环境下一次SQL深潜
优化
实战
本文记录了TiDB Cloud v7.5.2环境中复杂评论查询的SQL
优化
过程。最初查询耗时
40
多
秒
,通过分析
执行
计划,先尝试添加索引效果不佳,后改写SQL结构,将计数查询
执行
时间骤降。面对分页查询新挑战,进一步改写实现极致性能,最终将查询
优化
到11毫
秒
。
ASP
28,403
社区成员
356,946
社区内容
发帖
与我相关
我的任务
ASP
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
复制链接
扫一扫
分享
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章