Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Разделение партиций и перестройка индексов / 25 сообщений из 27, страница 1 из 2
24.05.2017, 07:29
    #39458522
Chukis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение партиций и перестройка индексов
Разделил одну большую партицию в таблице на две поменьше.
Теперь поиск по базе очень долго идет. Посмотрел dba_ind_statistics так там у локальных индексов отсутствуют данные о кол-ве строк и дате последнего анализа.
Теперь надо пересоздавать все индексы на эту таблицу? Это будет очень долго по времени. Есть другой способ исправить?
...
Рейтинг: 0 / 0
24.05.2017, 07:48
    #39458529
Разделение партиций и перестройка индексов
Chukis,

тип индексов какой? в каком состоянии индексы?
для появления информации о кол-ве строк и т.д. нужно пересобирать статистику по требуемой секции индекса, а не перестраивать индекс полностью...
...
Рейтинг: 0 / 0
24.05.2017, 07:50
    #39458532
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение партиций и перестройка индексов
И зачем человеку, спрашивается, голова, если есть быстрые руки? Что думало, то потом и болит - жопа.
RTFM Splitting Partitions (FAQ) : "If the partition you are splitting contains any data, then indexes …"
...
Рейтинг: 0 / 0
24.05.2017, 07:54
    #39458533
Chukis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение партиций и перестройка индексов
Добрый Э - Эх,
индексы были локальные.
состояние индексов из таблицы dba_indexes - N/A
а как пересобрать статистику для конкретной таблицы?
раньше я использовал команду ANALYZE TABLE ABROAD COMPUTE STATISTICS FOR ALL INDEXES, а в данном случае как сделать?
...
Рейтинг: 0 / 0
24.05.2017, 08:00
    #39458535
Разделение партиций и перестройка индексов
Chukis,

читать про dbms_stats и забыть об analyze.
информацию по секциям индекса нужно смотреть не в DBA_INDEXES, а в dba_ind_partitions и dba_part_indexes;
...
Рейтинг: 0 / 0
24.05.2017, 08:08
    #39458537
Chukis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение партиций и перестройка индексов
Добрый Э - Эх,
Статус для индексов в новых партициях - UNUSABLE
Все остальные локальные индексы в других партициях - USABLE.
...
Рейтинг: 0 / 0
24.05.2017, 08:10
    #39458539
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение партиций и перестройка индексов
Добрый Э - Эхчитать про dbms_statsМедвежья доброта...
А есть, по чему собирать статистику?
...
Рейтинг: 0 / 0
24.05.2017, 08:15
    #39458541
Chukis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение партиций и перестройка индексов
В общем надо что то вот такое выполнить

DBMS_STATS.GATHER_INDEX_STATS (
ownname=>'ADMIN',
indname=>'IBDEX',
partname=>'TRAN_DIM_200609',
estimate_percent=>null,
stattab=>'INDEX_STAT',
statid=>null,
statown=>'SYS',
degree=>2,
granularity=>'PARTITION',
no_invalidate=>DBMS_STATS.AUTO_INVALIDATE,
force=>TRUE);


Из-за того что индекс стал неиспользуемым и стали тормозить выборки?
...
Рейтинг: 0 / 0
24.05.2017, 08:17
    #39458542
Вячеслав Любомудров
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение партиций и перестройка индексов
Тебе надо перестроить UNUSABLE секции индекса
...
Рейтинг: 0 / 0
24.05.2017, 08:30
    #39458546
Chukis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение партиций и перестройка индексов
Вячеслав Любомудров,

Так все-таки rebuild сделать или пересобрать статистику?
...
Рейтинг: 0 / 0
24.05.2017, 08:32
    #39458547
Разделение партиций и перестройка индексов
Chukis,

для начала - rebuild, но только секций в состоянии UNUSABLE. Далее - собрать статистику по вкусу...
...
Рейтинг: 0 / 0
24.05.2017, 08:36
    #39458549
Chukis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение партиций и перестройка индексов
Добрый Э - Эх,
Я так понимаю команда для перестройки такая
ALTER INDEX schema_name.index_name REBUILD PARTITION partition_name;
...
Рейтинг: 0 / 0
24.05.2017, 08:41
    #39458550
Разделение партиций и перестройка индексов
Chukis,

зависит от версии сервера. можно и через ALTER TABLE <table_name> MODIFY PARTITION <part_name> REBUILD UNUSABLE LOCAL INDEXES;
...
Рейтинг: 0 / 0
25.05.2017, 16:43
    #39459840
Chukis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение партиций и перестройка индексов
Добрый Э - Эх,

В общем, индексы я перестроил, которые были unusable. Статистику не пересобирал, поле last_analyze имеет свежее значение.

Но возникла одна проблема.
Вижу, что долго висят на выполнении пара заданий, где идет поиск по вьюхе, которая объединяет пару таблиц, одна из которых та, в которой индексы перестраивал.
Копирую этот "тяжелый" селект в sql navigator и запускаю - он отрабатывается за пару секунд.

Почему тогда не выполняются запросы пользователей через web-форму? Как посмотреть что стопорит?
...
Рейтинг: 0 / 0
25.05.2017, 16:47
    #39459844
Вячеслав Любомудров
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение партиций и перестройка индексов
Планы остались старые

При перестроении [секций] индексов автоматически пересобралась статистика, но наверняка в там какой-нибудь AUTO_INVALIDATION, планы не инвалидировались

Совет грубый и для больших систем не очень желательный, но действенный -- ALTER SYSTEM FLUSH SHARED_POOL
...
Рейтинг: 0 / 0
25.05.2017, 16:52
    #39459847
ORA__SQL
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение партиций и перестройка индексов
Вячеслав ЛюбомудровALTER SYSTEM FLUSH SHARED_POOLИнвалидировать курсоры можно и не так сурово :)
Код: plsql
1.
comment on table ... is
...
Рейтинг: 0 / 0
25.05.2017, 16:57
    #39459851
Chukis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение партиций и перестройка индексов
Вячеслав Любомудров,

При перестроении [секций] индексов автоматически пересобралась статистика, но наверняка в там какой-нибудь AUTO_INVALIDATION, планы не инвалидировались

В общем надо пересобрать статистику? По локальному индексу в партиции или надо для всех партиций?
...
Рейтинг: 0 / 0
25.05.2017, 17:05
    #39459860
Вячеслав Любомудров
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение партиций и перестройка индексов
Я дал самый простой совет
Если у тебя не тысячи разобранных курсоров, то оно будет практически незаметно

Естественно, инвалидировать можно более избирательно, но я посчитал, что ты все равно не будешь этим заморачиваться

PS. Если таки решишь пересобрать статистику в ручную, то есть смысл обратиться к документации и посмотреть, что означают параметры DBMS_STATS (хотя тебя же тянет в сторону ANALIZE...)
...
Рейтинг: 0 / 0
25.05.2017, 17:07
    #39459862
Вячеслав Любомудров
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение партиций и перестройка индексов
ORA__SQLВячеслав ЛюбомудровALTER SYSTEM FLUSH SHARED_POOLИнвалидировать курсоры можно и не так сурово :)
Код: plsql
1.
comment on table ... is

Насколько помню, уже в 11g перестал инвалидировать курсоры
Не надо выпячивать свое "что-то где-то слышал"
В 11g есть и более тонкие способы инвалидации конкретных курсоров
...
Рейтинг: 0 / 0
25.05.2017, 17:20
    #39459873
Chukis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение партиций и перестройка индексов
Вячеслав Любомудров,
На сколько замедлиться выполнение запросов после очистки разделяемого пула командой ALTER SYSTEM FLUSH SHARED_POOL ?
Если надо выполнить данную команду на "боевой" БД, то хотелось бы знать последствия.
...
Рейтинг: 0 / 0
25.05.2017, 17:25
    #39459878
Вячеслав Любомудров
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение партиций и перестройка индексов
Есть подозрение, что ты даже не заметишь просадки производительности
...
Рейтинг: 0 / 0
25.05.2017, 17:32
    #39459882
Вячеслав Любомудров
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение партиций и перестройка индексов
Оно станет заметно, если у тебя несколько тысяч достаточно часто используемых однотипных (с точностью до биндов) разобранных операторов и/или операторы достаточно сложные, объединяющие много таблиц и/или секционированных таблиц с большим количеством секций.

Да, в этом случае желательно инвалидировать только те операторы, которые относятся к затрагиваемым табличкам, а то и вообще именно конкретные с плохим планом

Но, что-то мне кажется, что это не твой случай -- уж если ты в рабочее время бьешь таблички, потом еще полдня обходишься без индексов, секундная задержка тебя сильно не напряжет
...
Рейтинг: 0 / 0
25.05.2017, 17:39
    #39459886
Chukis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение партиций и перестройка индексов
Вячеслав Любомудров,
что то особых изменений в выполнении запросов я не заметил. как висели так и висят.
...
Рейтинг: 0 / 0
25.05.2017, 17:40
    #39459887
Chukis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение партиций и перестройка индексов
команду по сбросу пула выполнил
...
Рейтинг: 0 / 0
25.05.2017, 17:46
    #39459891
Takurava
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение партиций и перестройка индексов
Chukisчто то особых изменений в выполнении запросов я не заметил. как висели так и висят.На начавшиеся до сброса запросы это не действует - только на вновь появившиеся.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Разделение партиций и перестройка индексов / 25 сообщений из 27, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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