8GB RAM hyper-v 상자에서 SQL Server 2012에 대한 빠른 테스트를 실행했습니다. 당신은 자신에 대한 결과를 볼 수 있습니다. 이 테스트를 실행하는 동안 SQL Server Management Studio 외에 다른 창 응용 프로그램을 실행하지 않았습니다.
내 테이블 스키마 :
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
총 레코드 수 Employee
테이블 : 178090131 (~ 1 억 7,800 만 행)
첫 번째 질문 :
Set Statistics Time On
Go
Select Count(*) From Employee
Go
Set Statistics Time Off
Go
첫 번째 쿼리 결과 :
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.
두 번째 쿼리 :
Set Statistics Time On
Go
Select Count(1) From Employee
Go
Set Statistics Time Off
Go
두 번째 쿼리 결과 :
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.
쿼리가 실행될 때 정확한 시스템 상태에 쉽게 기인 할 수있는 83 (= 70265-70182) 밀리 초의 차이가 있음을 알 수 있습니다. 또한 단일 실행을 수행 했으므로 여러 번 실행하고 평균을 구하면이 차이가 더 정확 해집니다. 이러한 거대한 데이터 집합의 경우 차이가 100 밀리 초 미만이면 두 쿼리에 SQL Server 엔진의 성능 차이가 없다고 쉽게 결론을 내릴 수 있습니다.
참고 : 두 실행에서 RAM 사용량이 거의 100 %에 달합니다. 두 실행을 모두 시작하기 전에 SQL Server 서비스를 다시 시작했습니다.