I'm having the following issue with a Linq statement that forces a full table scan using dotconnect for oracle 8.1.26
Table:
Code: Select all
CREATE TABLE ZMC_WMS_TSK (
TSK_ID NUMBER NOT NULL,
STTS_CD VARCHAR2(2 BYTE) NOT NULL,
ZMS_SMPLNG_ID NUMBER,
SESSION_ID RAW(16),
PRIMARY KEY (TSK_ID)
)
CREATE INDEX INDEX_ZMC_WMS_TSK_SESSION_ID ON ZMC_WMS_TSK (SESSION_ID)
TABLESPACE TABS_OCS1
STORAGE (INITIAL 64 K
NEXT 1 M
MAXEXTENTS UNLIMITED)
LOGGING;
Code: Select all
Guid guid = new Guid("28b582c5-dec8-4305-aaa0-3cdfcaab0457");
var tsk = ZMC_WMS_TSK.FirstOrDefault(x => x.SESSION_ID == guid);
Code: Select all
SELECT
"Extent1".TSK_ID,
"Extent1".STTS_CD,
"Extent1".ZMS_SMPLNG_ID,
"Extent1".SESSION_ID
FROM ZMC_WMS_TSK "Extent1"
WHERE ("Extent1".SESSION_ID = 'C582B528C8DE0543AAA03CDFCAAB0457')
The index on field SESSION_ID is not being used
If i try the SQL statement in toad after adding an hextoraw conversion in the select statement then
the sql execution plan tells me Oracle now uses the index on field SESSION_ID
Code: Select all
SELECT
"Extent1".TSK_ID,
"Extent1".STTS_CD,
"Extent1".ZMS_SMPLNG_ID,
"Extent1".SESSION_ID
FROM ZMC_WMS_TSK "Extent1"
WHERE ("Extent1".SESSION_ID = hextoraw('C582B528C8DE0543AAA03CDFCAAB0457'))
What do i need to do here ?
Kind Regards,
Bart Vanryckeghem