1) Неправильно оптимизируется DB_KEY внутри вью. Отсюда разный план при разном порядке иннер-джойна таблицы со вью. Возможно, я это исправлю, но точно не в 2.0. Решение - использовать PK вместо DB_KEY.

Мы выкрутились через RIGHT JOIN:

SELECT I.*
FROM "UndeletableRssFeedItems" I
RIGHT JOIN "RssCacheElements" RCE ON I."FeedId" = RCE."RssFeedId"
WHERE RCE."FeedDefinitionId" = 1540 AND I."Id" IS NOT NULL

2) Неполное раскрытие вьюхи при внешнем джойне. Это давняя проблема, пока еще не решенная. Отсюда не очень хороший план по сравнению с твоим примером ?4, где все раскрыто вручную.

На выходных постараюсь покумекать на эти темы.

Ясно, спасибо!

Ответить