MY_ID (値が 1,2,3,5,8...1100 の整数)、RUN_DATE (過去数日) の順序で 2 つの列にリスト パーティションを含むテーブルがあります。
私のクエリは
select * from my_partitioned_table
where run_date = '10-sep-2014'
and my_id in (select my_id from mapping_table where category = 1)
;
以下の EXPLAIN PLAN を使用して、完全なテーブル スキャンを実行します。
PX RECEIVE 115K 4M 600 1,01 PCWP
PX SEND BROADCAST :TQ10000 115K 4M 600 1,00 P->P BROADCAST
PX BLOCK ITERATOR 115K 4M 600 1,00 PCWC
TABLE ACCESS FULL MAPPING_TABLE 115K 4M 600 1,00 PCWP
PX BLOCK ITERATOR 1G 412G 34849 1,01 PCWC 1 16
TABLE ACCESS FULL MY_PARTITIONED_TABLE 1G 412G 34849 1,01 PCWP KEY KEY
テーブル全体をスキャンするのではなく、特定のパーティションのみにアクセスするように強制するにはどうすればよいですか?
申し訳ありませんが、私はOracleのヒントに慣れていないため、以前は特定の質問を見つけることができませんでした.