Как проанализировать фактический план выполнения и создать некластеризованный индекс, чтобы помочь запросу

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

Для запроса 17 пять операторов выбора объединяются вместе, и из объединенного набора выбираются отдельные строки.

Я новичок в этой части SQL, и мне любопытно, что:

  1. почему стоимость запроса 17 такая низкая, но на самом деле занимает больше всего времени выполнения;
  2. есть пять выделенных блоков, на завершение которых ушло около 50 секунд, но их стоимость также очень низкая;
  3. общее время выполнения 1 мин 59 сек, однако сумма пяти блоков около 4 мин;
  4. не уверен, что предоставил достаточно информации, но есть ли способы улучшить эту хранимую процедуру? Я добавил некластеризованный индекс, чтобы помочь, но кажется, что индекс не использовался.

введите здесь описание изображения


person Harry    schedule 06.07.2020    source источник
comment
Это не вопрос программирования; скорее он принадлежит dba.stackexchange.com   -  person Dale K    schedule 06.07.2020
comment
Скриншоты планов выполнения не будут хорошо приняты, потому что они скрывают большую часть полезной информации, необходимой для диагностики. Следуйте инструкциям здесь, чтобы получить план XML и использовать такие средства, как https://www.brentozar.com/pastetheplan/.   -  person AlwaysLearning    schedule 07.07.2020