Вы когда-нибудь задавались вопросом, что означает количество сканирований при включении опции 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 для получения более информативного контента.