unnest和push_subq
no_unnest和no_push_subq
push_subq和push_pred
no_push_subq和no_push_pred特别是unnest和push_subq、no_unnest和no_push_subq,搞不明白!
SELECT /*+ no_merge(t) no_push_pred(t)*/
t1.owner, t.table_name, t. Index_Name
FROM t1,
(SELECT t2.id, t2.table_name, t3.index_name
FROM t2, t3
WHERE t2.Id = t3.ID) t
WHERE t1.ID = t.ID
AND t1.ID = 5PLAN_TABLE_OUTPUT
----------------------------------------------------------------------------------------------------
Plan hash value: 649751809----------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
----------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 58 | 5 (0)| 00:00:01 |
| 1 | NESTED LOOPS | | 1 | 58 | 5 (0)| 00:00:01 |
| 2 | TABLE ACCESS BY INDEX ROWID | T1 | 1 | 11 | 2 (0)| 00:00:01 |
|* 3 | INDEX UNIQUE SCAN | PK_T1 | 1 | | 1 (0)| 00:00:01 |
| 4 | VIEW | | 1 | 47 | 3 (0)| 00:00:01 |
| 5 | NESTED LOOPS | | 1 | 48 | 3 (0)| 00:00:01 |
| 6 | TABLE ACCESS BY INDEX ROWID| T3 | 1 | 25 | 2 (0)| 00:00:01 |
|* 7 | INDEX UNIQUE SCAN | PK_T3 | 1 | | 1 (0)| 00:00:01 |
| 8 | TABLE ACCESS BY INDEX ROWID| T2 | 1 | 23 | 1 (0)| 00:00:01 |
|* 9 | INDEX UNIQUE SCAN | PK_T2 | 1 | | 0 (0)| 00:00:01 |
----------------------------------------------------------------------------------------Predicate Information (identified by operation id):
--------------------------------------------------- 3 - access("T1"."ID"=5)
7 - access("T3"."ID"=5)
9 - access("T2"."ID"=5)看执行计划,查询条件推入到view中,no_push_pred似乎不起作用呀!
no_unnest和no_push_subq
push_subq和push_pred
no_push_subq和no_push_pred特别是unnest和push_subq、no_unnest和no_push_subq,搞不明白!
SELECT /*+ no_merge(t) no_push_pred(t)*/
t1.owner, t.table_name, t. Index_Name
FROM t1,
(SELECT t2.id, t2.table_name, t3.index_name
FROM t2, t3
WHERE t2.Id = t3.ID) t
WHERE t1.ID = t.ID
AND t1.ID = 5PLAN_TABLE_OUTPUT
----------------------------------------------------------------------------------------------------
Plan hash value: 649751809----------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
----------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 58 | 5 (0)| 00:00:01 |
| 1 | NESTED LOOPS | | 1 | 58 | 5 (0)| 00:00:01 |
| 2 | TABLE ACCESS BY INDEX ROWID | T1 | 1 | 11 | 2 (0)| 00:00:01 |
|* 3 | INDEX UNIQUE SCAN | PK_T1 | 1 | | 1 (0)| 00:00:01 |
| 4 | VIEW | | 1 | 47 | 3 (0)| 00:00:01 |
| 5 | NESTED LOOPS | | 1 | 48 | 3 (0)| 00:00:01 |
| 6 | TABLE ACCESS BY INDEX ROWID| T3 | 1 | 25 | 2 (0)| 00:00:01 |
|* 7 | INDEX UNIQUE SCAN | PK_T3 | 1 | | 1 (0)| 00:00:01 |
| 8 | TABLE ACCESS BY INDEX ROWID| T2 | 1 | 23 | 1 (0)| 00:00:01 |
|* 9 | INDEX UNIQUE SCAN | PK_T2 | 1 | | 0 (0)| 00:00:01 |
----------------------------------------------------------------------------------------Predicate Information (identified by operation id):
--------------------------------------------------- 3 - access("T1"."ID"=5)
7 - access("T3"."ID"=5)
9 - access("T2"."ID"=5)看执行计划,查询条件推入到view中,no_push_pred似乎不起作用呀!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货