表里没数据,查询很慢

wswzwz 2010-01-09 11:06:11
有一张表,本来里面有一些数据有20多万,没删数据之前查询什么的都很迅速,很正常。但是删除数据,就是delete from tablename,这时表里没有数据了,怎么再select怎么明显速度很慢了呀?
...全文
211 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
guoliming365 2011-12-14
  • 打赏
  • 举报
回复
truncate table table_name; 会把整个表数据都删除的,如果只删除部分数据后,想把高水位降低要怎么办呢?
csbwolf10 2010-05-13
  • 打赏
  • 举报
回复
我也遇到这个问题,空表 select * from table 居然也要6秒钟。
关注中
wh62592855 2010-01-09
  • 打赏
  • 举报
回复
延迟块清除啊……
这个一言两语说不太清楚
http://blog.csdn.net/wh62592855/archive/2009/10/26/4730623.aspx

看看上面的文章吧
wh62592855 2010-01-09
  • 打赏
  • 举报
回复
就是说假设你表里有100M的数据
现在你虽然删除了70M数据 还剩30M
可是现在ORACLE在进行查询的时候仍然会查询100M的空间(其实其中有70M是空的)
这是因为高水位还在100M那个地方

你使用上面朋友说的那个命令
truncate table table_name;
试试
这个命令可以把高水位从100M降到30M的地方
这样在查询的时候只用扫描30M的空间
zjyplayboy 2010-01-09
  • 打赏
  • 举报
回复
删除表后做过表分析么?没有做过的话建议你做一下
tjuxl123 2010-01-09
  • 打赏
  • 举报
回复
用truncate table table_name 能删除高水位的

delete table table_name 虽然能删除记录 但是空间会被占用的 得用truncate table table_name 进行删除
wswzwz 2010-01-09
  • 打赏
  • 举报
回复
延迟块清除是什么啊,我刚又往表里插入了一些数据,再查询又快了,这是为什么啊
wswzwz 2010-01-09
  • 打赏
  • 举报
回复
我提交事务了,高水位什么意思啊
wh62592855 2010-01-09
  • 打赏
  • 举报
回复
呵呵 没准儿
duqiangcise 2010-01-09
  • 打赏
  • 举报
回复
truncate table table_name;
后再查询看看,时间怎么样。难道是传说中的高水位?
wh62592855 2010-01-09
  • 打赏
  • 举报
回复
可能是延迟块清除造成的

多select几次试试
小灰狼W 2010-01-09
  • 打赏
  • 举报
回复
commit下
再看看

17,377

社区成员

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

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