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 次 |
| 最近记录: |