#sql #oracle #ranking #query-hints
#sql #Oracle #Рейтинг #запрос-подсказки
Вопрос:
извините, если мой вопрос звучит глупо, но я не так давно использую подсказки sql, и я просматриваю некоторые работы по обзору глав для школы. У меня возникли проблемы с тем, чтобы разобраться в них.
Например, один вопрос, который я задал в oracle для тестовой базы данных, которую я создал, был «Показывать лучшие 10% от общего количества ежедневных аукционов. Мой ответ был (который сработал):
SELECT DAYOFWEEK, DAILY_TOTAL
FROM (
SELECT T.DAYOFWEEK,
SUM(AF.TOTAL_NUM_OF_AUCTIONS) AS DAILY_TOTAL,
CUME_DIST() OVER (ORDER BY SUM(AF.TOTAL_NUM_OF_AUCTIONS) ASC) AS Percentile
FROM TIME_DIM T, AUCT_FACT AF
WHERE AF.TIME_ID = T.TIME_ID
GROUP BY T.DAYOFWEEK)
WHERE Percentile > .9
ORDER BY Percentile DESC;
Проблема, с которой я столкнулся сейчас, заключается в том, что я должен попытаться получить этот результат с помощью другого запроса, который я задал своему учителю, и они сказали, что намерены использовать подсказки, я просмотрел свои заметки о них, и там действительно недостаточно подробно объясняется, как оптимизировать этот запрос с помощью подсказок или сделать это более простым способом.
Любая помощь была бы действительно оценена
=) спасибо, ребята!
Комментарии:
1. Работает ли этот запрос вообще? Встроенное представление имеет как интерактивную функцию, так и «группировать по». Я не думаю, что ты мог бы иметь и то, и другое.
2. То, что, по вашим словам, сказал ваш учитель, неверно. Подсказки никогда не должны изменять логические результаты запроса (если бы они это сделали, это была бы ошибка).
Ответ №1:
Подсказки — это параметры, которые вы включаете в свой запрос, чтобы указать оптимизатору базы затрат, какие индексы использовать. Похоже, что ежедневный итог — это то, для чего вы можете реализовать сводный индекс.
Комментарии:
1. Спасибо! я ценю ваш вклад.
2. Итак, подсказки просто добавляются В SQL, они не изменяют сам sql, а сопровождают его, чтобы лучше определить вопрос?
3. Подсказки не определяют вопрос лучше, они указывают базе данных, как получить ответ. Запросы с подсказками подобны вождению автомобиля, игнорирующему GPS-навигацию. Вы захотите сделать это только тогда, когда вы знаете , что можете сделать это лучше, чем ваш GPS.