表里没数据,查询很慢 有一张表,本来里面有一些数据有20多万,没删数据之前查询什么的都很迅速,很正常。但是删除数据,就是delete from tablename,这时表里没有数据了,怎么再select怎么明显速度很慢了呀? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可能是延迟块清除造成的多select几次试试 truncate table table_name;后再查询看看,时间怎么样。难道是传说中的高水位? 用truncate table table_name 能删除高水位的delete table table_name 虽然能删除记录 但是空间会被占用的 得用truncate table table_name 进行删除 就是说假设你表里有100M的数据现在你虽然删除了70M数据 还剩30M可是现在ORACLE在进行查询的时候仍然会查询100M的空间(其实其中有70M是空的)这是因为高水位还在100M那个地方你使用上面朋友说的那个命令truncate table table_name;试试这个命令可以把高水位从100M降到30M的地方这样在查询的时候只用扫描30M的空间 延迟块清除啊……这个一言两语说不太清楚http://blog.csdn.net/wh62592855/archive/2009/10/26/4730623.aspx看看上面的文章吧 我也遇到这个问题,空表 select * from table 居然也要6秒钟。关注中 truncate table table_name; 会把整个表数据都删除的,如果只删除部分数据后,想把高水位降低要怎么办呢? oracle10g rac一个节点不能启动的问题. 在存储过程中数据分发的问题 ORALCE 用IMPDP导入的序列不一致,这是怎么回事? oracle中如何将某时间转换为给定时区对应的时间? 如何追踪session中执行的SQL语句 MyEclipser中配置Oracle9 看不懂这段话,请前辈翻译一下 利用sqlplus查询语句? 在触发器中取记录的问题 使用oracle自带的UTL_SMTP包来发送邮件 Oracle根据去掉某一字段相同值的记录 表字段的多少会影响查询速度吗
后再查询看看,时间怎么样。难道是传说中的高水位?
现在你虽然删除了70M数据 还剩30M
可是现在ORACLE在进行查询的时候仍然会查询100M的空间(其实其中有70M是空的)
这是因为高水位还在100M那个地方你使用上面朋友说的那个命令
truncate table table_name;
试试
这个命令可以把高水位从100M降到30M的地方
这样在查询的时候只用扫描30M的空间
这个一言两语说不太清楚
http://blog.csdn.net/wh62592855/archive/2009/10/26/4730623.aspx看看上面的文章吧
关注中