Измерение влияния индекса SQL Server на записи - PullRequest
1 голос
/ 17 октября 2011

У меня есть большая таблица, которая и интенсивно читается, и интенсивно пишется (добавляются только на самом деле).

Я хотел бы получить представление о том, как индексы влияют на скорость записи, в идеале - на затраченную продолжительность.обновляя их (в сравнении с продолжительностью вставки), но в остальном это своего рода чувство ресурсов, используемых исключительно для обслуживания индекса.

Это что-то, что существует в sqlserver / profiler где-нибудь?

Спасибо,

Ответы [ 2 ]

4 голосов
/ 17 октября 2011

Посмотрите на различные столбцы ...wait... в sys.dm_db_index_operational_stats.Это будет учитывать ожидания блокировок и блокировок, но не будет учитывать время записи журнала.Для записи в журнал вы можете сделать простую математику, основанную на размере строки (т. Е. Новый индекс шириной 10 байт для таблицы шириной 100 байт добавит 10% записи журнала), поскольку время записи журнала определяется только числомзаписано байтов.Счетчики Log Flush... в объекте базы данных будут измерять текущее общее время ожидания журнала в широкой БД.

В конечном счете, наилучшим измерением является сравнение базовой линии хорошо контролируемой тестовой нагрузки.

0 голосов
/ 17 октября 2011

Я не верю, что есть способ узнать продолжительность обновления, но вы можете проверить последнее обновление пользователя по индексу, запросив sys.dm_db_index_usage_stats .Это даст вам некоторую ключевую информацию о том, как часто индекс запрашивается и обновляется, и дату и время этой информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...