Для WITH SAMPLE 50 PERCENT
это работает , как если бы для каждой страницы данных в таблице SQL Server подбрасывает монету. Если он приземляется, он читает все строки на странице. Если это приземляется хвосты тогда, это не читает ни одного.
При отслеживании UPDATE STATISTICS T WITH SAMPLE 50 PERCENT
вызова в Profiler показывается следующий запрос
SELECT StatMan([SC0], [SB0000])
FROM (SELECT TOP 100 PERCENT [SC0],
step_direction([SC0]) OVER (ORDER BY NULL) AS [SB0000]
FROM (SELECT [C] AS [SC0]
FROM [dbo].[T] TABLESAMPLE SYSTEM (5.000000e+001 PERCENT)
WITH (READUNCOMMITTED)) AS _MS_UPDSTATS_TBL_HELPER
ORDER BY [SC0],
[SB0000]) AS _MS_UPDSTATS_TBL
OPTION (MAXDOP 1)
С планом
TABLESAMPLE SYSTEM (5.000000e+001 PERCENT)
отвечает за отбор проб и документирован здесь
TABLESAMPLE SYSTEM
возвращает приблизительный процент строк и генерирует случайное значение для каждой физической 8-килобайтной страницы в таблице. На основе случайного значения для страницы и процента, указанного в запросе, страница либо включается в образец, либо исключается. Каждая включенная страница возвращает все строки в наборе результатов выборки.
В документации также говорится
Несмотря на то, что план показывает, что сканирование таблицы выполняется, только те страницы, которые включены в набор результатов, фактически должны быть прочитаны из файла данных.
STATMAN
Вызов на внутренний агрегатная функция кратко описаны здесь