Использование «ПОДСКАЗОК» в sql-запросе

#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.