Я надеюсь, что некоторые из более опытных разработчиков баз данных/dwh или администраторов баз данных могут взвеситься на этом:правильный дизайн запроса? перекрестные соединения, управляющие специальным интерфейсом отчетов
Моя команда использует OBIEE в качестве инструмента для управления объявлением -hoc-отчетность осуществляется нашими бизнес-подразделениями.
При генерации множеств, относительно небольших, существует небольшая задержка. Мы сталкиваемся ~ 1 час, чтобы произвести записи ~ 50 тыс.
Я просмотрел один из запросов, которые ведут себя таким образом, и я был удивлен, обнаружив, что все ссылки, на которые делается ссылка, перекрестно соединены, а затем фильтры применяются в предложении WHERE
.
Таким образом, для иллюстрации, запросы, как правило, выглядит следующим образом:
SELECT ...
FROM tbl1
,tbl2
,tbl3
,tbl4
WHERE tbl1.col1 = tbl2.col1
and tbl3.col2 = tbl2.col2
and tbl4.col3 = tbl3.col3
вместо так:
SELECT ...
FROM tbl1
INNER JOIN tbl2
ON tbl1.col1 = tbl2.col1
INNER JOIN tbl3
ON tbl3.col2 = tbl2.col2
INNER JOIN tbl4
ON tbl4.col3 = tbl3.col3
Теперь от того, что я знаю о порядке операций запроса, Предложение FROM
выполняется перед предложением WHERE
, поэтому первый пример будет выполняться намного медленнее, чем последний пример. Правильно ли (ответьте, только если вы знаете ответ в контексте Oracle DB)? К сожалению, у меня нет прав администратора для запуска трассировки по двум различным версиям запроса.
Есть ли причина для установки запроса первым способом, связанным с тем, как работает интерфейс OBIEE? Помните, что запрос является результатом перетаскивания атрибутов пользователя в песочницу из «банка» атрибутов. Выбор любой комбинации атрибутов должен генерировать вывод (если данные существуют). Атрибуты поступают из разных таблиц. У меня нет опыта в разработке mecahnism, который генерирует SQL на основе такого типа выбора атрибутов ad-hoc, поэтому я не знаю, требуется ли дизайн запроса в первом примере для обслуживания такого типа средств отчетности.
Эти два варианта запроса, вероятно, представляют собой один и тот же план выполнения, который вы должны просмотреть в любом случае, если хотите найти узкое место. – mustaccio
перекрестная почта: http://dba.stackexchange.com/q/82878/1822 –