Влияние на производительность обновления индекса в SQL Server? - PullRequest
0 голосов
/ 06 марта 2019

Я работаю над оптимизацией базы данных.Мне интересно, как это влияет на производительность, когда обновление выполняется для столбца некластеризованного индекса, когда в таблице ~ 9 000 000 записей.

Я знаю, что обновление столбца кластерного индекса связано с «физическим» перемещением данных.А как насчет некластеризованного?

Я смотрю на индекс, который используется для поиска 68 раз, но обновляется 208 000 раз с ~ 9 000 000 записей (не уникально).Я пытаюсь определить компромисс производительности.Без индекса полное сканирование таблицы использовалось бы 68 раз вместо поиска (со временем выполнения N = ~9.000.000).Это хуже, чем обновление индекса 208 000 раз?

Спасибо

Ответы [ 2 ]

1 голос
/ 06 марта 2019

Из вашего вопроса видно, что индекс тяжелый при записи и редко читается при сравнении 208 тыс. Раз с 68-кратным.

Но вы можете удалить индекс? это зависит.

  • Если у вас есть соглашение об уровне обслуживания, чтобы всегда быстрее возвращать данные в 68 раз. Затем, держи указатель.

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

1 голос
/ 06 марта 2019

Пройдет некоторое время, прежде чем индекс будет создан, поскольку некластеризованный индекс занимает свое собственное пространство хранения.Это не так плохо, как добавление / изменение кластеризованного индекса, который должен переупорядочить и перезаписать данные всей таблицы.

Однако вопрос не столько в одном случае, который будетнужно создать.Вместо этого вы должны решить, будут ли дополнительные затраты на сервер, поддерживающий этот индекс при каждой операции вставки, обновления и удаления, более быстрыми запросами, которые этот индекс поможет обеспечить.Если данные читаются из этой таблицы гораздо чаще, чем изменяются, или если существует много / частых запросов, использующих этот индекс, продолжайте.Если ничто из перечисленных фактов не соответствует действительности, лучше не создавать его.

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