добавлено: 17 фев 17
понравилось:0
просмотров: 2882
комментов: 0
теги:
понравилось:0
просмотров: 2882
комментов: 0
теги:
- disable_parameter_sniffing
- sql server 2016 sp1
- use hint
- parameter sniffing
- прослушивание параметров
- tf 4136
Автор: SomewhereSomehow
Прослушивание параметров — это прием оптимизации, который позволяет использовать значения параметров модуля (например, хранимой процедуры или функции), во время первого вызова, для оценки предполагаемого числа строк при построении плана.
Прослушивание параметров в большинстве случаев полезная вещь, но эта техника плохо работает если значения параметров сильно отличаются по селективности. Например, в случае если для одного значения параметра выбирается 99% строк таблицы, а для второго 1% — серверу может быть выгодно использовать разные планы. Один план будет более эффективен для большего числа строк, второй для меньшего.
Однако, если работает прослушивание параметров, план будет построен для того значения, что было передано при первом вызове. Если для этого значения выбирается небольшое число строк, будет построен план выгодный для получения небольшого числа строк. Когда значение параметра изменится так, что процедура должна будет вернуть гораздо больше строк, план останется «старым», эффективным для небольшого числа строк. Давайте рассмотрим простой пример, который иллюстрирует проблему.
Читать дальше...
Прослушивание параметров в большинстве случаев полезная вещь, но эта техника плохо работает если значения параметров сильно отличаются по селективности. Например, в случае если для одного значения параметра выбирается 99% строк таблицы, а для второго 1% — серверу может быть выгодно использовать разные планы. Один план будет более эффективен для большего числа строк, второй для меньшего.
Однако, если работает прослушивание параметров, план будет построен для того значения, что было передано при первом вызове. Если для этого значения выбирается небольшое число строк, будет построен план выгодный для получения небольшого числа строк. Когда значение параметра изменится так, что процедура должна будет вернуть гораздо больше строк, план останется «старым», эффективным для небольшого числа строк. Давайте рассмотрим простой пример, который иллюстрирует проблему.
Читать дальше...
Комментарии