powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / first_rows и стоимостный оптимизатор
14 сообщений из 14, страница 1 из 1
first_rows и стоимостный оптимизатор
    #32083141
Фотография Oleg Afanasiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Странная вещь наблюдается .
По умолчанию включен продукционный оптимизатор.
Для некоторых запросов, возвращающих _одну строку_ или _одно значение_ (-это важно-) и ужасно тормозивших, я проставил подсказку first_rows тем самым включив , как я понимаю стоимостный оптимизатор. Получил
увеличение времени отклика примерно в _60_ раз.
Самое интересное то что статистику никто никогда не собирал.
Как можно объяснить такое увеличение времени отклика?
...
Рейтинг: 0 / 0
first_rows и стоимостный оптимизатор
    #32083144
.dba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Как можно объяснить такое увеличение времени отклика?

изменением плана выполнения запроса.
...
Рейтинг: 0 / 0
first_rows и стоимостный оптимизатор
    #32083164
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Самое интересное то что статистику никто никогда не собирал"

Ты уверен что анализ не проводиося на самом деле?

Проверь:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
select 
  owner, 
  table_name, 
  last_analyzed
 from 
  all_all_tables 
 where 
   table_name = 'Имя таблицы в верхнем регистре';
...
Рейтинг: 0 / 0
first_rows и стоимостный оптимизатор
    #32083209
Фотография Oleg Afanasiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2softbuilder:
результат селекта


OWNER TABLE_NAME LAST_ANA
------------------------------ ------------------------------ --------
KREDIT TCRT

НЕ собирал статистику никто и никогда
...
Рейтинг: 0 / 0
first_rows и стоимостный оптимизатор
    #32083226
Paranoic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А запрос просто через SQL выполняется? Не через PL/SQL?
...
Рейтинг: 0 / 0
first_rows и стоимостный оптимизатор
    #32083229
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Могу предположить что запрос составлен неправильно или условия для запроса не подготовлены. Если запрос возвращает одну строку, скорее всего это уникальная строка, тогда для RULE достаточно иметь правильно подобранный индекс. Если же эта строка не уникальная , то можно использовать ROWNUM<2 - в этом случае также увеличиться скорость.
Давай свой запрос, план запроса, посмотрим.
...
Рейтинг: 0 / 0
first_rows и стоимостный оптимизатор
    #32083269
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>OWNER TABLE_NAME LAST_ANA
>------------------------------ ------------------------------ --------
>KREDIT TCRT
>
>НЕ собирал статистику никто и никогда


Тогда CBO подразумевает дефолтные значения статистики таблицы
...
Рейтинг: 0 / 0
first_rows и стоимостный оптимизатор
    #32083283
ShgGena
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Naskolko i pomnu pri ukazanii prosto FIRST_ROWS Oracle budet schitat NESTED LOOPS kak
osnovnuiu strategiu postroeniya plana vipolneniia.
V etoi situacii na pirviy plan vichodit poriadok perechisleniya tablic vo FROM.
...
Рейтинг: 0 / 0
first_rows и стоимостный оптимизатор
    #32083288
Фотография Oleg Afanasiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хорошо
Код: plaintext
1.
2.
3.
select count(*) from iost where sch='x' and cval='980' and cvalp='000'
               and data_d in (select max(data_d) from iost
               where sch='x' and cval='980' and cvalp='000' and data_d<='11.11.11')


План

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Operation Object Name Rows Bytes Cost Object Node In/Out PStart PStop

SELECT STATEMENT Hint=CHOOSE		  	 	 	 	      	             	 
  SORT AGGREGATE		  	 	 	 	      	             	 
    INDEX UNIQUE SCAN	PK_IOST	  	 	 	 	      	             	 
      SORT AGGREGATE		  	 	 	 	      	             	 
        TABLE ACCESS BY INDEX ROWID	IOST	  	 	 	 	      	             	 
          INDEX RANGE SCAN	IOST_INDX_3	  	 	 	 



Теперь с подсказкой

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Operation	Object Name	Rows	Bytes	Cost	Object Node	In/Out	PStart	PStop


SELECT STATEMENT Hint=HINT: FIRST_ROWS	 1   	 	 1   	 	      	             	  
  SORT AGGREGATE	                  	          1   	 41   	 	 	      	             	 
    INDEX UNIQUE SCAN	PK_IOST	              1   	 41   	 1   	 	      	             	 
      SORT AGGREGATE		              1   	 50   	 	 	      	             	 
        TABLE ACCESS BY INDEX ROWID IOST	 1   	 50   	 2   	 	      	             	 
          INDEX RANGE SCAN	IOST_INDX_1	 1   	 	 1 


В первом случае запрос выполняется 1.5 секунды во втором 0.03
...
Рейтинг: 0 / 0
first_rows и стоимостный оптимизатор
    #32083307
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Получил увеличение времени отклика примерно в _60_ раз.

Так увеличение или уменьшение ? ;)

FIRST_ROWS - изменяет алгоритм вычисления стоимости шагов.
...
Рейтинг: 0 / 0
first_rows и стоимостный оптимизатор
    #32083313
Фотография Oleg Afanasiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ой точно уменьшение ;P
немножко промахнулся :_)

Если нет статистики я так понимаю он должен брать показатели 50/50
Стоимости тоесть у него примерно все равны.
Может я не правильно выражаюсь но что-то в этом роде :_)
Или нет?

2Gena:
Порядок from важен для продукционного оптиимзатора
...
Рейтинг: 0 / 0
first_rows и стоимостный оптимизатор
    #32083315
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Он берет дефолтные значения. Навскидку не помню. Можно проверить через эвент, который заставит трассировать логику CBO.
...
Рейтинг: 0 / 0
first_rows и стоимостный оптимизатор
    #32083326
ShgGena
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
event # 10053
chitabelnost faila trassirovki dostatocho nizkaia.
...
Рейтинг: 0 / 0
first_rows и стоимостный оптимизатор
    #32083330
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
там это будет видно хорошо.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / first_rows и стоимостный оптимизатор
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]