|
Подделка гистограм?
|
|||
---|---|---|---|
#18+
Добрый день Имеется громадная таблица транзакций , пропартицированая по месяцам. примерное кол-во строк в каждой партиции варируется : 50 млн-200 млн строк. Имеется перекос по счетам дебета и кредита на этой таблице. Около 20 счетов активны так, что транзакции по ним составляют львинную долю (~80%). Получается что при выборке со "страшного" счета за определенный период транзакции, лучше пройтись full scan ом по партиции. А для "не страшных" индексный доступ вполне себе хорош. Получается, что нужно собирать гистограммы по "перекошенным" колонкам: дебета+дата транзакци и кредита+дата транзакции. Но сбор занимает внушительное время. Делаю так: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9.
А можно ли эту саму статистику подделать/сэмулировать на основании того, что список "страшных" счетов заранее известен? Если да то как? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2020, 15:33 |
|
Подделка гистограм?
|
|||
---|---|---|---|
#18+
sharkoff76, Ну и зачем вам по таким большим партициям выборка в 10%? Скорее всего и 5%, и может даже 2.5% даст достаточный результат. И ещё добавьте block_sample => true. В method_opt у вас неправильный синтаксис - список колонок должен идти перед SIZE. Да и вы уверены, что вам нужна именно расширенная статистика по группе колонок TR_DATE, ID_DEBIT и это нормально ляжет в 254 бакета? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2020, 08:50 |
|
Подделка гистограм?
|
|||
---|---|---|---|
#18+
PuM256 sharkoff76, Ну и зачем вам по таким большим партициям выборка в 10%? Скорее всего и 5%, и может даже 2.5% даст достаточный результат. И ещё добавьте block_sample => true. Основная масса запросов идет к таблице транзакции как раз с датой/периодом транзакции + счет (дебета или кредита). Поэтому принял решение делать сбор по паре Запустил так Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
Это хотя бы стало работать около часа. Отлично. Появилась надежда не заниматься фигней вроде подделки статистики. Спасибо! Правда пока желательный эффект, переключение плана выполнения для "страшного" счета на fullscan, не наступил. понимание сколько же нужно выделить buckets пока не наступило. 254 вроде максимум. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2020, 11:02 |
|
Подделка гистограм?
|
|||
---|---|---|---|
#18+
Страшная комбинация (TR_DATE, ID_DEBIT) вообще попала в гистограмму? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2020, 11:52 |
|
Подделка гистограм?
|
|||
---|---|---|---|
#18+
Меня ещё немного смущает, что указана партиция и не указан параметр granularity. Оракл додумался пересобрать глобальную статистику? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2020, 11:58 |
|
Подделка гистограм?
|
|||
---|---|---|---|
#18+
PuM256 Страшная комбинация (TR_DATE, ID_DEBIT) вообще попала в гистограмму? По крайне мере когда я собирал по партиции по ID_DEBIT счет фигруировал в одном из бакетов. Код: plsql 1. 2. 3. 4. 5. 6.
Как понять попала ли комбинация (TR_DATE, ID_DEBIT) ? - оракл вроде как кодит по своему усмотрению. Как в этом убедится? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2020, 13:09 |
|
Подделка гистограм?
|
|||
---|---|---|---|
#18+
PuM256 Меня ещё немного смущает, что указана партиция и не указан параметр granularity. Оракл додумался пересобрать глобальную статистику? А она нужна? Все эксперименты делались на отдельно взятой партиции и запрос натравливался именно на эту партицию. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2020, 13:14 |
|
Подделка гистограм?
|
|||
---|---|---|---|
#18+
sharkoff76 PuM256 Меня ещё немного смущает, что указана партиция и не указан параметр granularity. Оракл додумался пересобрать глобальную статистику? А она нужна? Все эксперименты делались на отдельно взятой партиции и запрос натравливался именно на эту партицию. Если в плане PARTITION RANGE SINGLE, то, наверное, и не очень нужна. sharkoff76 Как понять попала ли комбинация (TR_DATE, ID_DEBIT) ? - оракл вроде как кодит по своему усмотрению. Как в этом убедится? Для обслуживания расширенной статистики оракл добавляет в таблицу виртуальную колонку. Надо посмотреть её значение, а потом посмотреть гистограмму по этой виртуальной колонке в DBA_PART_HISTOGRAMS. В общем, мне что-то кажется, что вам обычной гистограммы по ID_DEBIT хватит, тем более если перекос и без даты наблюдается. А дата только мешает, так как очень сильно увеличивает количество возможных значений. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2020, 14:14 |
|
|
start [/forum/topic.php?fid=52&fpage=40&tid=1881040]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
59ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
38ms |
get tp. blocked users: |
2ms |
others: | 329ms |
total: | 472ms |
0 / 0 |