Pie*_*erk 3 performance oracle-11g-r2 query-performance
我有一个 Oracle 平面表,它增长到略低于 800MB。该表被截断,正在插入新记录。目前表中有 <40 条记录,但一条select *
需要 >30 秒。
这可能是因为表仍然很大(约 800MB)以至于需要很长时间?
没有索引。
编辑
我从清理桌子的人那里发现他们做了一个delete
而不是一个truncate
如果查询计划涉及全表扫描,则 Oracle 必须读取表中的每个块直到其高水位线 (HWM)。如果 HWM 下有 800 MB 的块,那么读取所有数据需要 30 秒是完全合理的。在这种情况下,实际包含数据的块的数量是无关紧要的。
但是,如果您截断了表,则除非您指定REUSE STORAGE
哪个不是默认值,否则您应该重置 HWM 。表仍然是 800 MB 的事实意味着您REUSE STORAGE
在TRUNCATE
命令中明确包含 a或者您实际上没有截断表 - 例如,也许您只是执行DELETE
了删除所有数据的操作。ADELETE
不会重置 HWM。
归档时间: |
|
查看次数: |
1894 次 |
最近记录: |