回答:
以下のためのWITH SAMPLE 50 PERCENT
各データ・ページ用のテーブルにSQL Serverは、コインを反転しているかのようにそれが動作します。頭に着くと、ページ上のすべての行を読み取ります。尾が着地した場合は、何も表示されません。
UPDATE STATISTICS T WITH SAMPLE 50 PERCENT
プロファイラーで呼び出しをトレースすると、次のクエリが発行されることが示されます
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 KBページごとにランダムな値を生成します。ページのランダム値とクエリで指定されたパーセンテージに基づいて、ページはサンプルに含まれるか、除外されます。含まれる各ページは、サンプル結果セットのすべての行を返します。
ドキュメントには、
プランはテーブルスキャンが実行されることを示していますが、結果セットに含まれているページのみが実際にデータファイルから読み取る必要があります。
STATMAN
コールは、内部集約関数にあり、ここで簡単に説明します