Оптимизатор в 11g?

expel
Дата: 03.12.2012 12:43:22
Буду признателен за пояснение следующих моментов в работе оптимизатора 11g.

1)На каких этапах oracle производит преобразование(трансформацию) запроса?

2)Влияет ли ручная оптимизация синтаксиса запроса на скорость его выполнения?
Или в большинстве случаев это бесполезно, т. к. oracle делает это сам?
Имеется ввиду оптимизация вроде такой:
select sum(a) + sum(b) from tbl ---------> select sum(a+b) from tbl

3)Есть ли польза от программ типа Lecco sql expert oracle в настоящее время?

Да и собственно вообще всяких ссылок по теме тоже бы почитал.
Corner
Дата: 03.12.2012 12:47:05
expel
Буду признателен за пояснение следующих моментов в работе оптимизатора 11g.

1)На каких этапах oracle производит преобразование(трансформацию) запроса?

при разборе
expel
2)Влияет ли ручная оптимизация синтаксиса запроса на скорость его выполнения?
Или в большинстве случаев это бесполезно, т. к. oracle делает это сам?
Имеется ввиду оптимизация вроде такой:
select sum(a) + sum(b) from tbl ---------> select sum(a+b) from tbl

чаще всего все зависит от того приведет ли переписывание запроса на изменение в плане.
expel
3)Есть ли польза от программ типа Lecco sql expert oracle в настоящее время?
Да и собственно вообще всяких ссылок по теме тоже бы почитал.

польза есть от просмотра плана и понимание его содержимого

начинайте с
Oracle Database Performance Tuning Guide and Reference
Добрый Э - Эх
Дата: 03.12.2012 12:48:24
expel
Имеется ввиду оптимизация вроде такой:
select sum(a) + sum(b) from tbl ---------> select sum(a+b) from tbl
В общем случае - это неэквивалентные значения (null), поэтому сервер не вправе делать такое преобразование
expel
Дата: 03.12.2012 14:17:22
Corner,
1)А можно по подробней про этап разбора?
Вот это актуально на сегодняшнее время - http://citforum.ru/database/oracle/cost-based_query_tr/4.shtml ?

2)Так же интересует вопрос какие типичные преобразования синтаксиса приводят к изменению плана запроса?
Имеются ввиду простые преобразования, а не полностью меняющие алгоритм запроса.

3) Ну так по факту, есть хоть сколь-нибудь малый профит?

Добрый Э - Эх,

Замечание принято, но это просто пример=)
Timur Akhmadeev
Дата: 05.12.2012 17:23:10
expel
Corner,
1)А можно по подробней про этап разбора?
Вот это актуально на сегодняшнее время - http://citforum.ru/database/oracle/cost-based_query_tr/4.shtml ?

Актуально.
expel
2)Так же интересует вопрос какие типичные преобразования синтаксиса приводят к изменению плана запроса?
Имеются ввиду простые преобразования, а не полностью меняющие алгоритм запроса.

Оракл умеет выполнять хорошо простые джойны без подзапросов. Не злоупотребляйте подзапросами, в общем, и Ораклу будет проще.
Не злоупотребляйте ANSI джойнами, т.к. баги.
Иногда бывает нужно добавить дополнительный (очевидный для человека) предикат, хотя он может быть получен через транзитивное замыкание.