相同环境下同一条update语句,慢的时候执行了1.5天,快的时候2个小时就执行完了,通过执行@awrsqrpt.sql脚本抓取当时的执行计划,发现有如下不同:
慢的情况下的执行计划:
Id | Operation | Name | Rows | Bytes | Cost (%CPU) | Time |
---|---|---|---|---|---|---|
0 | UPDATE STATEMENT | 8 (100) | ||||
1 | UPDATE | ZJWB_ANJIANZT | ||||
2 | NESTED LOOPS | |||||
3 | NESTED LOOPS | 1 | 61 | 8 (13) | 00:00:01 | |
4 | VIEW | VW_NSO_1 | 1 | 27 | 5 (20) | 00:00:01 |
5 | SORT UNIQUE | 1 | 30 | 5 (20) | 00:00:01 | |
6 | SORT GROUP BY | 1 | 30 | 5 (20) | 00:00:01 | |
7 | TABLE ACCESS BY INDEX ROWID | ZJWB_ANJIANZT | 1 | 30 | 4 (0) | 00:00:01 |
8 | INDEX RANGE SCAN | IX_CHULIBJ_ZJWB_ANJIANZT | 1 | 3 (0) | 00:00:01 | |
9 | INDEX RANGE SCAN | IX_CHULIBJ_ZJWB_ANJIANZT | 1 | 2 (0) | 00:00:01 | |
10 | TABLE ACCESS BY INDEX ROWID | ZJWB_ANJIANZT | 1 | 34 | 3 (0) | 00:00:01 |
快的时候的执行计划:
Id | Operation | Name | Rows | Bytes | TempSpc | Cost (%CPU) | Time |
---|---|---|---|---|---|---|---|
0 | UPDATE STATEMENT | 147K(100) | |||||
1 | UPDATE | ZJWB_ANJIANZT | |||||
2 | HASH JOIN | 12G | 699G | 39M | 147K (83) | 00:29:27 | |
3 | VIEW | VW_NSO_1 | 1053K | 27M | 14580 (3) | 00:02:55 | |
4 | SORT UNIQUE | 1053K | 27M | 14580 (3) | 00:02:55 | ||
5 | SORT GROUP BY | 1053K | 27M | 81M | 14580 (3) | 00:02:55 | |
6 | TABLE ACCESS FULL | ZJWB_ANJIANZT | 1062K | 27M | 6492 (3) | 00:01:18 | |
7 | TABLE ACCESS FULL | ZJWB_ANJIANZT | 1150K | 38M | 6494 (3) | 00:01:18 |
并不是所有的表创建了索引就一定快,如果表上某个列的值唯一性比较强,创建索引比较好,但是如果重复性比较高的话,不适合创建索引。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10322123/viewspace-611954/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/10322123/viewspace-611954/