Назад к вопросам
Middle+
5
Какие хинты в Oracle используются для ускорения запросов?
Компании, где спрашивали
.wrk
Ответ от нейросети
sobes.tech AI
В Oracle для ускорения запросов используются различные хинты, которые влияют на оптимизатор запросов. Некоторые из часто применяемых хинтов:
- /*+ INDEX(table_name index_name) */ — заставляет использовать конкретный индекс.
- /*+ FULL(table_name) */ — принудительный полный скан таблицы.
- /*+ NO_MERGE(table_name) */ — запрещает слияние представлений или подзапросов.
- /*+ LEADING(table1 table2) */ — задаёт порядок соединения таблиц.
- /*+ USE_NL(table1 table2) */ — использовать вложенные циклы для соединения.
- /*+ PARALLEL(table_name, degree) */ — включить параллельное выполнение запроса.
Пример использования хинта:
SELECT /*+ INDEX(emp emp_dept_idx) */ * FROM emp WHERE dept_id = 10;
Хинты помогают оптимизатору выбрать более эффективный план выполнения, особенно в сложных запросах или при нестандартных данных.