- 论坛徽章:
- 0
|
我写这样一个sql:
echo "BEGIN : `date +%H:%M:%S`"
dbaccess cisdb <<EOF
SET EXPLAIN ON;
SET EXPLAIN ON AVOID_EXECUTE;
SET ISOLATION DIRTY READ;
SET PDQPRIORITY HIGH;
insert into tmp_all_savestat select --+ use_hash(a,b)
a.branchno_cr,'99',sum(nvl(b.balance_dc,0))
from t_cif_info a,t_acct_info b
where
a.custno_i=b.custno_i
and b.acctorig_cr !='4' and b.acctstatus_cr !='2'
group by a.branchno_cr;
SET EXPLAIN OFF;
EOF
echo "END : `date +%H:%M:%S`"
执行结果非常慢,跟踪显示两个表都是顺序扫描,根本没用到索引,请问问题出在哪里?
附跟踪结果:
Estimated Cost: 2147483647
Estimated # of Rows Returned: 12
Maximum Threads: 13
DIRECTIVES FOLLOWED:
USE_HASH ( a b )
DIRECTIVES NOT FOLLOWED:
Temporary Files Required For: Group By
1) ccbcis.b: SEQUENTIAL SCAN
Filters: (ccbcis.b.acctorig_cr != '4' AND ccbcis.b.acctstatus_cr != '2'
)
2) ccbcis.a: SEQUENTIAL SCAN
DYNAMIC HASH JOIN
Dynamic Hash Filters: ccbcis.a.custno_i = ccbcis.b.custno_i |
|