Tôi đã chạy thử nghiệm nhanh trên SQL Server 2012 trên hộp hyper-v RAM 8 GB. Bạn có thể xem kết quả cho chính mình. Tôi đã không chạy bất kỳ ứng dụng cửa sổ nào khác ngoài SQL Server Management Studio trong khi chạy các thử nghiệm này.
Lược đồ bảng của tôi:
CREATE TABLE [dbo].[employee](
[Id] [bigint] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](50) NOT NULL,
CONSTRAINT [PK_employee] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
Tổng số bản ghi trong Employee
bảng: 178090131 (~ 178 triệu hàng)
Truy vấn đầu tiên:
Set Statistics Time On
Go
Select Count(*) From Employee
Go
Set Statistics Time Off
Go
Kết quả của truy vấn đầu tiên:
SQL Server parse and compile time:
CPU time = 0 ms, elapsed time = 35 ms.
(1 row(s) affected)
SQL Server Execution Times:
CPU time = 10766 ms, elapsed time = 70265 ms.
SQL Server parse and compile time:
CPU time = 0 ms, elapsed time = 0 ms.
Truy vấn thứ hai:
Set Statistics Time On
Go
Select Count(1) From Employee
Go
Set Statistics Time Off
Go
Kết quả của truy vấn thứ hai:
SQL Server parse and compile time:
CPU time = 14 ms, elapsed time = 14 ms.
(1 row(s) affected)
SQL Server Execution Times:
CPU time = 11031 ms, elapsed time = 70182 ms.
SQL Server parse and compile time:
CPU time = 0 ms, elapsed time = 0 ms.
Bạn có thể nhận thấy có sự khác biệt 83 (= 70265 - 70182) mili giây có thể dễ dàng được quy cho tình trạng hệ thống chính xác tại thời điểm truy vấn được chạy. Ngoài ra tôi đã thực hiện một lần chạy, vì vậy sự khác biệt này sẽ trở nên chính xác hơn nếu tôi thực hiện một vài lần chạy và thực hiện một số phép tính trung bình. Nếu với tập dữ liệu khổng lồ như vậy, sự khác biệt sẽ đến dưới 100 mili giây, thì chúng ta có thể dễ dàng kết luận rằng hai truy vấn không có bất kỳ sự khác biệt về hiệu năng nào được trình bày bởi SQL Server Engine.
Lưu ý : RAM đạt mức sử dụng gần 100% trong cả hai lần chạy. Tôi đã khởi động lại dịch vụ SQL Server trước khi bắt đầu cả hai lần chạy.