Oracle的并行查询尝试
来源:互联网 发布:江苏有线数据公司 编辑:程序博客网 时间:2024/03/28 22:54
分析表,重新估算统计信息
ANALYZE TABLE tasharecurrents ESTIMATE statistics;
打开或关闭表的并行选项
ALTER TABLE tasharecurrents PARALLEL;
--ALTER TABLE tasharecurrents NOPARALLEL;
启用oracle hint,强制执行计划,分别记录有并行和无并行的执行时间
select --/*+ parallel(t)*/
b.fundname 基金名称,
sum(nvl(t.lastshares, 0)) 份额,
sum(decode(m.individualorinstitution, '1', 0, t.lastshares)) 机构投资者,
sum(decode(m.individualorinstitution, '1', t.lastshares, 0)) 个人投资者,
count(distinct(decode(m.individualorinstitution, '1', null, t.taaccountid))) 机构投资者数量, -- null的个数不计入count
count(distinct(decode(m.individualorinstitution, '1', t.taaccountid, null))) 个人投资者数量
from tasharecurrents t,
tafundtype b,
taaccoinfo m
where 1 = 1
and t.fundcode = b.fundcode
and t.taaccountid = m.taaccountid
AND t.transcfmdate <= to_date('20070430', 'yyyymmdd')
and t.sharevaliddate > to_date('20070430', 'yyyymmdd')
and t.lastshares > 0
group by b.fundname
;
执行计划为
SELECT STATEMENT, GOAL = CHOOSE Cost=22780 Cardinality=13 Bytes=832
SORT GROUP BY Cost=22780 Cardinality=13 Bytes=832
SORT GROUP BY Cost=22780 Cardinality=13 Bytes=832
SORT GROUP BY Cost=22780 Cardinality=13 Bytes=832
HASH JOIN Cost=17001 Cardinality=6908778 Bytes=442161792
TABLE ACCESS FULL Object owner=TA Object name=TAFUNDTYPE Cost=2 Cardinality=13 Bytes=195
HASH JOIN Cost=16999 Cardinality=6908778 Bytes=338530122
TABLE ACCESS FULL Object owner=TA Object name=TAACCOINFO Cost=2114 Cardinality=2590572 Bytes=33677436
TABLE ACCESS FULL Object owner=TA Object name=TASHARECURRENTS Cost=14885 Cardinality=6908778 Bytes=248716008
最后,比较发现并行对该查询没有效果,有无并行的执行时间基本相同。初步估计可能跟tasharecurrents的存储结构有关系。tasharecurrents有500万行,记录平均长度约150byte,taaccoinfo约200万行记录,记录平均长度约150byte。两个表没有分区。
其它相关sqlplus命令:
show parameter opt
alter system set optimizer_mode = ALL_ROWS scope = spfile;
- Oracle的并行查询尝试
- oracle并行查询操作的执行计划
- ORACLE-并行查询技巧
- oracle并行查询常见问题
- oracle 并行查询
- oracle 并行查询常见问题
- Oracle并行查询出错
- Oracle 并行查询
- Oracle 并行查询 parallel Query
- oracle并行查询一例
- Oracle 并行查询 parallel Query
- oracle并行查询一例
- oracle多cpu并行查询
- oracle并行查询一例
- 2013.11.5并行查询 oracle
- Oracle 并行查询 parallel Query
- oracle并行查询一例
- 用Oracle并行查询发挥多CPU的威力
- Windows 2000 Sever下IE6无法安装的解决办法
- EXECUTE IMMEDIATE option for Dynamic SQL and PL/SQL
- 2006-2007年度JAVA平台开发工具的应用状况
- log4j日志使用详解
- eclipse中通过debug进行tomcat,weblogic的远程调试
- Oracle的并行查询尝试
- Week 18 (07.04.30-07.05.04) LNBS
- JAVA中文件操作大全
- Week 19 (07.05.08-07.05.11) NFFS2
- 人物散记:吴文虎教授,信息学奥赛和其他
- 关于wsit (Web Services Interoperability Technologies)
- 压力监测程序sqlserver和MYSQL版
- Week 20 (07.05.14-07.05.18) LNBS
- 如何恢复误删除的Linux文件