powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / разве удаление партиции должно вызывать пересчет статистики по всем остальным?
20 сообщений из 20, страница 1 из 1
разве удаление партиции должно вызывать пересчет статистики по всем остальным?
    #39173868
AlexVin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
oracle 12.1.0.2.5

есть большая партиционированная таблица, строк десяток миллионов, партиций десяток тыс, распределение равномерное, индексы на ней только локальные. устаревание статистики по дефолту 31 день, на партициях данных last_analyzed не старее недели.
с ежесуточным удалением десятка старых партиций, джоба автоматического пересчета статистики каждую ночь начала обновлять статистику по ВСЕМ партициям этой таблицы и индексов.
это бага такая чтоль?
...
Рейтинг: 0 / 0
разве удаление партиции должно вызывать пересчет статистики по всем остальным?
    #39173898
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexVinoracle 12.1.0.2.5Впереди планеты всей не страшно?AlexVinэто бага такая чтоль?Почему бы не обратиться в MOS?
...
Рейтинг: 0 / 0
разве удаление партиции должно вызывать пересчет статистики по всем остальным?
    #39173919
AlexVin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ElicВпереди планеты всей не страшно?не-а. в 11м есть куча тех же не исправленных багов, что и тут. обещают в 12.2
ElicПочему бы не обратиться в MOS?чтоб доказать проблему поддержке, обычно сначала надо понять отчего она возникает, а это пока непонятно

никто не сталкивался? в любой версии.
что еще можно покопать, если ежедневный пересчет вдруг не из-за удаления?
...
Рейтинг: 0 / 0
разве удаление партиции должно вызывать пересчет статистики по всем остальным?
    #39173951
jan2ary
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexVin,

Например: Incremental Statistics Regathers on Partitions with Unchanged Data (Doc ID 1915669.1)
...
Рейтинг: 0 / 0
разве удаление партиции должно вызывать пересчет статистики по всем остальным?
    #39174350
AlexVin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да только инкрементал - ложь

Код: plsql
1.
2.
3.
4.
5.
6.
7.
INCREMENTAL=FALSE
INCREMENTAL_LEVEL=PARTITION
INCREMENTAL_STALENESS=NULL
METHOD_OPT=FOR ALL COLUMNS SIZE AUTO
PUBLISH=TRUE
GRANULARITY=AUTO
ESTIMATE_PERCENT=DBMS_STATS.AUTO_SAMPLE_SIZE


собссно, всё по дефолту
попробовать чтоли для таблицы
INCREMENTAL=TRUE
INCREMENTAL_STALENESS=USE_STALE_PERCENT
?

про вариант "New histograms need to be considered on the partition." из ноты - т.е. при добавлении (а тут может и при удалении) партиций пересчитываются гистограммы по всей таблице? а где можно посмотреть этот reason "histograms
need to be updated"?
...
Рейтинг: 0 / 0
разве удаление партиции должно вызывать пересчет статистики по всем остальным?
    #39222178
AlexVin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
устаревание статистики по дефолту 31 день (DBMS_STATS.GET_STATS_HISTORY_RETENTION)

зачем оракел переcчитывает статистику, которая устарела, если в партиции так ничего и не менялось? не 10%, а вообще ни одна строчка. это not a bag чтоль?

я правильно понимаю, что оракел просто тупо удаляет всю статистику старее 31 дня и считает её заново почти каждый месяц, а не проверяет, надо ли её вообще пересчитывать для конкретного объекта?
...
Рейтинг: 0 / 0
разве удаление партиции должно вызывать пересчет статистики по всем остальным?
    #39222304
BlankHat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AlexVinя правильно понимаю, что оракел просто тупо удаляет всю статистику старее 31 дня и считает её заново почти каждый месяц, а не проверяет, надо ли её вообще пересчитывать для конкретного объекта?
Через 31 день удалится предыдущая собранная статистика. Т.е. после сбора новой статистики, сведения о старой хранятся 31 день и предыдущую статистику можно вернуть DBMS_STATS.RESTORE_TABLE_STATS и т.п. способами.

Отдельно с описанным Вами случаем не сталкивалась.
Посмотрела бы на параметр сбора статистики GRANULARITY для таблицы/схемы/БД:
Для таблицы:
select DBMS_STATS.GET_PREFS('GRANULARITY','SCHEMA_NAME','TABLE_NAME') from dual;
...
Рейтинг: 0 / 0
разве удаление партиции должно вызывать пересчет статистики по всем остальным?
    #39222344
AlexVin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GRANULARITY на всех трех уровнях AUTO
...
Рейтинг: 0 / 0
разве удаление партиции должно вызывать пересчет статистики по всем остальным?
    #39222433
AlexVin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AlexVinoracle 12.1.0.2.5
с ежесуточным удалением десятка старых партиций, джоба автоматического пересчета статистики каждую ночь начала обновлять статистику по ВСЕМ партициям этой таблицы и индексов.

не совсем верно написал тогда, не "каждую ночь". после того как всё посчитает почти на месяц затишье было (вот с перепугу я на retention и стал грешить). на днях вот снова начала лопатить статистику за 10 марта, обновлять

и теперь уже oracle 12.1.0.2.160119
...
Рейтинг: 0 / 0
разве удаление партиции должно вызывать пересчет статистики по всем остальным?
    #39222870
Nobody1111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AlexVin,

можно лочить статистику несвежих секций.
...
Рейтинг: 0 / 0
разве удаление партиции должно вызывать пересчет статистики по всем остальным?
    #39223437
AlexVin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nobody1111можно лочить статистику несвежих секций.
задумывался уже об этом. но если хоть на одну партицию статистика залочена, то оракел глобальную статистику по таблице не собирает с партиций инкрементально, а гребет всю таблицу целиком(
пока уменьшил мантенанс окошки длительностью и количеством, размазав весь мегапересчет на неделю ночей, чтобы не переедать ресурсов
...
Рейтинг: 0 / 0
разве удаление партиции должно вызывать пересчет статистики по всем остальным?
    #39288671
AlexVin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
переключились на инкрементальный сбор статистики, нарвались на другую беду.
delete from sys.wri$_optstat_synopsis$ даже в degree 1 при пересборе с большой скоростью (в пике до 30 мб Bytes Per Second) генерит большое количество архивлогов в течение минут 10-20, забивая io и требуя большой суммарный размер redo.
что с этим можно поделать, отключить инкрементал?)
и я правильно понимаю, что для
Код: plsql
1.
exec dbms_stats.delete_table_stats('SCHEMA_NAME', 'TABLE_NAME', stat_category=>'synopses');

размер удаляемой порции не указать?
...
Рейтинг: 0 / 0
разве удаление партиции должно вызывать пересчет статистики по всем остальным?
    #39290183
Nobody1111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AlexVinNobody1111можно лочить статистику несвежих секций.
задумывался уже об этом. но если хоть на одну партицию статистика залочена, то оракел глобальную статистику по таблице не собирает с партиций инкрементально, а гребет всю таблицу целиком

Это документировано где-то или выяснено эмпирически?
...
Рейтинг: 0 / 0
разве удаление партиции должно вызывать пересчет статистики по всем остальным?
    #39291200
db_i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nobody1111,
Если статистика залочена, по ней сделан DML, то Oracle не может гарантировать аггрегацию и делает полный просмотр.
авторIncremental statistics does work with locked partitions statistics as long as no DML occurs on the locked partitions. However, if DML does occurs on the locked partitions then we can no longer guarantee that the global statistics built from the locked statistics will be accurate so we will fall back to the old full table scan approach when gathering global statistics. Ideally you should not lock the older partitions. If no DML occurs on them, we won't re-gather statistics on them. If DML does occur on a sub-set of partitions (the latest one and one or two older ones) then we will re-gather statistics on just this subset of partitions and generate global statistics from the partition level statistics. Typically this will be much faster than using the old approach and will guarantee accurate global statistics. 1
Но. Может быть оно и так в 11g. В 10 у меня есть таблицы, в которых нет stale партиций, статистика не залочена , и эта фича не работает. И есть таблицы, в которых все залочено, есть в перемешку stale и не stale партиции , и при этом фича работает, аггрегирует на глобальный уровень... Не знаю почему.
...
Рейтинг: 0 / 0
разве удаление партиции должно вызывать пересчет статистики по всем остальным?
    #39291407
Nobody1111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторIncremental statistics does work with locked partitions statistics as long as no DML occurs on the locked partitions.

То есть у вас в этой таблице в старых секциях данные все же меняются? И их, несмотря на это, можно бывает удалять?

Да и вообще, в цитате речь об инкрементальной глобальной статистике. Что она здесь дает?
...
Рейтинг: 0 / 0
разве удаление партиции должно вызывать пересчет статистики по всем остальным?
    #39291799
db_i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nobody1111авторIncremental statistics does work with locked partitions statistics as long as no DML occurs on the locked partitions.

То есть у вас в этой таблице в старых секциях данные все же меняются? И их, несмотря на это, можно бывает удалять?

Да и вообще, в цитате речь об инкрементальной глобальной статистике. Что она здесь дает?
Инкрементальная бывает другой? Что вы под ней понимаете?
...
Рейтинг: 0 / 0
разве удаление партиции должно вызывать пересчет статистики по всем остальным?
    #39292421
Nobody1111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
То же самое понимаю.

Но вопросов это не снимает.
...
Рейтинг: 0 / 0
разве удаление партиции должно вызывать пересчет статистики по всем остальным?
    #39292507
db_i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nobody1111,

Я ответил за автора на ваш вопрос "Это документировано где-то или выяснено эмпирически? "

Что там происходит у автора, меняется старые данные или нет, и как он использует инкрементальную статистику - не знаю.
...
Рейтинг: 0 / 0
разве удаление партиции должно вызывать пересчет статистики по всем остальным?
    #39292547
serpv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
меняются или нет данные в старых партициях можно выяснить по ALL_TAB_MODIFICATIONS
...
Рейтинг: 0 / 0
разве удаление партиции должно вызывать пересчет статистики по всем остальным?
    #39294377
AlexVin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
db_iНо. Может быть оно и так в 11g. В 10 у меня есть таблицы, в которых нет stale партиций, статистика не залочена , и эта фича не работает. И есть таблицы, в которых все залочено, есть в перемешку stale и не stale партиции , и при этом фича работает, аггрегирует на глобальный уровень... Не знаю почему.
полочил статистику на старые партиции, бд догнал до июльской псу-шки
а как отследить, агрегировал оракел при сборе конкретную партицию или сканил, если статистика на партиции залочена?
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / разве удаление партиции должно вызывать пересчет статистики по всем остальным?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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