Published on

October 16, 2020

Понимание количества сканирований в SQL Server

Вы когда-нибудь задавались вопросом, что означает количество сканирований при включении опции SET STATISTICS IO ON в SQL Server? В этой статье мы рассмотрим понятие количества сканирований и его значение в SQL Server.

При выполнении SQL-запроса с включенной опцией SET STATISTICS IO ON, SQL Server отображает статистику, связанную с вводом-выводом, во вкладке сообщений. Одной из отображаемых статистик является количество сканирований, которое предоставляет информацию о количестве поисков или сканирований индексов, которые произошли во время выполнения запроса.

Количество сканирований может иметь три разных значения:

  • Количество сканирований равно нулю (0): это указывает на то, что произошло поисковое сканирование по первичному ключу.
  • Количество сканирований равно 1: это указывает на то, что произошло поисковое сканирование или сканирование по неуникальному не первичному ключу.
  • Количество сканирований больше 1: это указывает на то, что произошло несколько поисков или сканирований.

Давайте рассмотрим несколько простых скриптов, чтобы лучше понять это понятие.

Скрипт 1:

SET STATISTICS IO ON
SELECT *
FROM [WideWorldImporters].[Purchasing].[SupplierCategories]
WHERE SupplierCategoryID = 3

Выполнение вышеприведенного скрипта приведет к следующему результату:

Таблица 'SupplierCategories'. Количество сканирований 0, логические чтения 2

Поскольку произошло поисковое сканирование по первичному ключу, количество сканирований равно нулю.

Скрипт 2:

SET STATISTICS IO ON
SELECT *
FROM [WideWorldImporters].[Purchasing].[SupplierCategories]
WHERE LastEditedBy = 1

Выполнение вышеприведенного скрипта приведет к следующему результату:

Таблица 'SupplierCategories'. Количество сканирований 1, логические чтения 2

В этом случае происходит сканирование кластеризованного индекса, поэтому количество сканирований равно одному.

Понимание количества сканирований может предоставить ценную информацию о производительности ваших SQL-запросов. Анализируя количество сканирований, вы можете определить, используются ли индексы эффективно или есть ли потенциальные узкие места производительности.

Если у вас есть вопросы или вы хотите узнать больше об этой теме, пожалуйста, оставьте комментарий ниже. И не забудьте посмотреть наше видео по похожей теме: SET STATISTICS TIME ON – SQL за шестьдесят секунд 139. Вы также можете подписаться на наш канал YouTube для получения более информативного контента.

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.