Я хочу оптимизировать этот запрос, но только с использованием индекса, подсказок, кластеров и pctfree и pctused. Благодарю.Мне нужна небольшая помощь для оптимизации
WITH
A AS (SELECT SSN from contracts where (end_date is null or end_date>sysdate)),
B AS (SELECT SSN,start_date, NVL(end_date,sysdate) finish,
(NVL(end_date,sysdate)-start_date) length
FROM CONTRACTS NATURAL JOIN A)
SELECT SSN
FROM B
GROUP BY SSN HAVING (Max(finish)-MIN(start_date)) > SUM(length)
Совершенно невозможно оптимизировать запрос, не зная полной структуры таблицы (с по крайней мере столбцами и индексами) и плана объяснения фактического заявления, пожалуйста, отправьте сообщение. Можете ли вы создавать новые индексы или использовать только существующие? Почему кластеры, pctfree и pctused? Уже существуют ваши таблицы, или вам нужно создавать новые таблицы, чтобы они могли легко получить доступ к вашему запросу? Будьте осторожны с NATURAL JOIN, это может быть очень опасно. – Aleksej
Зачем вам вообще нужно участие? Вы можете просто положить предложение where из вашего подзапроса A в ваш подзапрос B. – Boneist