I need the help of the gurus out here in understanding how this execution plan is changing :
For the following query :
this is the explain plan :Code:SELECT ais.standard_type_id AS STD_TYPE, ais.ss_id AS STD_ID, std.title AS TITLE, std.description AS DESCRIPTION FROM mv_assessment_hierarchy mv, clg_assessment_result ar, clg_item_result ir, as_item_standard ais, CLG_STANDARD std WHERE mv.ASSESSMENT_LOCATOR = 'M125Xassess-1::AS' and to_char(ar.completed_date,'YYYY-MM-DD hh24:mi:ss') = '2004-04-30 13:09:59' and mv.ASSESSMENT_LOCATOR = ar.ASSESSMENT_LOCATOR and ar.status = 20 and ar.taker_id = 59 and ir.ASSESSMENT_RESULT_ID = ar.ASSESSMENT_RESULT_ID and mv.item_locator = ir.ITEM_LOCATOR and ir.item_locator = ais.item_locator AND ais.ss_id = std.ss_id
When I change the query to take away my check on ar.completed_date as below :Code:Operation Object Name Rows Bytes Cost Object Node In/Out PStart PStop SELECT STATEMENT Optimizer Mode=CHOOSE 1 9 TABLE ACCESS BY INDEX ROWID MV_ASSESSMENT_HIERARCHY 28 868 3 NESTED LOOPS 1 224 9 NESTED LOOPS 1 193 6 NESTED LOOPS 1 77 5 NESTED LOOPS 1 56 4 TABLE ACCESS FULL CLG_ASSESSMENT_RESULT 1 35 2 TABLE ACCESS BY INDEX ROWID CLG_ITEM_RESULT 70 1 K 2 INDEX RANGE SCAN PK_ITEM_RESULT 49 1 INDEX RANGE SCAN AS_ITEM_STANDARD_AK1 20 420 1 TABLE ACCESS BY INDEX ROWID CLG_STANDARD 1 116 1 INDEX UNIQUE SCAN PK_STANDARD 1 INDEX RANGE SCAN MV_ASS_LOCATOR 28 1
here is the explain plan :Code:SELECT ais.standard_type_id AS STD_TYPE, ais.ss_id AS STD_ID, std.title AS TITLE, std.description AS DESCRIPTION FROM mv_assessment_hierarchy mv, clg_assessment_result ar, clg_item_result ir, as_item_standard ais, CLG_STANDARD std WHERE mv.ASSESSMENT_LOCATOR = 'M125Xassess-1::AS' and mv.ASSESSMENT_LOCATOR = ar.ASSESSMENT_LOCATOR and ar.status = 20 and ar.taker_id = 59 and ir.ASSESSMENT_RESULT_ID = ar.ASSESSMENT_RESULT_ID and mv.item_locator = ir.ITEM_LOCATOR and ir.item_locator = ais.item_locator AND ais.ss_id = std.ss_id
How does the usage of the column COMPLETED_DATE of table CLG_ASSESSMENT_RESULT affect the usage of the PrimaryKey on CLG_STANDARD ? There is no relation or no constraint between them whatsoever...Code:Operation Object Name Rows Bytes Cost Object Node In/Out PStart PStop SELECT STATEMENT Optimizer Mode=CHOOSE 9 19 HASH JOIN 9 1 K 19 TABLE ACCESS BY INDEX ROWID MV_ASSESSMENT_HIERARCHY 28 868 3 INDEX RANGE SCAN MV_ASS_LOCATOR 28 1 HASH JOIN 76 14 K 15 HASH JOIN 76 5 K 7 TABLE ACCESS BY INDEX ROWID CLG_ITEM_RESULT 70 1 K 2 NESTED LOOPS 25 1 K 4 TABLE ACCESS FULL CLG_ASSESSMENT_RESULT 1 31 2 INDEX RANGE SCAN PK_ITEM_RESULT 49 1 INDEX FAST FULL SCAN AS_ITEM_STANDARD_AK1 979 20 K 2 TABLE ACCESS FULL CLG_STANDARD 48 5 K 7
Thanks.


Reply With Quote
