Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Использование индекса / 25 сообщений из 43, страница 1 из 2
20.09.2017, 17:11
    #39523876
CTmuB
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование индекса
Oracle 8

Есть таблица с полем TIMESTAMP
Есть два индекса normal "TIMESTAMP" и индекс на основе значения функции "TRUNC(TIMESTAMP)"
запрос
Select
t.* From ORDHIST t
Where
t.TIMESTAMP between to_date('20160331','YYYYMMDD') and to_date('20160331235959','YYYYMMDDHH24MISS')

выполняется с использованием индекса за 5 секунд
запрос
Select
t.* From ORDHIST t
Where
trunc(t.TIMESTAMP)= to_date('20160331','YYYYMMDD')

выполняется с полным сканированием таблицы за 3 минуты
как "заставить" оптимизатор использовать индекс "TRUNC(TIMESTAMP)"
?
...
Рейтинг: 0 / 0
20.09.2017, 17:18
    #39523890
CTmuB
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование индекса
P.S.
hint
Select --+ORDHIST NK_ORDHIST_TIMESTAMP_DAY
не помогает
...
Рейтинг: 0 / 0
20.09.2017, 17:22
    #39523895
хм..хм..
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование индекса
CTmuB,

через dbms_xplan, посмотри на "Predicate Information (identified by operation id)"
...
Рейтинг: 0 / 0
20.09.2017, 17:27
    #39523901
CTmuB
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование индекса
хм..хм..,
Извините, можно поподробнее
...
Рейтинг: 0 / 0
20.09.2017, 17:30
    #39523905
DВА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование индекса
CTmuBP.S.
hint
Select --+ORDHIST NK_ORDHIST_TIMESTAMP_DAY
не помогает
а чем он должен помочь?
...
Рейтинг: 0 / 0
20.09.2017, 17:41
    #39523913
Использование индекса
CTmuB,

значения параметров OPTIMIZER_MODE, query_rewrite_enabled и query_rewrite_integrity покажи. ну и DDL индекса приведи.
...
Рейтинг: 0 / 0
20.09.2017, 17:44
    #39523917
CTmuB
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование индекса
...
Рейтинг: 0 / 0
20.09.2017, 17:45
    #39523920
Использование индекса
CTmuB,

а также информацию о наличии статистики по таблице и её индексам.
...
Рейтинг: 0 / 0
20.09.2017, 17:45
    #39523921
хм..хм..
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование индекса
...
Рейтинг: 0 / 0
20.09.2017, 17:46
    #39523922
DВА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование индекса
CTmuB,
и где там хинт?
...
Рейтинг: 0 / 0
20.09.2017, 17:48
    #39523928
Использование индекса
CTmuBDВА,
https://docs.oracle.com/cd/B19306_01/server.102/b14211/hintsref.htm#i17496
16.1.2.2 Hints for Access Pathsну так и сверься - как требуется задавать хинт и как ты его написал.... где ключевое слово INDEX?
...
Рейтинг: 0 / 0
20.09.2017, 17:52
    #39523937
Использование индекса
хм..хм..CTmuB,
через dbms_xplan, посмотри на "Predicate Information (identified by operation id)"

DBMS_XPLAN.Examples это в восьмерке-то? а ничего, что dbms_xplan был "was introduced in Oracle 9i as a replacement for the "utlxpls.sql" " ?
...
Рейтинг: 0 / 0
20.09.2017, 18:18
    #39523961
CTmuB
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование индекса
Код: plsql
1.
2.
3.
4.
5.
Select --+ INDEX(NK_ORDHIST_TIMESTAMP_DAY)
t.* From ORDHIST t 
Where 
--t.TIMESTAMP between to_date('20160331','YYYYMMDD') and to_date('20160331235959','YYYYMMDDHH24MISS')
trunc(t.TIMESTAMP)= to_date('20160331','YYYYMMDD')



Description Object owner Object name Cost Cardinality Bytes CPU cost Optimizer Operation Object type IO cost Time Temp space
SELECT STATEMENT, GOAL = CHOOSE 97 036 420 441 26 067 342 CHOOSE SELECT STATEMENT
TABLE ACCESS FULL LIORDER ORDHIST 97 036 420 441 26 067 342 ANALYZED TABLE ACCESS
...
Рейтинг: 0 / 0
20.09.2017, 18:21
    #39523963
CTmuB
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование индекса
...
Рейтинг: 0 / 0
20.09.2017, 18:22
    #39523964
CTmuB
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование индекса
И сами индексы
http://prntscr.com/gnj4b2
...
Рейтинг: 0 / 0
20.09.2017, 18:26
    #39523965
DВА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование индекса
[quot CTmuB]
Код: plsql
1.
2.
3.
4.
5.
Select --+ INDEX([color=red]NK_ORDHIST_TIMESTAMP_DAY[/color])
t.* From ORDHIST[color=red] t [/color]
Where 
--t.TIMESTAMP between to_date('20160331','YYYYMMDD') and to_date('20160331235959','YYYYMMDDHH24MISS')
trunc(t.TIMESTAMP)= to_date('20160331','YYYYMMDD')



детский сад какой-то
...
Рейтинг: 0 / 0
20.09.2017, 18:26
    #39523966
DВА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование индекса
Select --+ INDEX(NK_ORDHIST_TIMESTAMP_DAY)
t.* From ORDHIST t
Where
--t.TIMESTAMP between to_date('20160331','YYYYMMDD') and to_date('20160331235959','YYYYMMDDHH24MISS')
trunc(t.TIMESTAMP)= to_date('20160331','YYYYMMDD')
...
Рейтинг: 0 / 0
20.09.2017, 18:31
    #39523967
Использование индекса
[quot DВА]CTmuB
Код: plsql
1.
2.
3.
4.
5.
Select --+ INDEX(NK_ORDHIST_TIMESTAMP_DAY)
t.* From ORDHIST t
Where 
--t.TIMESTAMP between to_date('20160331','YYYYMMDD') and to_date('20160331235959','YYYYMMDDHH24MISS')
trunc(t.TIMESTAMP)= to_date('20160331','YYYYMMDD')



детский сад какой-то :) ;)
...
Рейтинг: 0 / 0
20.09.2017, 18:34
    #39523968
CTmuB
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование индекса
DВА,

таки да пропустил, но всё равно
http://prntscr.com/gnj96i
http://prntscr.com/gnj9r7
...
Рейтинг: 0 / 0
20.09.2017, 18:34
    #39523969
Использование индекса
CTmuB,
с OPTIMIZER_MODE понятно. а как насчет
Добрый Э - Эхзначения параметров query_rewrite_enabled и query_rewrite_integrity покажи.???
...
Рейтинг: 0 / 0
20.09.2017, 18:37
    #39523971
CTmuB
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование индекса
Добрый Э - Эх,
не вижу таких
http://prntscr.com/gnjb5o
...
Рейтинг: 0 / 0
20.09.2017, 18:47
    #39523977
Использование индекса
CTmuB,

Это параметры инстанса....
Смотреть в unit.ora надо. Ну или запросим к вьюге v$parameter...
...
Рейтинг: 0 / 0
20.09.2017, 18:49
    #39523979
DВА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование индекса
как оптимизатор перекорежило лишь бы ваш индекс не использовать ))
он вообще валидный?
попробуйте так, фиг знает эту восьмерку
trunc(TIMESTAMP)=...
...
Рейтинг: 0 / 0
20.09.2017, 18:49
    #39523980
CTmuB
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование индекса
Добрый Э - Эх,
http://prntscr.com/gnjhec
...
Рейтинг: 0 / 0
20.09.2017, 18:54
    #39523984
Использование индекса
CTmuB,

попробуй для начала в своей сессии выполнить команды:
alter session set query_rewrite_enabled = true;
alter session set query_rewrite_integrity = trusted;

после чего - попробуй выполнить свой запрос к таблице с FBI
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Использование индекса / 25 сообщений из 43, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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