I need a estimate of how much space a materialized view will take
73253May 17 2004 — edited Nov 7 2005How do I put these two things together and get my estimate of tablespace? I tried this several ways and i get errors.
exec DBMS_OLAP.ESTIMATE_MVIEW_SIZE('SOMESTMTID','select_query',
*
ORA-00900: invalid SQL statement
SQLWKS>
SQLWKS> print num_rows
NUM_ROWS
----------
SQLWKS> print mv_size
MV_SIZE
----------
SQLWKS>
Or I get this:
ORA-01652: unable to extend temp segment by 1280 in tablespace TEMP_TS
Please help how do I put the two of these together not to create the view but to know what the cost is? Space?
variable num_rows number;
variable mv_size number;
exec DBMS_OLAP.ESTIMATE_MVIEW_SIZE('SOMESTMTID','select_query',
PID.PID_NBR AS PARENT_ID,
PID.PID_NAME AS PID_NAME,
ACCT.ACCT_NBR AS ACCOUNT_NBR,
ACCT.ACCT_NAME AS ACCOUNT_NAME,
CLAIM_1.CLM_NBR AS CLAIM_NBR,
CLAIM_1.CLM_SUFFIX AS CLAIM_SUFFIX,
ACCT_LOI.LOI AS LOI,
CLAIM_1.CLM_KIND AS CLAIM_KIND,
CLAIM_1.ST_CLM_NBR AS STATE_CLAIM_NBR,
ACCT_LOI.RISK_NBR AS RISK_NBR,
ACCT_LEVEL1.LEVEL_1 AS LOCATION_1,
ACCT_LEVEL1.LEVEL_NAME AS LOCATION_1_NAME,
ACCT_LEVEL2.LEVEL_2 AS LOCATION_2,
ACCT_LEVEL2.LEVEL_NAME AS LOCATION_2_NAME,
ACCT_LEVEL3.LEVEL_3 AS LOCATION_3,
ACCT_LEVEL3.LEVEL_NAME AS LOCATION_3_NAME,
ACCT_LEVEL4.LEVEL_4 AS LOCATION_4,
ACCT_LEVEL4.LEVEL_NAME AS LOCATION_4_NAME,
ACCT_LEVEL5.LEVEL_5 AS LOCATION_5,
ACCT_LEVEL5.LEVEL_NAME AS LOCATION_5_NAME,
SERV_OFC.SERV_OFC AS SERV_OFC,
SERV_OFC.SERV_OFC_NAME AS SERV_OFC_NAME,
ACCT_LOI.CARR_INIT AS CARRIER_INIT,
CLAIM_1.BEN_ST AS BENEFIT_ST,
CLAIM_1.OPN_CLSD AS OPEN_CLOSED,
CLAIM_1.CLM_TYPE AS CLAIM_TYPE,
SUBSTR(CLAIM_1.CLM_STAT,1,5) AS CLAIM_STATUS,
CLAIM_1.CLMT_LST_NAME AS CLMNT_LAST_NAME,
CLAIM_1.CLMT_FIRST_NAME AS CLMNT_FIRST_NAME,
CLAIM_1.CLMT_MID_INIT AS CLMNT_MIDDLE_INITIAL,
CLAIM_2.CLMT_ADDR1 AS CLMNT_ADDR1,
CLAIM_2.CLMT_ADDR2 AS CLMNT_ADDR2,
CLAIM_2.CLMT_CITY AS CLMNT_CITY,
CLAIM_2.CLMT_ST AS CLMNT_ST,
CLAIM_2.CLMT_ZIP_CD AS CLMNT_ZIP_CD,
CLAIM_2.CLMT_CNTRY AS CLMNT_CNTRY,
CLAIM_1.CLMT_SSN AS CLMNT_SSN,
CLAIM_1.DT_INJ AS DATE_OF_INJURY,
CLAIM_1.DT_RPT_EMPLR AS DATE_RPT_TO_EMPLOYER,
CLAIM_1.DT_RECV AS DATE_RCVD_BY_GMCD,
CLAIM_1.DT_INPT AS DATE_CLAIM_ENTERED,
CLAIM_1.DT_CLSD AS DATE_CLAIM_CLOSED,
CLAIM_1.DT_LST_ACTVY AS DATE_OF_LAST_ACTIVITY,
CLAIM_1.DT_REOPN AS DATE_REOPENED,
CLAIM_1.INJ_CAUSE AS INJ_CAUSE_CD,
IJCA_DESC.TBL_DESC AS INJ_CAUSE_DESC,
CLAIM_1.PART_OF_BODY AS POB_CD,
IJPB_DESC.TBL_DESC AS POB_DESC,
CLAIM_1.NATR AS INJ_NATURE_CD,
IJNT_DESC.TBL_DESC AS INJ_NATURE_DESC,
CLAIM_1.AGCY AS AGENCY_CD,
AGAL_DESC.TBL_DESC AS AGENCY_DESC,
CLAIM_1.MANL_CLSR_REQR AS MANUAL_CLASS_NBR,
CLAIM_1.REC_ONLY AS RECORD_ONLY_FLAG,
CLAIM_1.SEX AS SEX,
NVL(CLAIM_1.AGE,TRUNC((CLAIM_1.DT_INJ - CLAIM_1.DT_BIRTH) / 365.25))
AS AGE,
CLAIM_1.TIME_EMPLD AS TIME_EMPLOYED,
CLAIM_1.DT_DEATH AS DATE_OF_DEATH,
CLAIM_1.INJ_CLASS_CD AS INJ_CLASS_CD,
ICLA_DESC.TBL_DESC AS INJ_CLASS_DESC,
CLAIM_1.OCCUP_CD AS OCCUPATION_CD,
CLAIM_1.OCCUP AS OCCUPATION_DESC,
CLAIM_1.DT_HIRE AS DATE_OF_HIRE,
CLAIM_1.NATR_OF_INJ AS INJ_NATURE,
CLAIM_2.EMPL_NBR AS EMPL_NBR,
PAYMENT.DT_PYMT AS DATE_OF_PAYMENT,
PAYMENT.CPO_CHK_NBR AS CPO_CHECK_NBR,
PAYMENT.PYMT_AMT AS PAYMENT_AMT,
DECODE(PAYMENT.TAXPYR_PAYEE_1,NULL,
DECODE(PAYMENT.PAY_CLMT,'Y',
(RTRIM(CLAIM_1.CLMT_LST_NAME) || ',' ||
RTRIM(CLAIM_1.CLMT_FIRST_NAME) || ' ' ||
RTRIM(CLAIM_1.CLMT_MID_INIT)),
RTRIM(TIN.TAXPYR_PAYEE_1)),RTRIM(PAYMENT.TAXPYR_PAYEE_1))
AS PAYEE_NAME_1,
DECODE(PAYMENT.TAXPYR_PAYEE_2,NULL,
DECODE(PAYMENT.PAY_CLMT,'Y',' ',
RTRIM(TIN.TAXPYR_PAYEE_2)),RTRIM(PAYMENT.TAXPYR_PAYEE_2))
AS PAYEE_NAME_2,
DECODE(PAYMENT.TAXPYR_ADDR1,NULL,TIN.TAXPYR_ADDR1,
PAYMENT.TAXPYR_ADDR1) AS PAYEE_ADDRESS_1,
DECODE(PAYMENT.TAXPYR_ADDR2,NULL,TIN.TAXPYR_ADDR2,
PAYMENT.TAXPYR_ADDR2) AS PAYEE_ADDRESS_2,
DECODE(PAYMENT.TAXPYR_CITY,NULL,TIN.TAXPYR_CITY,
PAYMENT.TAXPYR_CITY) AS PAYEE_CITY,
DECODE(PAYMENT.TAXPYR_ST,NULL,TIN.TAXPYR_ST,
PAYMENT.TAXPYR_ST) AS PAYEE_ST,
DECODE(PAYMENT.TAXPYR_ZIP_CD,NULL,TIN.TAXPYR_ZIP_CD,
PAYMENT.TAXPYR_ZIP_CD) AS PAYEE_ZIP_CD,
PAYMENT.TIN AS PAYMENT_TIN,
TIN.FED_SSN_FLAG AS TIN_FED_SSN_FLAG,
PAYMENT.PYMT_CD AS PAYMENT_CD,
PYCD_DESC.TBL_DESC AS PAYMENT_DESC,
PAYMENT.CYCL_IND AS PAYMENT_CYCLE_IND,
PAYMENT.DT_CHK_REGTR AS DATE_CHECK_REGISTER,
PAYMENT.DT_RECV AS DATE_BILL_RECEIVED,
PAYMENT.DT_FROM_SERV AS DATE_FROM_SERVICE,
PAYMENT.DT_THRU_SERV AS DATE_THRU_SERVICE,
PAYMENT.DT_INPT AS DATE_PAYMENT_INPUT,
PAYMENT.FORM AS PAYMENT_FORM,
PAYMENT.MULTI_CHK_IND AS MULTI_CHECK_IND,
PAYMENT.MANL_PYMT_IND AS MANUAL_PYMT_IND,
PAYMENT.TAIL_CLM_PYMT AS TAIL_CLAIM_PYMT_IND,
PAYMENT.DT_LST_ACTVY AS DATE_OF_PAY_LAST_ACTIVITY,
PAYMENT.PAY_CLMT AS PAY_TO_CLAIMANT,
PAYMENT.CKACCT_NBR_KEY AS CHECK_ACCT_NBR,
PAYMENT.PYMT_STAT AS PAYMENT_STATUS,
ASSOCIATE.HP_LOGON AS FIELD_OFFICE,
ASSOCIATE.USER_LST_NAME AS EXAMINER_LAST_NAME,
ASSOCIATE.USER_FIRST_NAME AS EXAMINER_FIRST_NAME,
ASSOCIATE.SUPV AS EXAMINERS_SUPERVISER,
ASSOCIATE.MGR AS EXAMINERS_MANAGER,
CLAIM_1.BUS_UNIT AS BUSINESS_UNIT,
CLAIM_1.CLM_CLASS AS CLAIM_CLASS,
CLAIM_1.NURSE_RESP AS NURSE_RESP,
CLAIM_2.MAJ_CLASS_CD AS MAJ_CLASS_CD,
CLAIM_1.DT_BIRTH AS DATE_OF_BIRTH,
CLAIM_2.AVG_WK_COMP_RT AS AVG_WEEKLY_COMP_RATE,
CLAIM_2.TAIL_CLM_IND AS TAIL_CLAIM_INDICATOR
FROM
SERV_OFC,
ASSOCIATE,
AGAL_DESC,
ICLA_DESC,
IJCA_DESC,
IJNT_DESC,
IJPB_DESC,
PYCD_DESC,
ACCT_LEVEL5,
ACCT_LEVEL4,
ACCT_LEVEL3,
ACCT_LEVEL2,
ACCT_LEVEL1,
PAYMENT,
CLAIM_2,
CLAIM_1,
INCIDENT,
TIN,
ACCT_LOI,
ACCT,
PID
WHERE
PID.PID_SEQ_ID = ACCT.PID_SEQ_ID_FK AND
ACCT.ACCT_SEQ_ID = ACCT_LOI.ACCT_SEQ_ID_FK AND
INCIDENT.ACCT_LOI_SEQ_ID_FK(+) = ACCT_LOI.ACCT_LOI_SEQ_ID AND
CLAIM_1.INC_SEQ_ID_FK(+) = INCIDENT.INC_SEQ_ID AND
CLAIM_1.CLM_SEQ_ID = PAYMENT.CLM_SEQ_ID_FK AND
CLAIM_1.OPN_CLSD <> 'Z' AND
CLAIM_2.CLM_SEQ_ID_FK = CLAIM_1.CLM_SEQ_ID AND
ACCT_LEVEL1.LEVEL1_SEQ_ID(+) = CLAIM_1.LEVEL1_SEQ_ID_FK AND
ACCT_LEVEL2.LEVEL2_SEQ_ID(+) = CLAIM_1.LEVEL2_SEQ_ID_FK AND
ACCT_LEVEL3.LEVEL3_SEQ_ID(+) = CLAIM_1.LEVEL3_SEQ_ID_FK AND
ACCT_LEVEL4.LEVEL4_SEQ_ID(+) = CLAIM_1.LEVEL4_SEQ_ID_FK AND
ACCT_LEVEL5.LEVEL5_SEQ_ID(+) = CLAIM_1.LEVEL5_SEQ_ID_FK AND
ASSOCIATE.PROCS_UN(+) = CLAIM_1.EXAMR_RESP AND
ASSOCIATE.SERV_OFC_SEQ_ID_FK(+) = CLAIM_1.SERV_OFC_SEQ_ID_FK AND
TIN.TIN_SEQ_ID (+) = PAYMENT.TIN_SEQ_ID_FK AND
SERV_OFC.SERV_OFC_SEQ_ID = CLAIM_1.SERV_OFC_SEQ_ID_FK AND
(AGAL_DESC.TBL_TYPE = ACCT_LOI.AGCY_CD_TBL OR
AGAL_DESC.TBL_TYPE IS NULL) AND
AGAL_DESC.TBL_CD(+) = CLAIM_1.AGCY AND
ICLA_DESC.TBL_CD (+) = CLAIM_1.INJ_CLASS_CD AND
IJCA_DESC.TBL_CD (+) = CLAIM_1.INJ_CAUSE AND
IJPB_DESC.TBL_CD (+) = CLAIM_1.PART_OF_BODY AND
IJNT_DESC.TBL_CD (+) = CLAIM_1.NATR AND
PYCD_DESC.TBL_CD (+) = PAYMENT.PYMT_CD
,:num_rows,:mv_size);
print num_rows
print mv_size
I have tried this many ways.
Thanks, a lot.