powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / ASE 12.5. Как узнать где используется конкретный индекс
8 сообщений из 8, страница 1 из 1
ASE 12.5. Как узнать где используется конкретный индекс
    #35515889
olddc93
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!

Задача: убить индекс (в случае, если он не используется) на таблице.

Каким образом можно на работающей (в том смысле, что включать и логировать планы запросов для всего подряд невозможно) системе определить дергает ли ктонибудь этот индекс?

Есть ли какие-то средства "мониторинга" при котором записывается текст запроса (использующий искомый индекс) в лог?

Или, может быть, есть какие-то другие подходы к решению такой задачи?
...
Рейтинг: 0 / 0
ASE 12.5. Как узнать где используется конкретный индекс
    #35515969
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
olddc93 пишет:

> Каким образом можно на работающей (в том смысле, что включать и
> логировать планы запросов для всего подряд невозможно) системе
> определить дергает ли ктонибудь этот индекс?

Убить-то его можно по-любому, ничего не сломается.
Только жаловаться будет иногда, но это - warning.

> Есть ли какие-то средства "мониторинга" при котором записывается текст
> запроса (использующий искомый индекс) в лог?

И да, и нет. Напрямую такого нет. Есть возможность включить дампы планов
всех запросов, потом подождать, собрать все планы запросов, потом
слить их куда-то и поискать там этот индекс. Но это очень объёмная работа
и она не гарантирует результат: нет уверенности, что за наблюдаемый период
выполняться все запросы, а поэтому будет какая-то вероятность, что индекс
всё же используется кем-то, но ты его не нашёл.

> Или, может быть, есть какие-то другие подходы к решению такой задачи?
Метод тыка - дропнуть, запомнив, что был за индекс, и посмотреть, что получится.
Если что - создать его заново обратно.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
ASE 12.5. Как узнать где используется конкретный индекс
    #35516480
cherrex_Den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подобный мониторинг я находил в DBArtisan! Но логику вычисления этого индекса(редко используемого) я так и не понял! Хотя сложилось впечатление что это статистика собирается не за время работы DBArtisan а как-то "все время"!
...
Рейтинг: 0 / 0
ASE 12.5. Как узнать где используется конкретный индекс
    #35518327
olddc93
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv

Убить-то его можно по-любому, ничего не сломается.
Только жаловаться будет иногда, но это - warning.


да это то ладно, а вот как возмет сервак, да как "зависнет" над каким нибудь запросом в пятницу ночью :)

И да, и нет. Напрямую такого нет. Есть возможность включить дампы планов
всех запросов, потом подождать, собрать все планы запросов, потом
слить их куда-то и поискать там этот индекс. Но это очень объёмная работа
и она не гарантирует результат: нет уверенности, что за наблюдаемый период
выполняться все запросы, а поэтому будет какая-то вероятность, что индекс
всё же используется кем-то, но ты его не нашёл.


это очень много, потом (я не уверен) и нагрузка на сервер возрастет от создания этих дампов, а сервер и так загружен (почти что критически)

Метод тыка - дропнуть, запомнив, что был за индекс, и посмотреть, что получится.
Если что - создать его заново обратно.


это тестировать надо всю систему :), да еще и эмулировать загрузку как на боевой, слишком дорогое удовольствие и долгое

cherrex_Den
Подобный мониторинг я находил в DBArtisan!

А как эта команда/опция называлась?
...
Рейтинг: 0 / 0
ASE 12.5. Как узнать где используется конкретный индекс
    #35518619
cherrex_Den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DBArtisan это программа мониторинга(и не только) серверов СУБД! Она не Sybase-овская, а какого-то другого производителя.

После выбора сервера нажимаешь «SpaceAnalyst»(MainMenu-> Analyst), потом выбираешь базу и клацаешь по вкладке «Indexes», затем жмешь «Refresh» и смотришь колонку "Unused Percent"
и смотриш колонку "Unused Percent"
...
Рейтинг: 0 / 0
ASE 12.5. Как узнать где используется конкретный индекс
    #35518995
up
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
...
Рейтинг: 0 / 0
ASE 12.5. Как узнать где используется конкретный индекс
    #35519020
Фотография Zhora
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
www.edbarlow.com
...
Рейтинг: 0 / 0
ASE 12.5. Как узнать где используется конкретный индекс
    #35521048
olddc93
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем откликнувшимся.

Видимо без включения общего мониторинга (через mda) не обойтись.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / ASE 12.5. Как узнать где используется конкретный индекс
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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