คุณอาจเห็นการปรับปรุงจากดัชนีที่มีเพียง 10 แถว
ในการทดสอบต่อไปนี้บนเครื่องของฉันรุ่นที่ไม่มีดัชนีเสร็จสมบูรณ์ในไม่10.5
กี่วินาทีและรุ่นที่มีดัชนีเป็น9.8
วินาที (สอดคล้องกันมากกว่า 3 วิ่ง)
ดัชนีในกรณีนี้ประกอบด้วย 1 leaf เพจ แต่เนื่องจากอาร์เรย์สล็อตถูกจัดเรียงตามลำดับคีย์ดัชนีการมีอยู่ทำให้ SQL Server เพิ่งส่งคืนแถวเดียวที่น่าสนใจแทนที่จะทำการรวมทั้งหมด 10
CREATE TABLE T
(
X INT,
Y CHAR(100) NULL
)
INSERT INTO T (X)
SELECT number
FROM master..spt_values
WHERE type='P' AND number BETWEEN 1 AND 10
set nocount on;
DECLARE @I INT, @X INT
DECLARE @Time DATETIME2(7) = SYSUTCDATETIME()
SET @I = 1
WHILE (@I < 1000000)
BEGIN
SELECT @X = MAX(X)
FROM T
SET @I += 1
END
SELECT DATEDIFF(MICROSECOND, @Time, SYSUTCDATETIME())
CREATE CLUSTERED INDEX IX ON T(X)
SET @Time = SYSUTCDATETIME()
SET @I = 1
WHILE (@I < 1000000)
BEGIN
SELECT @X = MAX(X)
FROM T
SET @I += 1
END
SELECT DATEDIFF(MICROSECOND, @Time, SYSUTCDATETIME())
DROP TABLE T