Неоптимальный план на очевидном запросе
Добавлено: 18 сен 2006, 17:45
У меня живьём FB 1.0.3 и на тестовом стенде FB 2 RC3 (не ругайте, так сложилось, завтра поставлю RC4, уточню и там). Проверил на обоих.
Читал Release Notes, ничего такого не встретил, возможно, "особенность" и там присутствует.Селективность PK_LIN 0.0000001508...
Селективность LIDDOC01 0.0000019343... (всего на порядок меньше)Почему-то хочет ползти по PK, ищя самый маленький, что было бы логично, если не смотреть на статистику для LIDDOC01. Выполняется 1.5 секунд в IBExpert против 15ms для "подруленного" хинтом
Читал Release Notes, ничего такого не встретил, возможно, "особенность" и там присутствует.
Код: Выделить всё
CREATE TABLE LIN (
EID INTEGER NOT NULL,
EIDDOC INTEGER DEFAULT 0,
EID1 INTEGER DEFAULT 0,
...
);
ALTER TABLE LIN ADD CONSTRAINT PK_LIN PRIMARY KEY (EID);
CREATE INDEX LIDDOC01 ON LIN (EIDDOC);
Селективность LIDDOC01 0.0000019343... (всего на порядок меньше)
Код: Выделить всё
select min(eid) from lin where eiddoc=:param1
PLAN (LIN ORDER PK_LIN)
Код: Выделить всё
select min(eid+0) from lin where eiddoc=:param1
PLAN (LIN INDEX (LIDDOC01))