Why index is not used by the subquery?
Hello
ENV: 11 GR 2 on Linux Oracle 5.8 64 bit on file system,
I have the following query:
Select * to processing_instruction pi where pi.last_updated = (select / * + index (idx_pi_client_merchant_status FT2) * / max (pi2.last_updated))
to processing_instruction FT2
where pi2.client_no = pi.client_no
and pi2.merchant_id = pi.merchant_id
and pi2.status = 'C')
I created an index:
CREATE INDEXES TO PROCESSING_INSTRUCTION IDX_PI_CLIENT_MERCHANT_STATUS
(CLIENT_NO, MERCHANT_ID, STATUS)
Oracle still does a full-table scan on the ' processing_instruction FT2 ' table (subquery) even though I also put the indicator INDEX.» The table has rows '55621245 '. There are several lines for a given client_no, the merchant_id and status 'C '. I want to only choose one that has been updated the last (newest one).
I'm sure there may be a better way to do this, but...
Please notify.
Concerning
the order of the keys, and the columns questions
Try (status, last_updated)
Tags: Database
Similar Questions
-
Why index is not used on an editable view update?
I need help to understand why Oracle 11.2.0.3 is an index for an editable view. When I refer to the base table, offer$, I access index. When I reference the view, offer, I get a comprehensive analysis of the offer$. There's a trigger on the view instead. Who is factor in there somehow?
> EXPLAIN the PLAN FOR
UPDATE OFFER$ SET PRESENTABLE_FLAG = 'F', ACCEPTED_OFFER_FLAG 'T =' WHERE ASSIGNED_OFFER_ID = (SELECT SOLICITATION_REF_ID FROM TENDER WHERE SOLICITATION_ID =: B1)
plan FOR successful.
> SELECT * FROM TABLE (DBMS_XPLAN. Display (null, NULL, 'ALL'))
PLAN_TABLE_OUTPUT
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Hash value of plan: 3047622554
-------------------------------------------------------------------------------------------------------------
| ID | Operation | Name | Lines | Bytes | Cost (% CPU). Time |
-------------------------------------------------------------------------------------------------------------
| 0 | UPDATE STATEMENT. | 1. 25. 2 (0) | 00:00:01 |
| 1. UPDATE | OFFER$ | | | | |
| 2. TABLE ACCESS BY INDEX ROWID | OFFER$ | 1. 25. 1 (0) | 00:00:01 |
|* 3 | INDEX UNIQUE SCAN | AK_OFFER_ASSIGNED_OFFER_ID | 1. | 1 (0) | 00:00:01 |
| 4. TABLE ACCESS BY INDEX ROWID | TENDER $ | 1. 20. 1 (0) | 00:00:01 |
|* 5 | INDEX UNIQUE SCAN | PK_SOLICITATION$ | 1. | 1 (0) | 00:00:01 |
-------------------------------------------------------------------------------------------------------------
Name of the query block / Alias object (identified by the operation identity card):
-------------------------------------------------------------
1 UPD$ 1
2 UPD$ 1 / OFFER$@UPD$1
3 UPD$ 1 / OFFER$@UPD$1
4 SALT$ F5BB74E1 / SOLICITATION$@SEL$2
5. SALT$ F5BB74E1 / SOLICITATION$@SEL$2
Information of predicates (identified by the operation identity card):
---------------------------------------------------
3 - access ("ASSIGNED_OFFER_ID" = (SELECT "SOLICITATION_REF_ID" FROM KOHP." "TENDER CALL $ '.
"TENDER CALL $ ' WHERE 'SOLICITATION_ID' = TO_NUMBER (:B1)))
5 - access ('SOLICITATION_ID' = TO_NUMBER (:B1))
Projection of the column information (identified by the operation identity card):
-----------------------------------------------------------
2 - (upd = 4, 6, 7 cmp = 3, 7; cpy = 2, 4, 5) "OFFER$". ROWID [ROWID, 10], "OFFER$". " DECISION_ID '[NUMBER, 22],
"ASSIGNED_OFFER_ID" [VARCHAR2, 255], "ACCEPTED_OFFER_FLAG" [CHARACTER, 1],
"OFFER$". " CURRENT_OFFER_FLAG "[CHARACTER, 1],"PRESENTABLE_FLAG "[CHARACTER, 1],"
"OFFER$". " CHNG_DTTM ' [TIMESTAMP, 11].
3. "OFFER$". ROWID [ROWID, 10], "ASSIGNED_OFFER_ID" [VARCHAR2, 255]
4. "TENDER CALL $ '. ROWID [ROWID, 10], "SOLICITATION_ID" [NO.22].
"SOLICITATION_REF_ID" [VARCHAR2, 50]
5. "TENDER CALL $ '. ROWID [ROWID, 10], "SOLICITATION_ID" [NO.22]
40 selected lines
> EXPLAIN the PLAN FOR
UPDATE OFFER SET PRESENTABLE_FLAG = 'F', ACCEPTED_OFFER_FLAG 'T =' WHERE ASSIGNED_OFFER_ID = (SELECT SOLICITATION_REF_ID FROM TENDER WHERE SOLICITATION_ID =: B1)
plan FOR successful.
> SELECT * FROM TABLE (DBMS_XPLAN. Display (null, NULL, 'ALL'))
PLAN_TABLE_OUTPUT
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Hash value of plan: 1083159671
--------------------------------------------------------------------------------------------------
| ID | Operation | Name | Lines | Bytes | Cost (% CPU). Time |
--------------------------------------------------------------------------------------------------
| 0 | UPDATE STATEMENT. | 958K | 987 M | 9182 (1) | 00:01:51 |
| 1. UPDATE | OFFER | | | | |
|* 2 | VIEW | OFFER | 958K | 987 M | 9181 (1) | 00:01:51 |
| 3. TABLE ACCESS FULL | OFFER$ | 958K | 127 M | 9181 (1) | 00:01:51 |
| 4. TABLE ACCESS BY INDEX ROWID | TENDER $ | 1. 20. 1 (0) | 00:00:01 |
|* 5 | INDEX UNIQUE SCAN | PK_SOLICITATION$ | 1. | 1 (0) | 00:00:01 |
--------------------------------------------------------------------------------------------------
Name of the query block / Alias object (identified by the operation identity card):
-------------------------------------------------------------
1 UPD$ 1
2 SALT$ 1 / OFFER@UPD$1
3 SALT$ 1 / OFFER$@SEL$1
4 SALT$ 335DD26A / SOLICITATION$@SEL$3
5. SALT$ 335DD26A / SOLICITATION$@SEL$3
Information of predicates (identified by the operation identity card):
---------------------------------------------------
2 - filter ("ASSIGNED_OFFER_ID" = (SELECT "SOLICITATION_REF_ID" FROM
KOHP. ' ' TENDER $ "" PROMPT$ ' WHERE 'SOLICITATION_ID' = TO_NUMBER (:B1)))
5 - access ('SOLICITATION_ID' = TO_NUMBER (:B1))
Projection of the column information (identified by the operation identity card):
-----------------------------------------------------------
2 - (upd = 13, 45; cmp = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 2
7,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,46,47,48,49,50)
'OFFER '. "OFFER_ID" [NO.22], "PROVIDE" "." " DECISION_ID '[NUMBER, 22],
'OFFER '. "OFFER_TYPE_CD" [NO.22], "PROVIDE" "." " PROMO_ID '[NUMBER, 22],
'OFFER '. "PYMT_METHOD_TYPE_CD" [NO.22], "PROVIDE" "." " CS_RESULT_ID '[NUMBER, 22],
'OFFER '. "CS_RESULT_USAGE_TYPE_CD" [NO.22], "PROVIDE" "." " RATE_INDEX_TYPE_CD '[NUMBER, 22],
'OFFER '. "SUB_PRODUCT_ID" [NO.22], "PROVIDE" "." " CAMPAIGN_ID '[NUMBER, 22],
'OFFER '. "MARKET_CELL_ID" [NO.22], "ASSIGNED_OFFER_ID" [VARCHAR2, 255], "" "
"ACCEPTED_OFFER_FLAG" [CHARACTER, 1], 'OFFER '. "CURRENT_OFFER_FLAG"[CHARACTER, 1],
'OFFER '. "OFFER_GOOD_UNTIL_DATE" [DATE, 7], "PROVIDE" "." " RESCINDABLE_DAYS '[NUMBER, 22],
'OFFER '. "RESCINDED_DATE" [DATE, 7], "PROVIDE" "." " AMOUNT '[NUMBER, 22],
'OFFER '. "MAX_AMOUNT" [NO.22], "PROVIDE" "." " AMOUNT_FINANCED '[NUMBER, 22],
'OFFER '. "DOWN_PYMT" [NO.22], "PROVIDE" "." " RATE "[NO.22],"PROVIDE"". "" TERM_MM '[NUMBER, 22],
'OFFER '. "ORIGINATION_FEE_AMOUNT" [NO.22], "PROVIDE" "." " ORIGINATION_FEE_RATE '[NUMBER, 22],
'OFFER '. "FINANCE_CHARGE" [NO.22], "PROVIDE" "." " NBR_OF_PYMTS '[NUMBER, 22],
'OFFER '. "PYMT" [NO.22], "PROVIDE" "." " TOTAL_PYMTS '[NUMBER, 22],
'OFFER '. "FIRST_PYMT_DATE" [DATE, 7], "PROVIDE" "." " CONTRACT_DATE "[DATE, 7],
'OFFER '. "ACCT_NBR" [VARCHAR2, 20], "PROVIDE" "." " ACCT_NBR_ASSIGNED_DTTM ' [TIMESTAMP, 11],
'OFFER '. "ACCT_EXPIRATION_DTTM" [DATE, 8], "PROVIDE" "." " OFFER_DESC ' [VARCHAR2, 255],
'OFFER '. "TIMEOUTMIN_RATE" [NO.22], "PROVIDE" "." " MAX_RATE '[NUMBER, 22],
'OFFER '. "MIN_AMOUNT" [NO.22], "PROVIDE" "." " ANNUAL_FEE_AMOUNT '[NUMBER, 22],
'OFFER '. "ANNUAL_FEE_WAIVED_MM" [NO.22], "PROVIDE" "." " LATE_FEE_PERCENT '[NUMBER, 22],
'OFFER '. "LATE_FEE_MIN_AMOUNT" [NO.22], "PROVIDE" "." " OFFER_SALES_SCRIPT ' [VARCHAR2, 500],
'OFFER '. "OFFER_ORDER" [NO.22], "PRESENTABLE_FLAG"[CHARACTER, 1], "
'OFFER '. "INDEX_RATE" [NO.22], "PROVIDE" "." " ACTV_FLAG ' [VARCHAR2, 1],
'OFFER '. "CORRELATION_ID" [VARCHAR2, 64], "PROVIDE" "." " OFFER_STATUS_TYPE_CD '[NUMBER, 22],
'OFFER '. "PRESENTATION_INSTRUMENT_NBR" [VARCHAR2, 20].
3. "OFFER_ID" [NO.22], "DECISION_ID" [NO.22], "OFFER_TYPE_CD" [NO.22],
"PROMO_ID" [NO.22], "PYMT_METHOD_TYPE_CD" [NO.22], "CS_RESULT_ID" [NO.22],
"CS_RESULT_USAGE_TYPE_CD" [NO.22], "RATE_INDEX_TYPE_CD" [NO.22],
"SUB_PRODUCT_ID" [NO.22], 'CAMPAIGN_ID' [NO.22], "MARKET_CELL_ID" [NO.22],
"ASSIGNED_OFFER_ID" [VARCHAR2, 255], "ACCEPTED_OFFER_FLAG" [CHARACTER, 1],
"CURRENT_OFFER_FLAG" [CHARACTER, 1], "OFFER_GOOD_UNTIL_DATE" [DATE, 7],.
"RESCINDABLE_DAYS" [NO.22], "RESCINDED_DATE" [DATE, 7], 'COME BACK' [NO.22].
"MAX_AMOUNT" [NO.22], "AMOUNT_FINANCED" [NO.22], "DOWN_PYMT" [NO.22],
'RATE' [NO.22], "TERM_MM" [NO.22], "ORIGINATION_FEE_AMOUNT" [NO.22],
"ORIGINATION_FEE_RATE" [NO.22], "FINANCE_CHARGE" [NO.22],
"NBR_OF_PYMTS" [NO.22], "PYMT" [NO.22], "TOTAL_PYMTS" [NO.22],
"FIRST_PYMT_DATE" [DATE, 7], "CONTRACT_DATE" [DATE, 7], ' ACCT_NBR$ ' [RAW, 40].
"ACCT_NBR_ASSIGNED_DTTM" [TIMESTAMP, 11], ' ACCT_EXPIRATION_DTTM$ ' [RAW, 40].
"OFFER_DESC" [VARCHAR2, 255], "TIMEOUTMIN_RATE" [NO.22], "MAX_RATE" [NO.22].
"MIN_AMOUNT" [NO.22], "ANNUAL_FEE_AMOUNT" [NO.22],
"ANNUAL_FEE_WAIVED_MM" [NO.22], "LATE_FEE_PERCENT" [NO.22],
"LATE_FEE_MIN_AMOUNT" [NO.22], "OFFER_SALES_SCRIPT" [VARCHAR2, 500].
"OFFER_ORDER" [NO.22], "PRESENTABLE_FLAG" [CHARACTER, 1], "INDEX_RATE" [NO.22],
"ACTV_FLAG" [VARCHAR2, 1], "CORRELATION_ID" [VARCHAR2, 64].
"OFFER_STATUS_TYPE_CD" [NO.22], ' PRESENTATION_INSTRUMENT_NBR$ ' [RAW, 40]
4. "TENDER CALL $ '. ROWID [ROWID, 10], "SOLICITATION_ID" [NO.22].
"SOLICITATION_REF_ID" [VARCHAR2, 50]
5. "TENDER CALL $ '. ROWID [ROWID, 10], "SOLICITATION_ID" [NO.22]
82 selected lines
CREATE OR REPLACE FORCE VIEW "OFFER" ("OFFER_ID","DECISION_ID","OFFER_TYPE_CD","PROMO_ID","PYMT_METHOD_TYPE_CD","CS_RESULT_ID","CS_RESULT_USAGE_TYPE_CD","RATE_INDEX_TYPE_CD","SUB_PRODUCT_ID","CAMPAIGN_ID","MARKET_CELL_ID","ASSIGNED_OFFER_ID","ACCEPTED_OFFER_FLAG","CURRENT_OFFER_FLAG","OFFER_GOOD_UNTIL_DATE","RESCINDABLE_DAYS","RESCINDED_DATE","AMOUNT","MAX_AMOUNT","AMOUNT_FINANCED" ,"DOWN_PYMT","RATE","TERM_MM","ORIGINATION_FEE_AMOUNT","ORIGINATION_FEE_RATE","FINANCE_CHARGE","NBR_OF_PYMTS","PYMT","TOTAL_PYMTS","FIRST_PYMT_DATE","CONTRACT_DATE","ACCT_NBR","ACCT_NBR_ASSIGNED_DTTM","ACCT_EXPIRATION_DTTM","OFFER_DESC","MIN_RATE","MAX_RATE","MIN_AMOUNT","ANNUAL_FEE_AMOUNT","ANNUAL_FEE_WAIVED_MM","LATE_FEE_PERCENT","LATE_FEE_MIN_AMOUNT","OFFER_SALES_SCRIPT","OFFER_ORDER","PRESENTABLE_FLAG" « INDEX_RATE » 'INSRT_DTTM', 'INSRT_USR_ID', 'CHNG_DTTM', 'CHNG_USR_ID', 'ACTV_FLAG', 'CORRELATION_ID', 'OFFER_STATUS_TYPE_CD', 'PRESENTATION_INSTRUMENT_NBR')
AS
SELECT
OFFER_ID
DECISION_ID
OFFER_TYPE_CD
PROMO_ID
PYMT_METHOD_TYPE_CD
CS_RESULT_ID
CS_RESULT_USAGE_TYPE_CD
RATE_INDEX_TYPE_CD
SUB_PRODUCT_ID
CAMPAIGN_ID
MARKET_CELL_ID
ASSIGNED_OFFER_ID
ACCEPTED_OFFER_FLAG
CURRENT_OFFER_FLAG
OFFER_GOOD_UNTIL_DATE
RESCINDABLE_DAYS
RESCINDED_DATE
QUANTITY
MAX_AMOUNT
AMOUNT_FINANCED
DOWN_PYMT
RATE
TERM_MM
ORIGINATION_FEE_AMOUNT
ORIGINATION_FEE_RATE
FINANCE_CHARGE
NBR_OF_PYMTS
DATED THE
TOTAL_PYMTS
FIRST_PYMT_DATE
CONTRACT_DATE
, CAST (zcrypto.decrypt (ACCT_NBR$) AS VARCHAR2 (20)) ACCT_NBR
ACCT_NBR_ASSIGNED_DTTM
, ACCT_EXPIRATION_DTTM TO_DATE (zcrypto.decrypt (ACCT_EXPIRATION_DTTM$))
OFFER_DESC
TIMEOUTMIN_RATE
MAX_RATE
MIN_AMOUNT
ANNUAL_FEE_AMOUNT
ANNUAL_FEE_WAIVED_MM
LATE_FEE_PERCENT
LATE_FEE_MIN_AMOUNT
OFFER_SALES_SCRIPT
OFFER_ORDER
PRESENTABLE_FLAG
INDEX_RATE
INSRT_DTTM
INSRT_USR_ID
CHNG_DTTM
CHNG_USR_ID
ACTV_FLAG
CORRELATION_ID
OFFER_STATUS_TYPE_CD
, CAST (zcrypto.decrypt (PRESENTATION_INSTRUMENT_NBR$) AS VARCHAR2 (20)) PRESENTATION_INSTRUMENT_NBR
Of
OFFER$;
CREATE OR REPLACE TRIGGER "OFFER_IO" INSTEAD OF
INSERT OR
UPDATE
THEN OFFER REFERENCING NEW AS NEW AS OF OLD FOR THE BEGINNING OF EACH ROW SO (INSERT)
INSERT
IN
OFFER$
(
OFFER_ID
DECISION_ID
OFFER_TYPE_CD
PROMO_ID
PYMT_METHOD_TYPE_CD
CS_RESULT_ID
CS_RESULT_USAGE_TYPE_CD
RATE_INDEX_TYPE_CD
SUB_PRODUCT_ID
CAMPAIGN_ID
MARKET_CELL_ID
ASSIGNED_OFFER_ID
ACCEPTED_OFFER_FLAG
CURRENT_OFFER_FLAG
OFFER_GOOD_UNTIL_DATE
RESCINDABLE_DAYS
RESCINDED_DATE
QUANTITY
MAX_AMOUNT
AMOUNT_FINANCED
DOWN_PYMT
RATE
TERM_MM
ORIGINATION_FEE_AMOUNT
ORIGINATION_FEE_RATE
FINANCE_CHARGE
NBR_OF_PYMTS
DATED THE
TOTAL_PYMTS
FIRST_PYMT_DATE
CONTRACT_DATE
, ACCT_NBR$
ACCT_NBR_ASSIGNED_DTTM
, ACCT_EXPIRATION_DTTM$
OFFER_DESC
TIMEOUTMIN_RATE
MAX_RATE
MIN_AMOUNT
ANNUAL_FEE_AMOUNT
ANNUAL_FEE_WAIVED_MM
LATE_FEE_PERCENT
LATE_FEE_MIN_AMOUNT
OFFER_SALES_SCRIPT
OFFER_ORDER
PRESENTABLE_FLAG
INDEX_RATE
ACTV_FLAG
CORRELATION_ID
OFFER_STATUS_TYPE_CD
, PRESENTATION_INSTRUMENT_NBR$
)
VALUES
(
: NEW. OFFER_ID
,: NEW. DECISION_ID
,: NEW. OFFER_TYPE_CD
,: NEW. PROMO_ID
,: NEW. PYMT_METHOD_TYPE_CD
,: NEW.CS_RESULT_ID
,: NEW.CS_RESULT_USAGE_TYPE_CD
,: NEW. RATE_INDEX_TYPE_CD
,: NEW. SUB_PRODUCT_ID
,: NEW. CAMPAIGN_ID
,: NEW. MARKET_CELL_ID
,: NEW. ASSIGNED_OFFER_ID
,: NEW. ACCEPTED_OFFER_FLAG
,: NEW. CURRENT_OFFER_FLAG
,: NEW. OFFER_GOOD_UNTIL_DATE
,: NEW. RESCINDABLE_DAYS
,: NEW. RESCINDED_DATE
,: NEW. AMOUNT
,: NEW. MAX_AMOUNT
,: NEW. AMOUNT_FINANCED
,: NEW. DOWN_PYMT
,: NEW. RATE
,: NEW. TERM_MM
,: NEW. ORIGINATION_FEE_AMOUNT
,: NEW. ORIGINATION_FEE_RATE
,: NEW. FINANCE_CHARGE
,: NEW. NBR_OF_PYMTS
,: NEW. DATED THE
,: NEW. TOTAL_PYMTS
,: NEW. FIRST_PYMT_DATE
,: NEW. CONTRACT_DATE
, zcrypto.encrypt (: NEW.) ACCT_NBR)
,: NEW. ACCT_NBR_ASSIGNED_DTTM
, zcrypto.encrypt (: NEW.) ACCT_EXPIRATION_DTTM)
,: NEW. OFFER_DESC
,: NEW. TIMEOUTMIN_RATE
,: NEW. MAX_RATE
,: NEW. MIN_AMOUNT
,: NEW. ANNUAL_FEE_AMOUNT
,: NEW. ANNUAL_FEE_WAIVED_MM
,: NEW. LATE_FEE_PERCENT
,: NEW. LATE_FEE_MIN_AMOUNT
,: NEW. OFFER_SALES_SCRIPT
,: NEW. OFFER_ORDER
,: NEW. PRESENTABLE_FLAG
,: NEW. INDEX_RATE
,: NEW. ACTV_FLAG
,: NEW. CORRELATION_ID
,: NEW. OFFER_STATUS_TYPE_CD
, zcrypto.encrypt (: NEW.) PRESENTATION_INSTRUMENT_NBR)
);
ON THE OTHER
UPDATE
OFFER$
SET
DECISION_ID =: NEW. DECISION_ID
, OFFER_TYPE_CD =: NEW. OFFER_TYPE_CD
, PROMO_ID =: NEW. PROMO_ID
, PYMT_METHOD_TYPE_CD =: NEW. PYMT_METHOD_TYPE_CD
, CS_RESULT_ID =: NEW.CS_RESULT_ID
, CS_RESULT_USAGE_TYPE_CD =: NEW.CS_RESULT_USAGE_TYPE_CD
, RATE_INDEX_TYPE_CD =: NEW. RATE_INDEX_TYPE_CD
, SUB_PRODUCT_ID =: NEW. SUB_PRODUCT_ID
, = CAMPAIGN_ID: NEW. CAMPAIGN_ID
, MARKET_CELL_ID =: NEW. MARKET_CELL_ID
, ASSIGNED_OFFER_ID =: NEW. ASSIGNED_OFFER_ID
, ACCEPTED_OFFER_FLAG =: NEW. ACCEPTED_OFFER_FLAG
, CURRENT_OFFER_FLAG =: NEW. CURRENT_OFFER_FLAG
, OFFER_GOOD_UNTIL_DATE =: NEW. OFFER_GOOD_UNTIL_DATE
, RESCINDABLE_DAYS =: NEW. RESCINDABLE_DAYS
, RESCINDED_DATE =: NEW. RESCINDED_DATE
, QUANTITY =: NEW. AMOUNT
, MAX_AMOUNT =: NEW. MAX_AMOUNT
, AMOUNT_FINANCED =: NEW. AMOUNT_FINANCED
, DOWN_PYMT =: NEW. DOWN_PYMT
,RATE = :NEW. RATE
, TERM_MM =: NEW. TERM_MM
, ORIGINATION_FEE_AMOUNT =: NEW. ORIGINATION_FEE_AMOUNT
, ORIGINATION_FEE_RATE =: NEW. ORIGINATION_FEE_RATE
, FINANCE_CHARGE =: NEW. FINANCE_CHARGE
, NBR_OF_PYMTS =: NEW. NBR_OF_PYMTS
,PYMT = :NEW. DATED THE
, TOTAL_PYMTS =: NEW. TOTAL_PYMTS
, FIRST_PYMT_DATE =: NEW. FIRST_PYMT_DATE
, CONTRACT_DATE =: NEW. CONTRACT_DATE
, ACCT_NBR$ = zcrypto.encrypt (: NEW.) ACCT_NBR)
, ACCT_NBR_ASSIGNED_DTTM =: NEW. ACCT_NBR_ASSIGNED_DTTM
, ACCT_EXPIRATION_DTTM$ = zcrypto.encrypt (: NEW.) ACCT_EXPIRATION_DTTM)
, OFFER_DESC =: NEW. OFFER_DESC
, TIMEOUTMIN_RATE =: NEW. TIMEOUTMIN_RATE
, MAX_RATE =: NEW. MAX_RATE
, MIN_AMOUNT =: NEW. MIN_AMOUNT
, ANNUAL_FEE_AMOUNT =: NEW. ANNUAL_FEE_AMOUNT
, ANNUAL_FEE_WAIVED_MM =: NEW. ANNUAL_FEE_WAIVED_MM
, LATE_FEE_PERCENT =: NEW. LATE_FEE_PERCENT
, LATE_FEE_MIN_AMOUNT =: NEW. LATE_FEE_MIN_AMOUNT
, OFFER_SALES_SCRIPT =: NEW. OFFER_SALES_SCRIPT
, OFFER_ORDER =: NEW. OFFER_ORDER
, PRESENTABLE_FLAG =: NEW. PRESENTABLE_FLAG
, INDEX_RATE =: NEW. INDEX_RATE
, ACTV_FLAG =: NEW. ACTV_FLAG
, CORRELATION_ID =: NEW. CORRELATION_ID
, OFFER_STATUS_TYPE_CD =: NEW. OFFER_STATUS_TYPE_CD
, PRESENTATION_INSTRUMENT_NBR$ = zcrypto.encrypt (: NEW.) PRESENTATION_INSTRUMENT_NBR)
WHERE
OFFER_ID =: NEW. OFFER_ID;
END IF;
END;
/
zsysdba wrote:
I need help to understand why Oracle 11.2.0.3 is an index for an editable view. When I refer to the base table, offer$, I access index. When I reference the view, offer, I get a comprehensive analysis of the offer$. There's a trigger on the view instead. Who is factor in there somehow?
Almost certainly.
Even if the view has not used the calls to the function and the trigger was simply "null;" as the body, the presence of the trigger seems to prevent the optimizer to push the subquery view internal and down to the index (and there is no change in 12 c).
Concerning
Jonathan Lewis
-
Why xmlindex is not used in the slow queries on xml binary table eval?
I run a slow simple query on Oracle 11.2.0.1 database server that does not use a xmlindex. Instead, a full table scan against the table eval binary xml occurs. This is the query:
The predicate is not selective at all - the number of rows returned is the same as the number of rows in table (325 550 in the eval table xml documents). When different values are used, which brings the number of lines down to ~ 33%, the xmlindex still is not used - as is expected in a purely relational XML environment.select -- /*+ NO_XMLINDEX_REWRITE no_parallel(eval)*/ defid from eval, XMLTable(XMLNAMESPACES(DEFAULT 'http://www.cigna.com/acme/domains/eval/2010/03', 'http://www.cigna.com/acme/domains/derived/fact/2010/03' AS "ns7"), '$doc/eval/derivedFacts/ns7:derivedFact' passing eval.object_value as "doc" columns defid varchar2(100) path 'ns7:defId' ) eval_xml where eval_xml.defid in ('59543','55208');
My question is why would'nt the xmlindex be used somehow full scan compared to a sweep of full table that cross the xml for each record in paper table eval?
FFS suspicion would apply to a field of type xmlindex index?
Here is the definition of xmlindex:
Here is the definition of table eval:CREATE INDEX "EVAL_XMLINDEX_IX" ON "EVAL" (OBJECT_VALUE) INDEXTYPE IS "XDB"."XMLINDEX" PARAMETERS ('XMLTable eval_idx_tab XMLNamespaces(DEFAULT ''http://www.cigna.com/acme/domains/eval/2010/03'', ''http://www.cigna.com/acme/domains/derived/fact/2010/03'' AS "ns7"),''/eval'' COLUMNS defId VARCHAR2(100) path ''/derivedFacts/ns7:derivedFact/ns7:defId''');
Purified sample extract of XML:CREATE TABLE "N98991"."EVAL" OF XMLTYPE ( CONSTRAINT "EVAL_ID_PK" PRIMARY KEY ("EVAL_ID") USING INDEX PCTFREE 10 INITRANS 4 MAXTRANS 255 COMPUTE STATISTICS STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "ACME_DATA" ENABLE ) XMLTYPE STORE AS SECUREFILE BINARY XML ( TABLESPACE "ACME_DATA" ENABLE STORAGE IN ROW CHUNK 8192 CACHE NOCOMPRESS KEEP_DUPLICATES STORAGE(INITIAL 106496 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) ) ALLOW NONSCHEMA ALLOW ANYSCHEMA VIRTUAL COLUMNS ( "EVAL_DT" AS (SYS_EXTRACT_UTC(CAST(TO_TIMESTAMP_TZ(SYS_XQ_UPKXML2SQL( SYS_XQEXVAL(XMLQUERY( 'declare default element namespace "http://www.cigna.com/acme/domains/eval/2010/03"; (::) /eval/@eval_dt' PASSING BY VALUE SYS_MAKEXML(128,"XMLDATA") RETURNING CONTENT ),0,0, 16777216,0),50,1,2),'SYYYY-MM-DD"T"HH24:MI:SS.FFTZH:TZM') AS TIMESTAMP WITH TIME ZONE))), "EVAL_CAT" AS (CAST(SYS_XQ_UPKXML2SQL(SYS_XQEXVAL(XMLQUERY( 'declare default element namespace "http://www.cigna.com/acme/domains/eval/2010/03";/eval/@category' PASSING BY VALUE SYS_MAKEXML(128,"XMLDATA") RETURNING CONTENT ),0,0, 16777216,0),50,1,2) AS VARCHAR2(50))), "ACME_MBR_ID" AS (CAST(SYS_XQ_UPKXML2SQL(SYS_XQEXVAL(XMLQUERY( 'declare default element namespace "http://www.cigna.com/acme/domains/eval/2010/03";/eval/@acmeMemberId' PASSING BY VALUE SYS_MAKEXML(128,"XMLDATA") RETURNING CONTENT ),0,0, 16777216,0),50,1,2) AS VARCHAR2(50))), "EVAL_ID" AS (CAST(SYS_XQ_UPKXML2SQL(SYS_XQEXVAL(XMLQUERY( 'declare default element namespace "http://www.cigna.com/acme/domains/eval/2010/03";/eval/@evalId' PASSING BY VALUE SYS_MAKEXML(128,"XMLDATA") RETURNING CONTENT ),0,0, 16777216,0),50,1,2) AS VARCHAR2(50))) ) PCTFREE 0 PCTUSED 80 INITRANS 4 MAXTRANS 255 NOCOMPRESS LOGGING STORAGE ( INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT ) TABLESPACE "ACME_DATA" ;
Oracle XML DB 11g Release 2 Developer's Guide is not much help...<?xml version = '1.0' encoding = 'UTF-8' standalone = 'yes'?><eval createdById="xxxx" hhhhMemberId="37e6f05a-88dc-41e9-a8df-2a2ac6d822c9" category="eeeeeeee" eval_dt="2012-02-11T23:47:02.645Z" evalId="12e007f5-b7c3-4da2-b8b8-4bf066675d1a" xmlns="http://www.xxxxx.com/vvvv/domains/eval/2010/03" xmlns:ns2="http://www.cigna.com/nnnn/domains/derived/fact/2010/03" xmlns:ns3="http://www.xxxxx.com/vvvv/domains/common/2010/03"> <derivedFacts> <ns2:derivedFact> <ns2:defId>12345</ns2:defId> <ns2:defUrn>urn:mmmmrunner:Medical:Definition:DerivedFact:52657:1</ns2:defUrn> <ns2:factSource>tttt Member</ns2:factSource> <ns2:origInferred_dt>2012-02-11T23:47:02.645Z</ns2:origInferred_dt> <ns2:factValue> <ns2:type>boolean</ns2:type> <ns2:value>true</ns2:value> </ns2:factValue> </ns2:derivedFact> <ns2:derivedFact> <ns2:defId>52600</ns2:defId> <ns2:defUrn>urn:ddddrunner:Medical:Definition:DerivedFact:52600:2</ns2:defUrn> <ns2:factSource>cccc Member</ns2:factSource> <ns2:origInferred_dt>2012-02-11T23:47:02.645Z</ns2:origInferred_dt> <ns2:factValue> <ns2:type>string</ns2:type> <ns2:value>null</ns2:value> </ns2:factValue> </ns2:derivedFact> <ns2:derivedFact> <ns2:defId>59543</ns2:defId> <ns2:defUrn>urn:ddddunner:Medical:Definition:DerivedFact:52599:1</ns2:defUrn> <ns2:factSource>dddd Member</ns2:factSource> <ns2:origInferred_dt>2012-02-11T23:47:02.645Z</ns2:origInferred_dt> <ns2:factValue> <ns2:type>string</ns2:type> <ns2:value>INT</ns2:value> </ns2:factValue> </ns2:derivedFact> ... With the repeating <ns2:derivedFact> element continuing under the <derivedFacts>
Any help is appreciated.
Kind regards
Rick BlanchardXMLIndex definition is not correct, for the following reasons:
In the COLUMNS clause, the path expression is compared to the context from the main event of XQuery item (HERE "/ eval").
If you use an initial slash as you did, this indicates that the context item is an element of "derivedFacts" (which is not correct since it is an "eval" element).
Therefore, the path points to no existing node:derivedFact XMLTYPE path ''/derivedFacts/ns7:derivedFact'' virtual
There is a mismatch between the statements of prefix ns7, probably a typing mistake?
''http://www.cigna.com/acme/domains/derived/fact/2010/03'' AS "ns7" ... ''http://www.cigna.com/acme/domains/derived/FACT/2010/03'' AS "ns7"
What "eval_xml" is referring to here?
passing eval_xml.derivedFact
The path to "defId" don't go too:
defId VARCHAR2(100) path ''/derivedFacts/ns7:derivedFact/ns7:defId''
Try this one, it should help you to:
CREATE INDEX "EVAL_XMLINDEX_IX" ON "EVAL" (OBJECT_VALUE) INDEXTYPE IS "XDB"."XMLINDEX" PARAMETERS ( 'XMLTable eval_idx_tab_I XMLNamespaces(''http://www.cigna.com/acme/domains/derived/fact/2010/03'' AS "ns7", DEFAULT ''http://www.cigna.com/acme/domains/eval/2010/03''), ''/eval'' COLUMNS eval_catt VARCHAR2(50) path ''@category'', derivedFact XMLTYPE path ''derivedFacts/ns7:derivedFact'' virtual XMLTable eval_idx_tab_II XMLNamespaces(''http://www.cigna.com/acme/domains/derived/fact/2010/03'' AS "ns7", DEFAULT ''http://www.cigna.com/acme/domains/eval/2010/03''), ''/ns7:derivedFact'' passing derivedFact COLUMNS defId VARCHAR2(100) path ''ns7:defId''' );
-
Why can I not use 'Open the message in a conversation' more?
We are 4 users and both of them have version 24.3.0, and two are on 24.4.0.
We use the option "open message in the conversation" a lot and all of a sudden this option is no longer available. Is there a setting that could have been changed to make it happen?
The only thing that has changed is that I have rearranged our records using "manually sort folders" - this could it be?All messages with a thread of before yesterday are always available with "open message in the conversation", but anything in the afternoon yesterday do not display the option when you right-click and using the swift short ctrl O does nothing.
Any suggestions, what could be wrong are very welcomed.
Thanks guys,.
I think I managed to do the sorting now. I've done the following:
See help at the top and choose "restart with disabled modules.
Are you sure...? Press "restart".
It will now ask you if you want to start in safe mode. Choose this option.
The "manually sort folders work" is now disabled.
Now close Thunderbird and wait a bit.
Now open again, check if you have the Add-ons back - manually sort folders.
Try to click an email again to view the message in a conversation.
And so it works with adding on and open it in the conversation. Very strange but if it works, I'm happy. -
Partitioned index not used in the query
Hello
Oracle 10.2.0.1
Windows xp
I'm confused why oracle did not use a partitioned below index:
But when I said something different; then it accesses the indexes:SQL> set line 200; SQL> SET AUTOTRACE TRACEONLY EXPLAIN; SQL> select * from MYTABLE where PROD like 'SOAP%'; Execution Plan ---------------------------------------------------------- Plan hash value: 2899783245 ------------------------------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | Pstart| Pstop | ------------------------------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 1852 | 115K| 992 (3)| 00:00:12 | | | | 1 | PARTITION RANGE SINGLE| | 1852 | 115K| 992 (3)| 00:00:12 | 8 | 8 | |* 2 | TABLE ACCESS FULL | MYTABLE | 1852 | 115K| 992 (3)| 00:00:12 | 8 | 8 | ------------------------------------------------------------------------------------------------------- Predicate Information (identified by operation id): --------------------------------------------------- 2 - filter("PROD" LIKE 'SOAP%') SQL> desc MYTABLE; Name Null? Type ------------------------------------------------------------------------------------- -------- ----------- PROD_ID NOT NULL VARCHAR2(7) PROD NOT NULL VARCHAR2(30) AREA NOT NULL VARCHAR2(30) SUB_AREA NOT NULL VARCHAR2(30) SQL>
How to create prod_idx:SQL> select count(*) from MYTABLE where PROD like 'SOAP%'; Execution Plan ---------------------------------------------------------- Plan hash value: 1393798969 ---------------------------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | Pstart| Pstop | ---------------------------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 1 | 16 | 18 (0)| 00:00:01 | | | | 1 | SORT AGGREGATE | | 1 | 16 | | | | | | 2 | PARTITION RANGE SINGLE| | 1852 | 29632 | 18 (0)| 00:00:01 | 8 | 8 | |* 3 | INDEX RANGE SCAN | PROD_IDX | 1852 | 29632 | 18 (0)| 00:00:01 | 8 | 8 | --------------------------------------------------------------------------------------------------- Predicate Information (identified by operation id): --------------------------------------------------- 3 - access("PROD" LIKE 'SOAP%') filter("PROD" LIKE 'SOAP%') SQL>
SQL> ED Wrote file afiedt.buf 1 create index prod_idx ON mytable(prod) 2 global partition by range(prod) 3 (partition prod1 values less than ('A'), 4 partition prod2 values less than ('B'), 5 partition prod3 values less than ('C'), 6 partition prod4 values less than ('D'), 7 partition prod5 values less than ('E'), 8 partition prod6 values less than ('F'), 9 partition prod7 values less than ('G'), 10 partition prod8 values less than ('H'), 11 partition prod9 values less than ('I'), 12 partition prod10 values less than ('J'), 13 partition prod11 values less than ('K'), 14 partition prod12 values less than ('L'), 15 partition prod13 values less than ('M'), 16 partition prod14 values less than ('N'), 17 partition prod15 values less than ('O'), 18 partition prod16 values less than ('P'), 19 partition prod17 values less than ('Q'), 20 partition prod18 values less than ('R'), 21 partition prod19 values less than ('S'), 22 partition prod20 values less than ('T'), 23 partition prod21 values less than ('U'), 24 partition prod22 values less than ('V'), 25 partition prod23 values less than ('W'), 26 partition prod24 values less than ('X'), 27 partition prod25 values less than ('Y'), 28 partition prod26 values less than ('Z'), 29* partition prod27 values less than (MAXVALUE)) SQL> / Index created.
Table is to have 14693792 lines.SQL> select count(*) from MYTABLE; Execution Plan ---------------------------------------------------------- Plan hash value: 3323402158 -------------------------------------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Cost (%CPU)| Time | Pstart| Pstop | -------------------------------------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 1 | 311 (0)| 00:00:04 | | | | 1 | SORT AGGREGATE | | 1 | | | | | | 2 | PARTITION RANGE ALL | | 14M| 311 (0)| 00:00:04 | 1 | 27 | | 3 | BITMAP CONVERSION COUNT | | 14M| 311 (0)| 00:00:04 | | | | 4 | BITMAP INDEX FAST FULL SCAN| MS_IDX_MYTABLE | | | | 1 | 27 | --------------------------------------------------------------------------------------------------------------
Why this is the case, please guide me to understand. Thank you.
Published by: user12050217 on July 29, 2010 23:37
Published by: user12050217 on July 29, 2010 23:38
-
Hi all
I am new to TestStand. Still in the learning process.
What are the parameters? How are Variables differenet? Why we can not use variables to pass data to one sequnece to another? What is the advantage to use parameters instead of Variables?
Thanks in advance,
LaVIEWan
I'm sorry... I discovered that... its not at all possible to pass data to another sequence using variables... it must be through settings... once again I apologize for the display of such a stupid question
-
I recently used a dvd + rw disk to back up my photos. Now when I put a dvd in my pc, why it will not display on the screen that's all there is, or how to give me access to it?
Depends on what you used for the backup.
If you used the windows backup or another backup software will contain the entire disk will be a backup file, and view/use this file, you use the same software that allows you to save.
-
How we force a query to use transparently a hint, even if the index is not given in the query as a query rewriting.
For example:
If the user runs a query select deptno, avg (sal) from emp group by deptno;
We want the optimizer to use a hint of result_cache with this request, and it should be transparent to the user.
Query should be rewritten to seamlessly
Select / * + result_cache * / deptno, avg (sal)
WCP
Group of deptno;
How can this feature we make? Please advice.
I checked the possibility of SPM and contours, but it is not clear if this rewrite is possible here.
Thank you and best regards,
Vikas Krishna
Surely dbms_advanced_rewrite is designed for this situation?
-
After the cancellation of my subscription, why can I not use my old previous Adobe products?
I thought my old apps (CC and CC2014) would always work
N °
When you cancel your subscription, all software related to that subscription will stop working. This includes any software with CC in his name.
The only way to continue to use the CC versions is to re - register.
All versions perpetually under license that was purchased before you subscribed for example, CS4, CS5, CS6 will continue to work as usual.
-
I just bought a new Mac and migrated my CS6 on. Now, when I open it, I said that I am under a trial of the cloud. Why can I not use my CS6 version that I bought? I don't want to pay for something I already bought.
Here's how to convert the Permanent Trail:
By receiving the expired Trial/test screen
Make sure you are online
Click on software under license
The perpetual owners: connect with the adobe ID and enter the serial number of the product
Product must be certified with success
-
Why can I not use hidden or display point only to store the value for insertion?
Hi, gurus:
I have a question:
I implemented a form with the region of report in a page, the update works OK, but the add function has a problem:
There is a column, offender_ID, which is a foreign key to another table, it must not be null during insertion. However, even I pass the ID of the author of the offence of master page when user click on the button create and he did watch in the form, it must be a text tabled for insert success, why can I not use hidden or display point only to store this value for insert? (If I use hidden or display single element insert will be successful, apex reports I tried to insert a null value for the offender_ID column.)
Thanks in advance.
SamHello
There is a column, offender_ID, which is a foreign key to another table, it must not be null during insertion. However, even I pass the ID of the author of the offence of master page when user click on the button create and he did watch in the form, it must be a text tabled for insert success, why can I not use hidden or display point only to store this value for insert? (If I use hidden or display single element insert will be successful, apex reports I tried to insert a null value for the offender_ID column.)
I think that both hidden and display elements have attributes that can cause problems because of different ways these function elements as the only non-display and feature no hidden items. The only items have a "Save Session State' yes/no 'control'? This can be a problem.
Would you do that? Do these regular items instead and see if you can get those working. Then, we will try to change the fields back to hidden or display only.
Howard
Congratulations. I'm glad you found the solution.
Published by: Howard (in training) April 11, 2013 10:26
-
I use Illustrator CS6 (Mac). I use the free transform tool. Why can I not use shift, Option, command to distort in perspective?
Ah, hong.
Then, drag Option and only use Cmd + shift.
-
Why can I not use ready boost with flash player in my home premiun wvista?
Why can I not use ready boost with flash player in my home premiun wvista?
Hello
This Flash drive is probably too slow for configure ReadyBoost.
Here is some information that should help you:
ReadyBoost
http://www.vista4beginners.com/ReadyBoostWhat is ReadyBoost
http://www.winvistatips.com/ReadyBoost-T25.html
Explore the features: Windows ReadyBoost
http://Windows.Microsoft.com/en-us/Windows7/products/features/ReadyBoostUnderstand the ReadyBoost and the question of whether it will Speed Up your system
http://TechNet.Microsoft.com/en-us/magazine/ff356869.aspxDON'T GO OUT AND JUST BUY A READER WHO CLAIMS THAT IT IS READYBOOST
LOAN - many are lying or stretching at least the truth. Look at the sides of the player below
and buy one you know is FAST.
Don't forget that the readyboost max cache is 4 GB Vista and 256 GB Windows 7. If your device
is more than you can use it for storage. And you need a fast reader.ReadyBoost - list of speed Flash memory
http://www.techcrater.com/2007/04/05/ReadyBoost-Flash-memory-speed-list/How to find the index of ReadyBoost speed
http://www.techcrater.com/2007/04/06/how-to-find-ReadyBoost-speed-rating/Speed tests USB Flash Drive - any size car - link to the utility USBDeview
http://usbspeed.NirSoft.NET/Publish a speed test of your USB - also a link to the utility USBDeview flash drive
http://usbspeed.NirSoft.NET/publish_usb_flash_drive_speed.htmlhttp://www.grantgibson.co.uk/misc/ReadyBoost/?make=SanDisk
http://www.techcrater.com/2007/04/05/ReadyBoost-Flash-memory-speed-list/
I hope this helps.
Rob Brown - MS MVP - Windows Desktop Experience: Bike - Mark Twain said it right.
-
Hi forum
Dynamically generated in this query:
SELECT TITULO_MEDIODEPAGO AS TITLE, IDA_MEDIODEPAGO AS IDA, COUNT (DISTINCT VISTA. ID1 | VISTA. ID2. VISTA. ID3) AS AMOUNT
OF MVISTA VISTA
WHERE ((COALESCE (VISTA. FECHAEXPIRACION, TO_DATE (' 01/01/9999 ',' dd/mm/yyyy ""))) > = SYSDATE) AND
((1=1) OR: p_rubro IS NULL) AND ((1=1) OR: p_subrubro IS NULL) AND
(VISTA. TITULO_PROVINCIA =: p_provincia) AND ((1=1) OR: p_ciudad IS NULL) AND
((1=1) OR: p_barrio IS NULL) AND ((1=1) OR: p_mediopago IS NULL) AND
((1=1) OR: p_nrocuotas IS NULL) AND ((1=1) OR: p_porcentaje IS NULL) AND
((1=1) OR: p_dias IS NULL) AND ((1=1) OR: p_textoBusqueda IS NULL)
TITULO_MEDIODEPAGO GROUP, IDA_MEDIODEPAGO
: p_rubro is null
: p_subrubro is null
: p_provincia = "PROV1.
: p_barrio is null
: p_mediopago is null
: p_nrocuotas is null
: p_porcentaje is null
: p_dias is null
: p_textoBusqueda is null
When I inspect the plan to explain it, I could see a full analysis on the materialized view MVISTA operation. I want to avoid this analysis complements the view with 500 k lines:
MAT_VIEW_ACCESS MVISTA Filter predicates
AND NLSSORT (VISTA. TITULO_PROVINCIA, "nls_sort = 'BINART_AI'") = NLSSORT (: P_PROVINCIA "nls_sort =" BINARY_AI"') COALESCE (VISTA. FECHAEXPIRACION, TIMESTAMP'9999-01-01 00:00:00 ') > = SYSDATE @! I add an index to the materialized view 'MVISTA' TITULO_PROVINCIA (CSA) and FECHAEXPIRACION (CSA) fields, but it is not used by the query. Why the index is not used? How to define the index serve him?
Thank you very much
One of the reasons for the index is not used because you apply the function nlssort on a single column.
You must use an index of feature based using this function instead.
In addition, I would rewrtite him coalesce to
(VISTA. FECHAEXPIRACION > = SYSDATE or VISTA. FECHAEXPIRACION is null)
-
Index is not used, although suspicion.
DBVersion: 10.2.0.3
When I use a select statement like that no index on tabel 'walze w2' is used:CREATE TABLE "ESW"."DURCHLAUFZEIT_SONDER_AG" ( "AG" NUMBER(3,0) DEFAULT 0 NOT NULL ENABLE, "TAGE" NUMBER(5,0) DEFAULT 0 NOT NULL ENABLE, "ABTEILUNG" VARCHAR2(20 BYTE), Content of this table AG TAGE ABTEILUNG 910 1 EAV 133 1 TG 743 2 TM 719 2 TM 706 2 TM 979 10 TM
When I run the same sql to the delivery of the selection from tabel 'durchlaufzeit_sonder_ag' by my own index is used:select /*+ index(apl(arbeitsgang_nr))*/ /*+ index(w2 WALZE_IND1)*/ SUM (dsa.tage) tage, w2.walzen_nr walzen_nr, w2.walzen_ng walzen_ng from durchlaufzeit_sonder_ag dsa, auftrag_arbeitsplan apl, walze w2 where apl.arbeitsgang_nr in ( select dsa1.ag ag from durchlaufzeit_sonder_ag dsa1 where dsa1.abteilung = 'TM' )*and apl.auftr_nr = w2.auftr_nr and apl.auftr_jj = w2.auftr_jj and apl.auftr_pos = w2.auftr_pos and apl.auftr_los = w2.auftr_los and dsa.abteilung = 'TM' and dsa.ag = apl.arbeitsgang_nr GROUP BY w2.walzen_nr, w2.walzen_ng; -------------------------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost | -------------------------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 21 | 1155 | 4927 | | 1 | SORT GROUP BY | | 21 | 1155 | 4927 | |* 2 | HASH JOIN | | 21 | 1155 | 4922 | | 3 | NESTED LOOPS | | 333 | 11655 | 4682 | | 4 | NESTED LOOPS | | 16215 | 427K| 4682 | | 5 | TABLE ACCESS BY INDEX ROWID| DURCHLAUFZEIT_SONDER_AG | 4 | 40 | 2 | |* 6 | INDEX RANGE SCAN | DURCHLAUFZEIT_SONDER_AG_INDEX1 | 4 | | 1 | | 7 | TABLE ACCESS BY INDEX ROWID| AUFTRAG_ARBEITSPLAN | 4054 | 68918 | 1170 | |* 8 | INDEX RANGE SCAN | AUFTRAG_ARBEITSPLAN_IND3 | 4054 | | 7 | |* 9 | INDEX RANGE SCAN | DURCHLAUFZEIT_SONDER_AG_INDEX2 | 1 | 8 | | | 10 | *TABLE ACCESS FULL* | WALZE | 75432 | 1473K| 239 | --------------------------------------------------------------------------------------------------
I don't understand this. Why oracle do not use index (provided in the indicator) when I select the values in the durchlaufzeit_sonder_ag table, but when they provide my own values, it uses the index?select /*+ index(apl(arbeitsgang_nr))*/ /*+ index(w2 WALZE_IND1)*/ SUM (dsa.tage) tage, w2.walzen_nr walzen_nr, w2.walzen_ng walzen_ng from durchlaufzeit_sonder_ag dsa, auftrag_arbeitsplan apl, walze w2 where apl.arbeitsgang_nr in ( 743, 719, 706, 979 ) and apl.auftr_nr = w2.auftr_nr and apl.auftr_jj = w2.auftr_jj and apl.auftr_pos = w2.auftr_pos and apl.auftr_los = w2.auftr_los and dsa.abteilung = 'TM' and dsa.ag = apl.arbeitsgang_nr GROUP BY w2.walzen_nr, w2.walzen_ng; --------------------------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost | --------------------------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 2 | 94 | 1161 | | 1 | SORT GROUP BY | | 2 | 94 | 1161 | | 2 | TABLE ACCESS BY INDEX ROWID | WALZE | 1 | 20 | 2 | | 3 | NESTED LOOPS | | 2 | 94 | 1156 | |* 4 | HASH JOIN | | 31 | 837 | 1094 | | 5 | INLIST ITERATOR | | | | | | 6 | TABLE ACCESS BY INDEX ROWID| DURCHLAUFZEIT_SONDER_AG | 3 | 30 | 2 | |* 7 | INDEX RANGE SCAN | DURCHLAUFZEIT_SONDER_AG_INDEX2 | 3 | | 1 | | 8 | INLIST ITERATOR | | | | | | 9 | TABLE ACCESS BY INDEX ROWID| AUFTRAG_ARBEITSPLAN | 2276 | 38692 | 1091 | |* 10 | INDEX RANGE SCAN | AUFTRAG_ARBEITSPLAN_IND3 | 2276 | | 8 | |* 11 | INDEX RANGE SCAN | WALZE_IND1 | 1 | | 1 | ---------------------------------------------------------------------------------------------------
As far as I know only the first comment of suspicion in a given query block is considered.
So it would be valid (unless hint_one is specified correctly)...
SELECT /*+ hint_one hint_two */ column_name FROM table_name; SELECT /*+ hint_one hint_two */ column_name FROM table_name; SELECT /*+ hint_one hint_two */ column_name FROM table_name; SELECT --+ hint_one hint_two column_name FROM table_name;
But this should not (regardless of if hint_one is specified correctly)...
SELECT /*+ hint_one */ /*+ hint_two */ column_name FROM table_name;
Also I do not believe your INDEX index specification is correct, a single set of brackets should be used and the alias name and index table must be separated by a space or a comma.
So it would be nice...
SELECT /*+ INDEX (table_alias index_name) */ column_name FROM table_name; SELECT /*+ INDEX (table_alias, index_name) */ column_name FROM table_name;
But it would not...
SELECT /*+ INDEX (table_alias (index_name)) */ column_name FROM table_name;
Also, you should be aware that an INDEX indicator is only considered provided that supports a given join order.
Maybe you are looking for
-
Satellite L505-141 - Crash 3 times a day
Hello I just bought 2 months ago my first new laptop Satellite L505-141 and use Windows 7 64-bit. The laptop crashes (turns off suddenly) 3 times a day and I don't know why! After it happened I can't relight unlees I took out and the electric cable c
-
Satellite 2140CDS hang at startup
The model is a Satellite of 2140CDS with an upgrade of RAM (made at the beginning of 2003) to the maximum capacity of 168 Mb. The Windows 98 Second edition has been upgraded to Windows 2000 SR4 and is stable and without significant problems for more
-
Run each VI but then show after a different action by the user
Hello everyone, Sorry for my English in advance, you will see some errors probably: 3 I hope you understand anyway! Well, I am a beginner with labview and I work in a project on a system that may take measures of speed and strength. I have already cr
-
Anyone else have problems with the compass of the Xoom? Most of the I downloaded the applications that use it have the compass off the coast of 90 degrees (this may be because the standard Xoom orientation is landscape and phones are portrait). I hop
-
Dell Inspiron 1545 caps lock light not lighting up no more.
I HAVE LAPTOP DELL INSPIRON 1545.INITIALLY IT ALLOWS TO DISPLAY AN ICON OF CAPS LOCK SO AS TO COME TO SEE IF IT IS ON OR OFF. BUT NOW, THE ICON DISAPPEARED AND SO IT IS CAUSING A GREAT DIFFIICULTY IN THE SIGNATURE AND SENDING OF E-MAIL. I DON'T KNOW