|
|
|
ASE 12.5. Как узнать где используется конкретный индекс
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Задача: убить индекс (в случае, если он не используется) на таблице. Каким образом можно на работающей (в том смысле, что включать и логировать планы запросов для всего подряд невозможно) системе определить дергает ли ктонибудь этот индекс? Есть ли какие-то средства "мониторинга" при котором записывается текст запроса (использующий искомый индекс) в лог? Или, может быть, есть какие-то другие подходы к решению такой задачи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2008, 13:06 |
|
||
|
ASE 12.5. Как узнать где используется конкретный индекс
|
|||
|---|---|---|---|
|
#18+
olddc93 пишет: > Каким образом можно на работающей (в том смысле, что включать и > логировать планы запросов для всего подряд невозможно) системе > определить дергает ли ктонибудь этот индекс? Убить-то его можно по-любому, ничего не сломается. Только жаловаться будет иногда, но это - warning. > Есть ли какие-то средства "мониторинга" при котором записывается текст > запроса (использующий искомый индекс) в лог? И да, и нет. Напрямую такого нет. Есть возможность включить дампы планов всех запросов, потом подождать, собрать все планы запросов, потом слить их куда-то и поискать там этот индекс. Но это очень объёмная работа и она не гарантирует результат: нет уверенности, что за наблюдаемый период выполняться все запросы, а поэтому будет какая-то вероятность, что индекс всё же используется кем-то, но ты его не нашёл. > Или, может быть, есть какие-то другие подходы к решению такой задачи? Метод тыка - дропнуть, запомнив, что был за индекс, и посмотреть, что получится. Если что - создать его заново обратно. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2008, 13:46 |
|
||
|
ASE 12.5. Как узнать где используется конкретный индекс
|
|||
|---|---|---|---|
|
#18+
Подобный мониторинг я находил в DBArtisan! Но логику вычисления этого индекса(редко используемого) я так и не понял! Хотя сложилось впечатление что это статистика собирается не за время работы DBArtisan а как-то "все время"! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2008, 16:55 |
|
||
|
ASE 12.5. Как узнать где используется конкретный индекс
|
|||
|---|---|---|---|
|
#18+
MasterZiv Убить-то его можно по-любому, ничего не сломается. Только жаловаться будет иногда, но это - warning. да это то ладно, а вот как возмет сервак, да как "зависнет" над каким нибудь запросом в пятницу ночью :) И да, и нет. Напрямую такого нет. Есть возможность включить дампы планов всех запросов, потом подождать, собрать все планы запросов, потом слить их куда-то и поискать там этот индекс. Но это очень объёмная работа и она не гарантирует результат: нет уверенности, что за наблюдаемый период выполняться все запросы, а поэтому будет какая-то вероятность, что индекс всё же используется кем-то, но ты его не нашёл. это очень много, потом (я не уверен) и нагрузка на сервер возрастет от создания этих дампов, а сервер и так загружен (почти что критически) Метод тыка - дропнуть, запомнив, что был за индекс, и посмотреть, что получится. Если что - создать его заново обратно. это тестировать надо всю систему :), да еще и эмулировать загрузку как на боевой, слишком дорогое удовольствие и долгое cherrex_Den Подобный мониторинг я находил в DBArtisan! А как эта команда/опция называлась? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2008, 15:25 |
|
||
|
ASE 12.5. Как узнать где используется конкретный индекс
|
|||
|---|---|---|---|
|
#18+
DBArtisan это программа мониторинга(и не только) серверов СУБД! Она не Sybase-овская, а какого-то другого производителя. После выбора сервера нажимаешь «SpaceAnalyst»(MainMenu-> Analyst), потом выбираешь базу и клацаешь по вкладке «Indexes», затем жмешь «Refresh» и смотришь колонку "Unused Percent" и смотриш колонку "Unused Percent" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2008, 16:44 |
|
||
|
ASE 12.5. Как узнать где используется конкретный индекс
|
|||
|---|---|---|---|
|
#18+
MDA таблицы. Таблица зовётся monOpenObjectActivity. Колонка зовётся OptSelectCount. Даже вот Вам и сам запрос, который показывает какие индексы не использовались вообще с момента старта ASE: -- The following finds all indexes that are not currently used in an application or server: select DBID , ObjectID, IndexID , object_name(ObjectID, DBID) from monOpenObjectActivity where DBID = db_id("MAIN") and OptSelectCount = 0 Или так: -- The last time all indexes for a specific object were selected select DBID, ObjectID, IndexID, OptSelectCount, LastOptSelectDate, UsedCount, LastUsedDate from monOpenObjectActivity where DBID = db_id("MAIN") and IndexID>=1 order by UsedCount ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2008, 20:01 |
|
||
|
ASE 12.5. Как узнать где используется конкретный индекс
|
|||
|---|---|---|---|
|
#18+
www.edbarlow.com ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2008, 20:26 |
|
||
|
|

start [/forum/topic.php?fid=55&gotonew=1&tid=2011401]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
56ms |
get topic data: |
12ms |
get first new msg: |
8ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 244ms |
| total: | 408ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...