Оптимизатор Oracle будет использовать несколько Подсказок в том же ВЫБОРЕ?

Принятый ответ от diodus не работает для некоторых, если не для всех нас. Я не мог по-прежнему скрывать свою кнопку «Печать этой кнопки» от выхода на бумагу.

Небольшая настройка Clint Pachl на вызов css-файла путем добавления в

      media="screen, print" 

, а не только

      media="screen"

решает эту задачу. Поэтому для ясности и потому, что не легко увидеть, как Clint Pachl скрывает дополнительную помощь в комментариях. Пользователь должен включать «, печатать» в файле css с желаемым форматированием.

     <link rel="stylesheet" href="my_cssfile.css" media="screen, print"type="text/css">

, а не только по умолчанию media = «screen».

    <link rel="stylesheet" href="my_cssfile.css" media="screen" type="text/css">

That i думаю, решает эту проблему для всех.

19
задан Stew S 7 January 2009 в 22:43
поделиться

2 ответа

Попытайтесь указать все подсказки в единственном блоке комментария, как показано в этом примере из замечательной документации Oracle ( http://download.oracle.com/docs/cd/B19306_01/server.102/b14211/hintsref.htm ).

16.2.1 Определения Полного набора Подсказок

При использовании подсказок, в некоторых случаях, Вы, возможно, должны были бы указать полный набор подсказок для обеспечения оптимального плана выполнения. Например, если у Вас есть очень сложный запрос, который состоит из многих соединений таблицы, и если Вы указываете только ИНДЕКСНУЮ подсказку для данной таблицы, затем оптимизатор должен определить остающиеся пути доступа, которые будут использоваться, а также соответствующие методы соединения. Поэтому даже при том, что Вы дали ИНДЕКСНУЮ подсказку, оптимизатор не мог бы обязательно использовать ту подсказку, потому что оптимизатор, возможно, решил, что требуемый индекс не может использоваться из-за методов соединения и путей доступа, выбранных оптимизатором.

В Примере 16-1, ВЕДУЩАЯ подсказка указывает точный порядок соединения, который будет использоваться; методы соединения, которые будут использоваться на различных таблицах, также указаны.

Пример Определение 16-1 Полного набора Подсказок

SELECT /*+ LEADING(e2 e1) USE_NL(e1) INDEX(e1 emp_emp_id_pk)
           USE_MERGE(j) FULL(j) */
    e1.first_name, e1.last_name, j.job_id, sum(e2.salary) total_sal  
FROM employees e1, employees e2, job_history j
WHERE e1.employee_id = e2.manager_id
  AND e1.employee_id = j.employee_id
  AND e1.hire_date = j.start_date
GROUP BY e1.first_name, e1.last_name, j.job_id   ORDER BY total_sal;
22
ответ дан 30 November 2019 в 04:25
поделиться

На самом деле, рекомендация Jonathan Lewis, Автор Основных принципов Oracle На основе издержек - то, что, если CBO перестал работать при нахождении корректного плана, необходимо принять задание CBO и "слоя - в" подсказках - в среднем две подсказки на таблицу в запросе.

причина состоит в том, что одна подсказка могла привести к плохому еще одному и возможно еще худший план, чем CBO станет без посторонней помощи. Если CBO является неправильным, необходимо дать ему целый план, не только пошаговое перемещение в правильном направлении.

2
ответ дан 30 November 2019 в 04:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: