这条语句在sql窗口执行很快 INSERT INTO T_ESHOP_MONTH
SELECT MON,
'qry_su',
DECODE(SUM(TOTAL), 0, 0, SUM(SU) / SUM(TOTAL)),
'www'
FROM (SELECT /*+parallel(t,10)*/
TO_CHAR(T.BIZ_BEGINDATE, 'YYYYMM') MON,
'qry_num' , COUNT(CASE
WHEN T.BUSI_RESULT = '0' THEN
1
END) SU,
COUNT(1) TOTAL
FROM ES_PUB_SYSTEMLOG T
WHERE T.OPER_TYPE = '0'
AND T.BIZ_BEGINDATE >= TO_DATE('20120601', 'YYYYMMDD')
AND T.BIZ_BEGINDATE < TO_DATE('20120701', 'YYYYMMDD')
GROUP BY TO_CHAR(T.BIZ_BEGINDATE, 'YYYYMM')
UNION ALL
SELECT /*+parallel(t,10)*/
TO_CHAR(T.BIZ_BEGINDATE, 'YYYYMM'),
'qry_num' , COUNT(CASE
WHEN T.BUSI_RESULT = '0' THEN
1
END) SU,
COUNT(1) TOTAL
FROM ES_PUB_SYSTEMLOGMM T
WHERE T.OPER_TYPE = '0'
AND T.BIZ_BEGINDATE >= TO_DATE('20120601', 'YYYYMMDD')
AND T.BIZ_BEGINDATE < TO_DATE('20120701', 'YYYYMMDD')
GROUP BY TO_CHAR(T.BIZ_BEGINDATE, 'YYYYMM'))
GROUP BY MON;
COMMIT;
当加上变量做条件后就执行很慢 INSERT INTO T_ESHOP_MONTH
SELECT MON,
'qry_su',
DECODE(SUM(TOTAL), 0, 0, SUM(SU) / SUM(TOTAL)),
'www'
FROM (SELECT /*+parallel(t,10)*/
TO_CHAR(T.BIZ_BEGINDATE, 'YYYYMM') MON,
'qry_num' , COUNT(CASE
WHEN T.BUSI_RESULT = '0' THEN
1
END) SU,
COUNT(1) TOTAL
FROM ES_PUB_SYSTEMLOG T
WHERE T.OPER_TYPE = '0'
AND T.BIZ_BEGINDATE >= V_MONTH_DATE--变量
AND T.BIZ_BEGINDATE < V_NMONTH --变量
GROUP BY TO_CHAR(T.BIZ_BEGINDATE, 'YYYYMM')
UNION ALL
SELECT /*+parallel(t,10)*/
TO_CHAR(T.BIZ_BEGINDATE, 'YYYYMM'),
'qry_num' , COUNT(CASE
WHEN T.BUSI_RESULT = '0' THEN
1
END) SU,
COUNT(1) TOTAL
FROM ES_PUB_SYSTEMLOGMM T
WHERE T.OPER_TYPE = '0'
AND T.BIZ_BEGINDATE >= V_MONTH_DATE--变量
AND T.BIZ_BEGINDATE < V_NMONTH --变量
GROUP BY TO_CHAR(T.BIZ_BEGINDATE, 'YYYYMM'))
GROUP BY MON;
COMMIT;
这些表都是分区表,所以按照时间段取得
请高手帮忙解决
SELECT MON,
'qry_su',
DECODE(SUM(TOTAL), 0, 0, SUM(SU) / SUM(TOTAL)),
'www'
FROM (SELECT /*+parallel(t,10)*/
TO_CHAR(T.BIZ_BEGINDATE, 'YYYYMM') MON,
'qry_num' , COUNT(CASE
WHEN T.BUSI_RESULT = '0' THEN
1
END) SU,
COUNT(1) TOTAL
FROM ES_PUB_SYSTEMLOG T
WHERE T.OPER_TYPE = '0'
AND T.BIZ_BEGINDATE >= TO_DATE('20120601', 'YYYYMMDD')
AND T.BIZ_BEGINDATE < TO_DATE('20120701', 'YYYYMMDD')
GROUP BY TO_CHAR(T.BIZ_BEGINDATE, 'YYYYMM')
UNION ALL
SELECT /*+parallel(t,10)*/
TO_CHAR(T.BIZ_BEGINDATE, 'YYYYMM'),
'qry_num' , COUNT(CASE
WHEN T.BUSI_RESULT = '0' THEN
1
END) SU,
COUNT(1) TOTAL
FROM ES_PUB_SYSTEMLOGMM T
WHERE T.OPER_TYPE = '0'
AND T.BIZ_BEGINDATE >= TO_DATE('20120601', 'YYYYMMDD')
AND T.BIZ_BEGINDATE < TO_DATE('20120701', 'YYYYMMDD')
GROUP BY TO_CHAR(T.BIZ_BEGINDATE, 'YYYYMM'))
GROUP BY MON;
COMMIT;
当加上变量做条件后就执行很慢 INSERT INTO T_ESHOP_MONTH
SELECT MON,
'qry_su',
DECODE(SUM(TOTAL), 0, 0, SUM(SU) / SUM(TOTAL)),
'www'
FROM (SELECT /*+parallel(t,10)*/
TO_CHAR(T.BIZ_BEGINDATE, 'YYYYMM') MON,
'qry_num' , COUNT(CASE
WHEN T.BUSI_RESULT = '0' THEN
1
END) SU,
COUNT(1) TOTAL
FROM ES_PUB_SYSTEMLOG T
WHERE T.OPER_TYPE = '0'
AND T.BIZ_BEGINDATE >= V_MONTH_DATE--变量
AND T.BIZ_BEGINDATE < V_NMONTH --变量
GROUP BY TO_CHAR(T.BIZ_BEGINDATE, 'YYYYMM')
UNION ALL
SELECT /*+parallel(t,10)*/
TO_CHAR(T.BIZ_BEGINDATE, 'YYYYMM'),
'qry_num' , COUNT(CASE
WHEN T.BUSI_RESULT = '0' THEN
1
END) SU,
COUNT(1) TOTAL
FROM ES_PUB_SYSTEMLOGMM T
WHERE T.OPER_TYPE = '0'
AND T.BIZ_BEGINDATE >= V_MONTH_DATE--变量
AND T.BIZ_BEGINDATE < V_NMONTH --变量
GROUP BY TO_CHAR(T.BIZ_BEGINDATE, 'YYYYMM'))
GROUP BY MON;
COMMIT;
这些表都是分区表,所以按照时间段取得
请高手帮忙解决
解决方案 »
- 组合主键中其中一个字段是否能为null
- 请指出以下存储过程的错误
- 此函数怎么建
- 关于时间的问题~~
- 环境hp unix + oracle 8.1.7 装了多个数据库实例,如何指定一个实例启动,麻烦哪个大哥写下命令
- 急急急,关于ASP用Oracle Object for OLE访问Oracle数据库的问题
- 新手问的问题,希望大家帮忙
- between X and Y.如何让结果里也有X和Y.
- 创建Oracle数据库的问题
- 请问大神们,这两sql语句有什么区别啊,加括号和不加括号,输出结果差别好大,求指教
- 安装oracle 出现这种问题怎么办,,急,急
- 关于 Oracle 的条件查询效率的问题,请Oracle高手讲解讲解。
ADDRESS HASH_VALUE SQL_ID PLAN_HASH_VALUE CHILD_ADDRESS CHILD_NUMBER TIMESTAMP OPERATION OPTIONS OBJECT_NODE OBJECT# OBJECT_OWNER OBJECT_NAME OBJECT_ALIAS OBJECT_TYPE OPTIMIZER ID PARENT_ID DEPTH POSITION SEARCH_COLUMNS COST CARDINALITY BYTES OTHER_TAG PARTITION_START PARTITION_STOP PARTITION_ID OTHER DISTRIBUTION CPU_COST IO_COST TEMP_SPACE ACCESS_PREDICATES FILTER_PREDICATES PROJECTION TIME QBLOCK_NAME REMARKS OTHER_XML
07000002071DAB90 4077732614 5v7c1tzthuhs6 4012815243 070000027BA936A0 0 2012-7-6 AM 09:21:29 INSERT STATEMENT ALL_ROWS 0 0 1641 0 1641
07000002071DAB90 4077732614 5v7c1tzthuhs6 4012815243 070000027BA936A0 0 2012-7-6 AM 09:21:29 LOAD TABLE CONVENTIONAL 1 0 1 1 0 SEL$1 <other_xml><info type="nodeid/pflags">000014000129</info><info type="nodeid/pflags">000013000129</info><info type="nodeid/pflags">000012000129</info><info type="nodeid/pflags">000009000129</info><info type="nodeid/pflags">000008000129</info><info type="nodeid/pflags">000007000129</info><info type="db_version">11.2.0.2</info><info type="parse_schema"><![CDATA["NGESHOP"]]></info><info type="dynamic_sampling">6</info><info type="plan_hash">4012815243</info><info type="plan_hash_2">3491469992</info><peeked_binds><bind nam=":1" pos="1" dty="12" mxl="7">78700601010101</bind><bind nam=":2" pos="2" dty="12" mxl="7">78700701010101</bind><bind nam=":3" pos="3" dty="12" mxl="7">78700601010101</bind><bind nam=":4" pos="4" dty="12" mxl="7">78700701010101</bind></peeked_binds><outline_data><hint><![CDATA[IGNORE_OPTIM_EMBEDDED_HINTS]]></hint><hint><![CDATA[OPTIMIZER_FEATURES_ENABLE('11.2.0.2')]]></hint><hint><![CDATA[DB_VERSION('11.2.0.2')]]></hint><hint><![CDATA[OPT_PARAM('optimizer_dynamic_sampling' 6)]]></hint><hint><![CDATA[ALL_ROWS]]></hint><hint><![CDATA[OUTLINE_LEAF(@"SEL$2")]]></hint><hint><![CDATA[OUTLINE_LEAF(@"SEL$3")]]></hint><hint><![CDATA[OUTLINE_LEAF(@"SET$1")]]></hint><hint><![CDATA[OUTLINE_LEAF(@"SEL$1")]]></hint><hint><![CDATA[OUTLINE_LEAF(@"INS$1")]]></hint><hint><![CDATA[FULL(@"INS$1" "T_ESHOP_MONTH"@"INS$1")]]></hint><hint><![CDATA[NO_ACCESS(@"SEL$1" "from$_subquery$_002"@"SEL$1")]]></hint><hint><![CDATA[USE_HASH_AGGREGATION(@"SEL$1")]]></hint><hint><![CDATA[INDEX_RS_ASC(@"SEL$3" "T"@"SEL$3" ("ES_PUB_SYSTEMLOGMM"."BIZ_BEGINDATE" "ES_PUB_SYSTEMLOGMM"."BIZ_DEFINITION_ID"))]]></hint><hint><![CDATA[USE_HASH_AGGREGATION(@"SEL$3")]]></hint><hint><![CDATA[INDEX_RS_ASC(@"SEL$2" "T"@"SEL$2" ("ES_PUB_SYSTEMLOG"."BIZ_BEGINDATE" "ES_PUB_SYSTEMLOG"."GOODS_ID"))]]></hint><hint><![CDATA[USE_HASH_AGGREGATION(@"SEL$2")]]></hint></outline_data></other_xml>
07000002071DAB90 4077732614 5v7c1tzthuhs6 4012815243 070000027BA936A0 0 2012-7-6 AM 09:21:29 HASH GROUP BY 2 1 2 1 0 1641 2 62 18819432274 628 "MON"[VARCHAR2,6], SUM("TOTAL")[22], SUM("SU")[22] 20
07000002071DAB90 4077732614 5v7c1tzthuhs6 4012815243 070000027BA936A0 0 2012-7-6 AM 09:21:29 VIEW from$_subquery$_002@SEL$1 3 2 3 1 0 1640 2 62 18800848444 628 "MON"[VARCHAR2,6], "SU"[NUMBER,22], "TOTAL"[NUMBER,22] 20 SET$1
07000002071DAB90 4077732614 5v7c1tzthuhs6 4012815243 070000027BA936A0 0 2012-7-6 AM 09:21:29 UNION-ALL 4 3 4 1 0 STRDEF[6], STRDEF[7], STRDEF[22], STRDEF[22] SET$1
07000002071DAB90 4077732614 5v7c1tzthuhs6 4012815243 070000027BA936A0 0 2012-7-6 AM 09:21:29 HASH GROUP BY 5 4 5 1 0 458 1 12 2679790978 314 TO_CHAR(INTERNAL_FUNCTION("T"."BIZ_BEGINDATE"),'YYYYMM')[6], COUNT(*)[22], COUNT(CASE WHEN "T"."BUSI_RESULT"='0' THEN 1 END )[22] 6 SEL$2
07000002071DAB90 4077732614 5v7c1tzthuhs6 4012815243 070000027BA936A0 0 2012-7-6 AM 09:21:29 FILTER 6 5 6 1 0 :1<:2 "T".ROWID[ROWID,10], "T"."BIZ_BEGINDATE"[DATE,7], "T"."BUSI_RESULT"[CHARACTER,1], "T"."OPER_TYPE"[NUMBER,22]
07000002071DAB90 4077732614 5v7c1tzthuhs6 4012815243 070000027BA936A0 0 2012-7-6 AM 09:21:29 PARTITION RANGE MULTI-COLUMN 7 6 7 1 0 314 2758382 33100584 KEY(MULTI-COL) KEY(MULTI-COL) 7 2237147 314 "T".ROWID[ROWID,10], "T"."BIZ_BEGINDATE"[DATE,7], "T"."BUSI_RESULT"[CHARACTER,1], "T"."OPER_TYPE"[NUMBER,22] 4
07000002071DAB90 4077732614 5v7c1tzthuhs6 4012815243 070000027BA936A0 0 2012-7-6 AM 09:21:29 TABLE ACCESS BY LOCAL INDEX ROWID 77311 NGESHOP ES_PUB_SYSTEMLOG T@SEL$2 TABLE 8 7 8 1 0 314 2758382 33100584 KEY(MULTI-COL) KEY(MULTI-COL) 7 2237147 314 "T"."OPER_TYPE"=0 "T".ROWID[ROWID,10], "T"."BIZ_BEGINDATE"[DATE,7], "T"."BUSI_RESULT"[CHARACTER,1], "T"."OPER_TYPE"[NUMBER,22] 4 SEL$2
07000002071DAB90 4077732614 5v7c1tzthuhs6 4012815243 070000027BA936A0 0 2012-7-6 AM 09:21:29 INDEX RANGE SCAN 77396 NGESHOP IDX_SYSTEMLOG_GOODSID T@SEL$2 INDEX 9 8 9 1 1 313 1 KEY(MULTI-COL) KEY(MULTI-COL) 7 2229211 313 "T"."BIZ_BEGINDATE">=:1 AND "T"."BIZ_BEGINDATE"<:2 "T".ROWID[ROWID,10], "T"."BIZ_BEGINDATE"[DATE,7] 4 SEL$2
07000002071DAB90 4077732614 5v7c1tzthuhs6 4012815243 070000027BA936A0 0 2012-7-6 AM 09:21:29 HASH GROUP BY 10 4 5 2 0 1181 1 13 16121057466 314 TO_CHAR(INTERNAL_FUNCTION("T"."BIZ_BEGINDATE"),'YYYYMM')[6], COUNT(*)[22], COUNT(CASE WHEN "T"."BUSI_RESULT"='0' THEN 1 END )[22] 15 SEL$3
07000002071DAB90 4077732614 5v7c1tzthuhs6 4012815243 070000027BA936A0 0 2012-7-6 AM 09:21:29 FILTER 11 10 6 1 0 :3<:4 "T".ROWID[ROWID,10], "T"."BIZ_BEGINDATE"[DATE,7], "T"."BUSI_RESULT"[CHARACTER,1], "T"."OPER_TYPE"[NUMBER,22]
07000002071DAB90 4077732614 5v7c1tzthuhs6 4012815243 070000027BA936A0 0 2012-7-6 AM 09:21:29 PARTITION RANGE MULTI-COLUMN 12 11 7 1 0 314 14991014 194883182 KEY(MULTI-COL) KEY(MULTI-COL) 12 2237147 314 "T".ROWID[ROWID,10], "T"."BIZ_BEGINDATE"[DATE,7], "T"."BUSI_RESULT"[CHARACTER,1], "T"."OPER_TYPE"[NUMBER,22] 4
07000002071DAB90 4077732614 5v7c1tzthuhs6 4012815243 070000027BA936A0 0 2012-7-6 AM 09:21:29 TABLE ACCESS BY LOCAL INDEX ROWID 77285 NGESHOP ES_PUB_SYSTEMLOGMM T@SEL$3 TABLE 13 12 8 1 0 314 14991014 194883182 KEY(MULTI-COL) KEY(MULTI-COL) 12 2237147 314 "T"."OPER_TYPE"=0 "T".ROWID[ROWID,10], "T"."BIZ_BEGINDATE"[DATE,7], "T"."BUSI_RESULT"[CHARACTER,1], "T"."OPER_TYPE"[NUMBER,22] 4 SEL$3
07000002071DAB90 4077732614 5v7c1tzthuhs6 4012815243 070000027BA936A0 0 2012-7-6 AM 09:21:29 INDEX RANGE SCAN 77450 NGESHOP IDX_SYSTEMLOGMM_BIZID T@SEL$3 INDEX 14 13 9 1 1 313 1 KEY(MULTI-COL) KEY(MULTI-COL) 12 2229211 313 "T"."BIZ_BEGINDATE">=:3 AND "T"."BIZ_BEGINDATE"<:4 "T".ROWID[ROWID,10], "T"."BIZ_BEGINDATE"[DATE,7] 4 SEL$3
你这样测试一下???