200W数据的单个表 查询速度很慢。

huowang 2009-09-11 05:06:30
问题描述:我有一张200W条记录的表,查询数据很慢。然后我删除了大部分数据,就保留几十条数据。 可查询数据还是很慢, 为什么会这样? 几十条数据,一个 select count(*) from tablename 都要1秒多的时间。。

新接触oracle ,望好心人指点。。
...全文
587 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzzzzyyy 2009-09-15
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 francered 的回复:]
高水位线问题,可参考文章:http://www.diybl.com/course/7_databases/oracle/2007114/84243.html
[/Quote]
这个不错!建议楼主看看!
13abyKnight 2009-09-15
  • 打赏
  • 举报
回复
创建索引了吗、
不要使用select *from 这样执行的速度是最慢最底下的的这样数据全扫描啊!

如果一个表中20个字段你创建15个索引 不必考虑查询的速度一定特慢。。。

你使用的是oracle数据库吗? 几十条数据需要那么长时间?

是不是,你的电脑CPU爆满啦!
超叔csdn 2009-09-15
  • 打赏
  • 举报
回复
由于delete数据一般都不会释放空间,你可以查查该表占的空间还是很大,就算只有10条数据速度很慢都算正常的。这种情况下被删除的表数据还可以通过flahback找回来。
如果是truncate这种ddl操作,空间就释放了。
傻儿哥 2009-09-15
  • 打赏
  • 举报
回复
细看LZ的问题,
把表move 一下,再rebuild index 即可解决问题哈.
傻儿哥 2009-09-15
  • 打赏
  • 举报
回复
set autotrace on explain
select .. from ..;
查看执行计划,优化之.
如果安装有 em,直接使用 sql tuning advisor+sql access advisor 优化之
francered 2009-09-14
  • 打赏
  • 举报
回复
tiancx82 2009-09-13
  • 打赏
  • 举报
回复
高水位线的问题,搜索一下就知道了
inthirties 2009-09-13
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 inthirties 的回复:]
引用 6 楼 huowang 的回复:
引用 3 楼 inthirties 的回复:
保留10几条还慢的话,把表的hwm降下来才行。

可以重建表,


为什么会出现数据量很小,可查询速度会很慢的情况,  难道删除过的数据还会对查询有影响吗?


了解一下hwm方面的知识, 如果单条还慢,应该是没有index的问题了。
[/Quote]

1. 为什么你这里只有10几条数据,却查询count很慢
了解一下hwm方面的知识

2. 为什么选单个的也慢
如果单条还慢,应该是没有index的问题了。根据你的查询条件,加上相应的index
huowang 2009-09-12
  • 打赏
  • 举报
回复
50个字段,没建索引
yubin88 2009-09-12
  • 打赏
  • 举报
回复
楼主你删掉索引看看
johnnyhuawei 2009-09-11
  • 打赏
  • 举报
回复
这种情况很奇怪啊,多少个字段?难道全建索引了?
inthirties 2009-09-11
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 huowang 的回复:]
引用 3 楼 inthirties 的回复:
保留10几条还慢的话,把表的hwm降下来才行。

可以重建表,


为什么会出现数据量很小,可查询速度会很慢的情况,  难道删除过的数据还会对查询有影响吗?
[/Quote]

了解一下hwm方面的知识, 如果单条还慢,应该是没有index的问题了。
huowang 2009-09-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 inthirties 的回复:]
保留10几条还慢的话,把表的hwm降下来才行。

可以重建表,
[/Quote]

为什么会出现数据量很小,可查询速度会很慢的情况, 难道删除过的数据还会对查询有影响吗?
huowang 2009-09-11
  • 打赏
  • 举报
回复
实际上,单条查询也是慢。
我目前方法很死,就是先把这几十条数据保存到临时表中,再truncate 这个表,再临时表数据插回来。

这样做的可以解决查询速度问题。

可我就是想知道,为什么会这样的,有没有更好的解决方法
inthirties 2009-09-11
  • 打赏
  • 举报
回复
select count(1) from table_a 慢,不代表选择单条记录都慢
inthirties 2009-09-11
  • 打赏
  • 举报
回复
保留10几条还慢的话,把表的hwm降下来才行。

可以重建表,
huowang 2009-09-11
  • 打赏
  • 举报
回复
问题不在这里,我把数据都删掉了,就剩下几十条了,可查询还是慢啊
Dave 2009-09-11
  • 打赏
  • 举报
回复
这么大的表,有建索引没有,如果走全表扫描的话,肯定会很慢..

我们公司700W 都很快.. 当然服务器性能也不错..

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧