Если совсем всё выкинуть, то дела такие:

1) Вьюха:

CREATE VIEW "UndeletableRssFeedItems" AS
 SELECT *
 FROM "RssFeedItems" I
 LEFT JOIN (
     SELECT MIN(RDB$DB_KEY) AS ENCLOSURE_KEY, "FeedItemId" FROM "RssFeedItemEnclosures" 
GROUP BY "FeedItemId")
   AS EN ON EN."FeedItemId" = I."Id"
 LEFT JOIN "RssFeedItemEnclosures" E ON E.RDB$DB_KEY = EN.ENCLOSURE_KEY



2) Тормоза (полный перебор RssFeedItems + куча индексированных чтений из 
RssCacheElements)

SELECT *
FROM "UndeletableRssFeedItems" RFI
JOIN "RssCacheElements" RCE ON RFI."FeedId" = RCE."RssFeedId"
WHERE RCE."FeedDefinitionId" = 1540



3) Нет тормозов (одно индексированное чтение из RssCacheElements):

SELECT *
FROM "RssFeedItems" RFI
JOIN "RssCacheElements" RCE ON RFI."FeedId" = RCE."RssFeedId"
WHERE RCE."FeedDefinitionId" = 1540

Ответить