SET ROWCOUNT 1
остановит обработку после того, как будет возвращена первая строка, что означает, что если в плане нет оператора блокировки, результаты будут бесполезными.
Принимая тривиальный пример
SELECT * FROM TableX
Стоимость этого запроса на практике будет сильно зависеть от количества строк в TableX
.
Использование SET ROWCOUNT 1
не покажет ничего из этого. Независимо от того, будет ли TableX
иметь 1 строку или 1 миллиард строк, выполнение будет прекращено после возвращения первой строки.
Я часто присваиваю SELECT
результаты переменным, чтобы иметь возможность просматривать такие вещи, как логическое чтение, без замедления SSMS, отображающей результаты.
SET STATISTICS IO ON
DECLARE @name nvarchar(35),
@type nchar(3)
SELECT @name = name,
@type = type
FROM master..spt_values
Существует связанный запрос элемента подключения Предоставить опцию «Отменить результаты на сервере» в SSMS и / или TSQL