|
|
|
Посоветуйте что-нибудь получше V$OBJECT_USAGE
|
|||
|---|---|---|---|
|
#18+
Накопилось достаточно легаси индексов, и нужно выяснить, какие из них нужны, а какие не очень. V$OBJECT_USAGE показывает только YES/NO, а хотелось бы знать насколько ЧАСТО/РЕДКО или время последнего доступа. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2017, 17:45 |
|
||
|
Посоветуйте что-нибудь получше V$OBJECT_USAGE
|
|||
|---|---|---|---|
|
#18+
--Eugene--, V$SEGMENT_STATISTICS ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2017, 18:09 |
|
||
|
Посоветуйте что-нибудь получше V$OBJECT_USAGE
|
|||
|---|---|---|---|
|
#18+
Добрый Э - Эх, Спасибо Похоже, DBA_HIST_SEG_STAT содержит более полную информацию. Только какую метрику лучше смотреть для определения частоты использования индекса? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2017, 19:15 |
|
||
|
Посоветуйте что-нибудь получше V$OBJECT_USAGE
|
|||
|---|---|---|---|
|
#18+
--Eugene--, ну, как бы, логично - V$SEGMENT_STATISTICS содержит статистические данные по сегментам от момента сбора по ним статистики, до следующего такого момента. А DBA_HIST_SEG_STAT - хранит историю, и при сборе статистики не сбрасывается. А смотреть нужно не на абсолютные значения чисел, а на их относительность друг друга. Как там Том писал - ориентироваться нужно на соотношения кол-ва чтений и записей по индексу. Если чтений сильно больше чем записей, значит индекс используется в Select-ах. Если их соотношение примерно равно или записей по индексу больше, чем чтений - значит индекс "мертвый" и читается только DML-операторами для последующей модификации. Соответственно, подобрав приемлемое соотношение между этими значениями можно выбрать индексы - кандидаты на удаление ввиду их неиспользуемости в селектах... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2017, 04:50 |
|
||
|
Посоветуйте что-нибудь получше V$OBJECT_USAGE
|
|||
|---|---|---|---|
|
#18+
Посмотрите здесь https://jonathanlewis.wordpress.com/2015/09/01/index-usage-3/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2017, 06:49 |
|
||
|
Посоветуйте что-нибудь получше V$OBJECT_USAGE
|
|||
|---|---|---|---|
|
#18+
Добрый Э - Эхориентироваться нужно на соотношения кол-ва чтений и записей по индексувы имеете в виду "logical reads" и "db block changes"? там просто много всяких reads/writes.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2017, 11:52 |
|
||
|
Посоветуйте что-нибудь получше V$OBJECT_USAGE
|
|||
|---|---|---|---|
|
#18+
--Eugene--, ну да. Льюис, в частности, именно этими значениями и оперирует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2017, 12:24 |
|
||
|
Посоветуйте что-нибудь получше V$OBJECT_USAGE
|
|||
|---|---|---|---|
|
#18+
Добрый Э - Эх, как каков по-вашему критерий полезности индекса? вот в статье, которую любезно предоставил AlexAA, если "db block changes" > "logical reads"/3, то такой индекс считается бесполезным и кандидатом на удаление ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2017, 17:35 |
|
||
|
Посоветуйте что-нибудь получше V$OBJECT_USAGE
|
|||
|---|---|---|---|
|
#18+
--Eugene--, отсортируй по "logical reads" / "db block changes" и начни удалять с начала. Остановишься, когда заметишь пользу :) Можно ещё связать v$sql_plan, с v$sql и с dba_indexes и посмотреть кол-во выполнений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2017, 20:37 |
|
||
|
Посоветуйте что-нибудь получше V$OBJECT_USAGE
|
|||
|---|---|---|---|
|
#18+
--Eugene--, Небольшое уточнение --Eugene--...если "db block changes" > "logical reads"/3, то такой индекс считается бесполезным и кандидатом на удаление Льюис пишет, что это при level = 3, т.е. чтобы изменить один блок индекса - надо выполнить 3 чтения для поиска этого блока. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2017, 07:30 |
|
||
|
Посоветуйте что-нибудь получше V$OBJECT_USAGE
|
|||
|---|---|---|---|
|
#18+
--Eugene--, можно еще заодно проверить по ash, но там не будет мелких запросов: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2017, 09:49 |
|
||
|
Посоветуйте что-нибудь получше V$OBJECT_USAGE
|
|||
|---|---|---|---|
|
#18+
Я как-то такое рисовал Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2017, 10:12 |
|
||
|
Посоветуйте что-нибудь получше V$OBJECT_USAGE
|
|||
|---|---|---|---|
|
#18+
--Eugene--, Если индекс используется редко или даже очень редко , это не значит, что он не очень нужен. Вы же не выбрасываете вещь, которой пользуетесь раз-два в году. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2017, 10:55 |
|
||
|
Посоветуйте что-нибудь получше V$OBJECT_USAGE
|
|||
|---|---|---|---|
|
#18+
По поводу частоты использования можно включать и выключать мониторинг индексов раз в день, час ... v$object_usage будет отражать информацию за этот период. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2017, 11:04 |
|
||
|
Посоветуйте что-нибудь получше V$OBJECT_USAGE
|
|||
|---|---|---|---|
|
#18+
fortnetЕсли индекс используется редко или даже очень редко , это не значит, что он не очень нужен. Вы же не выбрасываете вещь, которой пользуетесь раз-два в году. А может быть, в таком случае, нужно рассматривать возможность управления статусом (части)индекса? Если продолжать Ваш пример, обычно не хранят вещи, которыми пользуются раз в год, вместе/рядом с вещами для ежедневного пользования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2017, 11:18 |
|
||
|
Посоветуйте что-нибудь получше V$OBJECT_USAGE
|
|||
|---|---|---|---|
|
#18+
n0rd1c.c0ldfortnetЕсли индекс используется редко или даже очень редко , это не значит, что он не очень нужен. Вы же не выбрасываете вещь, которой пользуетесь раз-два в году. А может быть, в таком случае, нужно рассматривать возможность управления статусом (части)индекса? Статусом - перевод в UNUSABLE ? n0rd1c.c0ldЕсли продолжать Ваш пример, обычно не хранят вещи, которыми пользуются раз в год, вместе/рядом с вещами для ежедневного пользования. Ну именно этот вопрос (именно об индексах) в БД слишком тонкая материя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2017, 11:33 |
|
||
|
Посоветуйте что-нибудь получше V$OBJECT_USAGE
|
|||
|---|---|---|---|
|
#18+
fortnetn0rd1c.c0ldА может быть, в таком случае, нужно рассматривать возможность управления статусом (части)индекса? Статусом - перевод в UNUSABLE ? да + invisible(в случае полного индекса) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2017, 12:34 |
|
||
|
Посоветуйте что-нибудь получше V$OBJECT_USAGE
|
|||
|---|---|---|---|
|
#18+
А что, INVISIBLE индекс не обновляется? А перевод в UNUSABLE индекса поддерживающего уникальный/первичный ключ -- это чтоб сделать табличку READ ONLY? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2017, 12:47 |
|
||
|
Посоветуйте что-нибудь получше V$OBJECT_USAGE
|
|||
|---|---|---|---|
|
#18+
fortnetn0rd1c.c0ldfortnetЕсли индекс используется редко или даже очень редко , это не значит, что он не очень нужен. Вы же не выбрасываете вещь, которой пользуетесь раз-два в году.... статусом ..?... перевод в UNUSABLE ?А смысл держать его в базе в состоянии зомби? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2017, 13:02 |
|
||
|
Посоветуйте что-нибудь получше V$OBJECT_USAGE
|
|||
|---|---|---|---|
|
#18+
Вячеслав ЛюбомудровА что, INVISIBLE индекс не обновляется? А что, мною где-то такое написано? Вячеслав ЛюбомудровА перевод в UNUSABLE индекса поддерживающего уникальный/первичный ключ -- это чтоб сделать табличку READ ONLY? n0rd1c.c0ldА может быть, в таком случае, нужно рассматривать возможность управления статусом (части)индекса? Как видится, императив о переводе в статус UNUSABLE, отсутствует. Или это был не вопрос? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2017, 13:06 |
|
||
|
Посоветуйте что-нибудь получше V$OBJECT_USAGE
|
|||
|---|---|---|---|
|
#18+
Ты вообще топик не читаешь, даже свои посты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2017, 13:09 |
|
||
|
Посоветуйте что-нибудь получше V$OBJECT_USAGE
|
|||
|---|---|---|---|
|
#18+
Вячеслав Любомудров, ну, в принципе, про "часть индекса", возможно идея неплоха. тут наверно можно использовать PARTIAL (если индекс секционированный, ессно). поправьте, если жестко туплю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2017, 13:37 |
|
||
|
Посоветуйте что-нибудь получше V$OBJECT_USAGE
|
|||
|---|---|---|---|
|
#18+
Тут, мне кажется, надо исходить из цели -- чего ты добиваешься -- "лишние" индексы занимают место -- "лишние" индексы обновляются при DML -- "лишние" индексы могут быть причиной неоптимальных планов С другой стороны, индексы, поддерживающие PK/UK как не вертись нужны, и, как правило, планы они не портят. Перевод их в UNUSABLE запрещает изменять/добавлять данные в этих ключах в таблице. Индексы, поддерживающие внешние ключи в дочерних таблицах -- тут засада. Как правило, они нужны только в случае если в родительской таблице удаляются/изменяются ссылочные ключи. Если такой деятельности нет -- их легко можно и удалить. С другой стороны, если они таки нужны по каким-то причинам, они часто (ну или я предвзят) портят план, чтоб это не происходило их можно перевести в INVISIBLE -- от этого они не перестанут потреблять место и снижать производительность DML, но хоть не будут учитываться оптимизатором при составлении плана. Перевод в UNUSABLE части (PARTITION) локального индекса не вижу смысла -- если он для поддержки PK/UK -- так и переводи его в Read Only вместе с секцией таблицы (правда место он будет занимать). Если он поддерживает FK -- см.выше, хотя если соответствующая секция таблицы в RO, то можно и в UNUSABLE, освободить место (много ли?). Опять же, иногда требуется возвращать секцию обратно RO -> RW. Что же, перестраивать все эти секции индексов обратно? Что касается не локально-секционированных, то тут вообще трудно выбрать какой-то критерий Если индекс юзается раз-два в год, на мой взгляд, проще его построить перед и убить после использования, чем весь год терпеть небольшое, но таки влияние на производительность (да и место в бэкапе занимает). Ну или да, если он не используется для поддержки PK/UK -- может и есть смысл перевести его в UNUSABLE, чтоб не забыть DDL создания, но терпеть в БД полгода объекты со статусом UNUSABLE мне как-то не нравится ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2017, 14:42 |
|
||
|
Посоветуйте что-нибудь получше V$OBJECT_USAGE
|
|||
|---|---|---|---|
|
#18+
И, кстати, индексы для поддержки FK, как правило, очень хорошие кандидаты для сжатия ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2017, 09:30 |
|
||
|
Посоветуйте что-нибудь получше V$OBJECT_USAGE
|
|||
|---|---|---|---|
|
#18+
Читаю в доке описание к DBA_HIST_SEG_STAT. Информации с гулькин нос, и непонятны следующие моменты: 1) This view captures the top segments based on a set of criteria and captures information from V$SEGSTAT. Где посмотреть и можно ли изменить эти самые критерии попадания статистик по сегментам в ТОП? 2) The total value is the value of the statistics since instance startup. Если данные в этом представлении накопительные с момента запуска инстанса, то почему у меня по многим сегментам наблюдаются скачки вниз значений *_TOTAL? С дельтой понятно - она пляшет вашим-нашим и зависит от "плотности нагрузки" между двумя соседними моментами SNAP_ID, но *_TOTAL же должен быть нарастающий? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2017, 06:45 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39402048&tid=1886456]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
166ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 234ms |
| total: | 499ms |

| 0 / 0 |
