Индексы SQL Server INSERT / UPDATE Производительность - PullRequest
2 голосов
/ 15 марта 2012

Я знаю, что индексы снижают производительность вставки / обновления, но я пытаюсь устранить неполадки и определить правильный баланс между производительностью запросов и производительностью вставки / обновления.

Мы создали несколько представлений (около 20) для некоторых действительно сложных запросов. Они очень медленны для поиска по ключам (сканирование может занять от 5 до 10 ключей в течение 20 секунд).

Индексирование этих представлений (с кластеризованными и некластеризованными индексами в различных ключевых столбцах) повышает их производительность в диапазоне от 80x до 100x. Это также снижает производительность вставки / обновления до такой степени, что сценарию, который вставляет около 100 строк в различные связанные таблицы, требуется около 45 секунд для выполнения вместо мгновенного.

Я бы предпочел не идти по маршруту OLAP для этих представлений (это добавило бы целый новый уровень сложности .... и представления в настоящее время обновляются, что может создать проблему обратной синхронизации) ... так что я пытаюсь выяснить, как сбалансировать производительность запросов с производительностью вставки / обновления.

Может, кто-нибудь подскажет, как диагностировать конкретные индексы проблем - и возможные пути снижения их влияния на вставки / обновления?

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

Спасибо.

1 Ответ

0 голосов
/ 05 февраля 2019

Для этого сценария, пожалуйста, используйте отфильтрованные индексы по одному столбцу и избегайте составных, которые имеют более двух столбцов.

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