สำหรับการ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-KB ในตาราง ขึ้นอยู่กับค่าสุ่มสำหรับหน้าและร้อยละที่ระบุในแบบสอบถามหน้าจะรวมอยู่ในตัวอย่างหรือยกเว้น แต่ละหน้าที่รวมจะส่งคืนแถวทั้งหมดในชุดผลลัพธ์ตัวอย่าง
เอกสารยังระบุ
แม้ว่าแผนจะแสดงการสแกนตารางจะดำเนินการเฉพาะหน้าเว็บที่รวมอยู่ในชุดผลลัพธ์เท่านั้นที่จำเป็นต้องอ่านจากไฟล์ข้อมูล
การSTATMAN
โทรคือฟังก์ชั่นการรวมภายในที่อธิบายไว้สั้น ๆ ที่นี่