powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Использование индекса
43 сообщений из 43, показаны все 2 страниц
Использование индекса
    #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
Использование индекса
    #39523890
CTmuB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
P.S.
hint
Select --+ORDHIST NK_ORDHIST_TIMESTAMP_DAY
не помогает
...
Рейтинг: 0 / 0
Использование индекса
    #39523895
хм..хм..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CTmuB,

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

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

а также информацию о наличии статистики по таблице и её индексам.
...
Рейтинг: 0 / 0
Использование индекса
    #39523921
хм..хм..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Использование индекса
    #39523922
Фотография DВА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CTmuB,
и где там хинт?
...
Рейтинг: 0 / 0
Использование индекса
    #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
Использование индекса
    #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
Использование индекса
    #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
Использование индекса
    #39523963
CTmuB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Использование индекса
    #39523964
CTmuB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И сами индексы
http://prntscr.com/gnj4b2
...
Рейтинг: 0 / 0
Использование индекса
    #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
Использование индекса
    #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
Использование индекса
    #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
Использование индекса
    #39523968
CTmuB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DВА,

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

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

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

после чего - попробуй выполнить свой запрос к таблице с FBI
...
Рейтинг: 0 / 0
Использование индекса
    #39523988
CTmuB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый Э - Эх,
результат тот же
P.S.
значения должны были поменяться?
http://prntscr.com/gnjm2y
...
Рейтинг: 0 / 0
Использование индекса
    #39523989
CTmuB,

в каком GUI скрипты гоняешь? Некоторые каждый запрос выполняют в отдельной сессии.
чтобы перехитрить таких хитрожопых - попробуй сделать alter system вместо alter session
...
Рейтинг: 0 / 0
Использование индекса
    #39523990
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый Э - Эхпопробуй сделать alter system вместо alter session
Напомнило:
народД'Артаньян вызвал Илью Муромца на дуэль. И говорит секундантам: нарисуйте ему крестик на груди, я его туда уколю своей верной шпагой.
Илья Муромец: посыпьте его мелом, и дайте мне палицу.

ТС: не стоит следовать этому совету.
...
Рейтинг: 0 / 0
Использование индекса
    #39523992
andrey_anonymous,

можно язвить сколько угодно, но на восьмерке без установки этих параметров работа с FBI не взлетит. Это же даже в документации в качестве предварительных требований описано....
...
Рейтинг: 0 / 0
Использование индекса
    #39523994
Добрый Э - Эхandrey_anonymous,

можно язвить сколько угодно, но на восьмерке без установки этих параметров работа с FBI не взлетит. Это же даже в документации в качестве предварительных требований описано....сейчас дословно все пункты не вспомню, но точно было что-то типа такого:
1) установите параметр такой-то в значение такое-то
2) установите параметр другой-то в значение другое-то
3) убедитесь что используется CBO, так как c FBI умеет работать только он. RBO отдыхает.
4) Выдайте себе привилегию QUERY REWRITE.
теперь можно приступать к созданию и использованию FBI
...
Рейтинг: 0 / 0
Использование индекса
    #39523995
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый Э - Эхandrey_anonymous,

можно язвить сколько угодно, но на восьмерке без установки этих параметров работа с FBI не взлетит. Это же даже в документации в качестве предварительных требований описано....

Дело не в язвлении.
Дело в том, что установка этих параметров на уровне всей БД может дать побочные спецэффекты, которых ТС не ожидает и к которым не готов.
Лучше объяснить, как настроить его софтинку, если дело в ней. И заодно - научить пользовать банальный текстовый копипаст вместо картинок... предпочтительно из sqlplus.

А уж если у ТС все получится как мечтается с его FBI (что, кстати, совсем не факт) - то уже думать, стоит ли овчинка выделки и как подготовить систему к новой счастливой жизни.
...
Рейтинг: 0 / 0
Использование индекса
    #39523996
CTmuB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый Э - Эх,
авторпопробуй сделать alter system вместо alter session
спасибо помогло

только можно ссылку на авторЭто же даже в документации в качестве предварительных требований описано....
и какие это авторможет дать побочные спецэффекты?
...
Рейтинг: 0 / 0
Использование индекса
    #39523997
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CTmuBДобрый Э - Эх,
авторпопробуй сделать alter system вместо alter session
спасибо помогло[/quot]
Надеюсь, прямо в продуктиве сделали?
Ну наблюдайте теперь.
Пользователи сообщат, если не повезло :)
...
Рейтинг: 0 / 0
Использование индекса
    #39523999
CTmuB,

если бы я нашел с лёту ссылку на восьмерочную документацию - я бы её в первом же посте и опубликовал, а не стал бы намеками выспрашивать о текущих значениях требуемых параметров.... ;)

От себя ещё могу добавить, что начиная с 9i значения параметров query_rewrite_enabled = true и query_rewrite_integrity = trusted - умолчательные. И там FBI работает, что называется, "с коробки", без лишних телодвижений...
Видимо, разработчики оракла посчитали, что никаких особо негативных спецэффектов от их установки на уровне базы - не возникает. ну или допилили в девятке "гаситель спецэффектов" от их установки ;)
...
Рейтинг: 0 / 0
Использование индекса
    #39524003
CTmuB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
andrey_anonymousCTmuBДобрый Э - Эх,
пропущено...

спасибо помогло
Надеюсь, прямо в продуктиве сделали?
[/quot]

и не надейтесь
...
Рейтинг: 0 / 0
Использование индекса
    #39524004
CTmuB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый Э - Эх,

спасибо
гугл мне в помощь
теперь хоть понятно что искать
...
Рейтинг: 0 / 0
Использование индекса
    #39524107
ORA__SQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CTmuBЕсть два индекса normal "TIMESTAMP" и индекс на основе значения функции "TRUNC(TIMESTAMP)"Вешать FBI на TIMESTAMP не рекомедую. Работает не стабильно. Есть баги от версии к версии.
А в вашем случае с датой FBI вообще избыточен
Помедитируй над
Код: plsql
1.
t.TIMESTAMP >= trunc(sysdate) and t.TIMESTAMP < trunc(sysdate) + 1 
...
Рейтинг: 0 / 0
Использование индекса
    #39524119
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CTmuB
только можно ссылку на



не дока, но зато на русском
http://www.interface.ru/fset.asp?Url=/oracle/0005.htm

.....
stax
...
Рейтинг: 0 / 0
Использование индекса
    #39524223
Фотография --Eugene--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Staxзато на русскомк сожалению, русский, отнюдь не показатель качества статьи. по моему опыту, наоборот
...
Рейтинг: 0 / 0
Использование индекса
    #39524225
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
--Eugene--Staxзато на русскомк сожалению, русский, отнюдь не показатель качества статьи. по моему опыту, наоборот
Кайт для меня и счас АВТОРИТЕТ

.....
stax
...
Рейтинг: 0 / 0
Использование индекса
    #39524227
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
--Eugene--,

в догонку, для автора важно что там про 8-ку

ps
наскоко помню, там еще был нюанс - создание фби приводило к ивалид хранимок

.....
stax
...
Рейтинг: 0 / 0
Использование индекса
    #39524231
Фотография --Eugene--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StaxКайт для меня и счас АВТОРИТЕТКайт - да, но не переводчик, пожалуй?
...
Рейтинг: 0 / 0
Использование индекса
    #39524270
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
--Eugene--StaxКайт для меня и счас АВТОРИТЕТКайт - да, но не переводчик, пожалуй?
можно и оригинал найти, на английском
https://www.akadia.com/services/ora_function_based_index_2.html

я плохо знаю буржуинский, перевод для меня находка

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


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