powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / оптимизация запроса и FULL SCANS там где есть индексы.
7 сообщений из 7, страница 1 из 1
оптимизация запроса и FULL SCANS там где есть индексы.
    #39331283
xserge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Иммеется 2 таблицы, чьи записи связаны 1 к 1 по внешнему ключу от Table2 к Table1
поля
Поля Id и Version проиндексированы в обоих таблицах
В обеих таблицах по 9 млн. записей
Вот такой запрос почему то выдаёт FULL SCANS
Код: plsql
1.
2.
3.
4.
5.
6.
select   T.Id
  from       Statementturn T
         inner join
             Statementturnquery Stq
         on Stq.Id = T.Id
 where   (T.Version > 1284099216 or Stq.Version > 1284099216)



Код: plaintext
1.
2.
3.
4.
1	SELECT STATEMENT                          
2	  HASH JOIN                               
3	    TABLE ACCESS  FULL  STATEMENTTURN     
4	    TABLE ACCESS  FULL  STATEMENTTURNQUERY

но если в запросе оператор ">" меняешь на "=" план меняется и становится без фуллсканов . Почему ?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
1 	SELECT STATEMENT                                           
2 	  CONCATENATION                                            
3 	    NESTED LOOPS                                           
4 	      NESTED LOOPS                                         
5 	        TABLE ACCESS  BY INDEX ROWID  STATEMENTTURNQUERY   
6 	          INDEX  RANGE SCAN  IDX_STATEMENTTURNQUERY_VERSION
7 	        INDEX  UNIQUE SCAN  PK_STATEMENTTURN               
8 	      TABLE ACCESS  BY INDEX ROWID  STATEMENTTURN          
9 	    NESTED LOOPS                                           
10	      TABLE ACCESS  BY INDEX ROWID  STATEMENTTURN          
11	        INDEX  RANGE SCAN  IDX_STATEMENTTURN_VERSION       
12	      INDEX  RANGE SCAN  IDX_STATEMENTTURNQ_ID_VER         
...
Рейтинг: 0 / 0
оптимизация запроса и FULL SCANS там где есть индексы.
    #39331300
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xsergeно если в запросе оператор ">" меняешь на "=" план меняется и становится без фуллсканов . Почему ?Почувствуй разницу между 1 строкой и приблизительно половиной от 9 млн.
...
Рейтинг: 0 / 0
оптимизация запроса и FULL SCANS там где есть индексы.
    #39331315
xserge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ok

select max(Version) from Statementturn

1284099216

в предыдущих запросах вообще 0 записей должно выбраться.

Почувствуй разницу между 1 записью и 0
...
Рейтинг: 0 / 0
оптимизация запроса и FULL SCANS там где есть индексы.
    #39331319
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xsergeПочувствуй разницу между 1 записью и 0Оптимизатор безэмоционален. И тоже не умеет высасывать информацию из воздуха.
...
Рейтинг: 0 / 0
оптимизация запроса и FULL SCANS там где есть индексы.
    #39331325
xserge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос в том в данном случае как то можно избавиться от full scans ?
...
Рейтинг: 0 / 0
оптимизация запроса и FULL SCANS там где есть индексы.
    #39331334
Боянчег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
xserge, боян
...
Рейтинг: 0 / 0
оптимизация запроса и FULL SCANS там где есть индексы.
    #39331420
xserge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Там проблему удалось решить заменой left outer join на inner join и обязательной связкой записей 1 к 1.

Да я сейчас понял что когда много записей возращает запрос то действительно вместо поиска по индексам появляются Full scans

моя ошибка, я посчитал max по version у первой таблицы. а во второй таблице не учёл что там все version больше чем в первой.
поэтому возращался почти весь набор из таблиц, и автоматом в плане всплывали full scans. В других случаях оказывается всё по индексам работает.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / оптимизация запроса и FULL SCANS там где есть индексы.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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