Oracle11g 表访问完全,而不是在oracle中使用分区,同时使用并行
我在一个表XYZ上使用下面的查询,它是3 TB。一个分区(按天划分)的大小约为90GB。 问题是它只采用并行方式,并执行FTS而不是单分区访问。 当我们移除并行时,它会执行单个分区访问 请帮助,我们需要使用并行,应该使用单分区而不是FTSOracle11g 表访问完全,而不是在oracle中使用分区,同时使用并行,oracle11g,Oracle11g,我在一个表XYZ上使用下面的查询,它是3 TB。一个分区(按天划分)的大小约为90GB。 问题是它只采用并行方式,并执行FTS而不是单分区访问。 当我们移除并行时,它会执行单个分区访问 请帮助,我们需要使用并行,应该使用单分区而不是FTS enter code here SELECT /*+PARALLEL(A,4)*/ MSISDN, CALL_START_DATE, DEST_NUMBER, IN_CALL_TYPE, CELL_ID, DEVI
enter code here
SELECT /*+PARALLEL(A,4)*/
MSISDN,
CALL_START_DATE,
DEST_NUMBER,
IN_CALL_TYPE,
CELL_ID,
DEVICE_ID,
CDR_TYPE,
CALL_DURATION,
CALL_CHARGES,
COS_ID,
USAGE_ALCS_ID,
DISC_ALCS_ID,
SUBSTR(BAL_INFO,
INSTR(BAL_INFO, '*', INSTR(BAL_INFO, '1*CORE BALANCE'), 3) + 1,
INSTR(BAL_INFO, '*', INSTR(BAL_INFO, '1*CORE BALANCE'), 4) - 1 -
INSTR(BAL_INFO, '*', INSTR(BAL_INFO, '1*CORE BALANCE'), 3)) CORE_REV,
SUBSTR(BAL_INFO,
INSTR(BAL_INFO, '*', INSTR(BAL_INFO, '*3*PROMOTIONAL BALANCE 1'), 4) + 1,
INSTR(BAL_INFO, '*', INSTR(BAL_INFO, '*3*PROMOTIONAL BALANCE 1'), 5) - 1 -
INSTR(BAL_INFO, '*', INSTR(BAL_INFO, '*3*PROMOTIONAL BALANCE 1'), 4)) PROMO_REV,
SUBSTR(BAL_INFO,
INSTR(BAL_INFO, '*', INSTR(BAL_INFO, '*271*PROMO BAL V7'), 4) + 1,
INSTR(BAL_INFO, '*', INSTR(BAL_INFO, '*271*PROMO BAL V7'), 5) - 1 -
INSTR(BAL_INFO, '*', INSTR(BAL_INFO, '*271*PROMO BAL V7'), 4)) PROMO_BAL_V7,
SUBSTR(BAL_INFO,
INSTR(BAL_INFO, '*', INSTR(BAL_INFO, '*313*PROMO BAL V4'), 4) + 1,
INSTR(BAL_INFO, '*', INSTR(BAL_INFO, '*313*PROMO BAL V4'), 5) - 1 -
INSTR(BAL_INFO, '*', INSTR(BAL_INFO, '*313*PROMO BAL V4'), 4)) PROMO_BAL_V4,
0' FREE_MINS,
'0' FREE_SMS,
'0' OFF_PEAK,
'0' PROMO_SEC,
'0' V2VL_2300_0700
FROM xyz
WHERE CDR_TYPE in ('VOICE', '0', '4', 'SMS')
AND CALL_START_DATE BETWEEN TO_DATE('20140501', 'YYYYMMDD') AND
TO_DATE('20140501235959', 'YYYYMMDDHH24MISS')
AND NVL(TOT_NON_CURCY_CHRG, 0) = 0;
以下片段中的A是什么:
SELECT /*+PARALLEL(A,4)*/....
我没有看到任何别名A。您的提示不正确(或发布的代码不完整)。
Dosc are您是否可以简化查询,例如通过删除大部分
SELECT
列表?另外,您是否可以使用解释计划…
和从表中选择*(dbms\u xplan.display)发布好的和坏的解释计划代码>?过帐时丢失别名。假设别名存在。