SQL Server 사용자를“볼륨 유지 관리 작업 수행”에 추가하면 데이터베이스 크기 조정 속도가 크게 향상되는 이유는 무엇입니까?


17

5GB 데이터베이스를 만들려면

CREATE DATABASE [test]
 CONTAINMENT = NONE
 ON  PRIMARY 
( NAME = N'test', FILENAME = N'E:\2012\test.mdf' , SIZE = 5529600KB , FILEGROWTH = 1024KB )
 LOG ON 
( NAME = N'test_log', FILENAME = N'E:\2012\test_log.ldf' , SIZE = 1024KB , FILEGROWTH = 10%)

SSD에서 1 분이 걸립니다 .

하지만 SQL Server 사용자를 추가하면 Perform volume maintenance tasks

여기에 이미지 설명을 입력하십시오

1-2 초 밖에 걸리지 않습니다 .

왜 그런 겁니까? 누군가 나에게 이것에 대한 이유를 설명 할 수 있습니까?


4
downvoters가 왜 downvotes를 설명 할 수 있습니까? 이것은 나에게 좋은 질문처럼 보입니다.
토마스 스트링거

답변:


26

즉석 파일 초기화 때문입니다 . 간단히 말해 SQL Server는 데이터베이스 데이터 파일 (트랜잭션 로그 파일이 아님)에 대해이 권한을 활용할 수 있습니다. 이것은 SQL Server가 초기화 할 때 데이터 파일을 제로화 할 필요 가 없다는 것을 의미 합니다.

SQL 서비스 계정에 "볼륨 유지 관리 작업 수행"권한이 없으면 데이터베이스를 만들 때 SQL Server에서 "test.mdf"및 "test_log.ldf"를 제거해야합니다.

"볼륨 유지 관리 작업 수행"권한 권한이 설정되면 SQL Server는 "test_log.ldf"만 제로화하면됩니다. 오버 헤드가 현저히 줄어들어 CREATE DATABASE테스트 기간이 최소화 됩니다.

참고 문헌
및 왜 즉시 파일 초기화 설정하는 방법
즉시 초기화 - 무엇을, 왜, 어떻게?


이 이음새는 기능이 뛰어나지 만 왜 기본 설정이 해제되어 있습니까?
ahmed abdelqader

1

최소한 MS 기사에 따르면 .ldf 파일 (로그 파일)에는 영향을 미치지 않습니다.

왜 그렇습니까? 속도

왜 안 해? 가능한 보안 위험. 누군가 귀하의 상자를 해킹하고 0이 아닌 메모리 공간을 읽고 해당 데이터를 검색 할 수 있습니다. 작은 위험이지만 여전히 위험합니다. 이것이 기본적으로 사용되지 않는 이유입니다.

자세한 설명 : 인스턴트 파일 초기화를 활성화하는 방법과 이유


독자에 대한 참고 사항 : 사람들이 서버를 해킹하고 삭제 된 파일에서 오래된 데이터를 읽는 것에 대해 걱정하는 경우 IFI를 끄는 것이 도움이 될 수 있지만 충분하다고 생각하는 것은 아닙니다. 그리고 삭제 된 파일을 덮어 쓰는 소프트웨어가 이미 있다면, 소프트웨어가 이미 공간을 제로로 만들었으므로 IFI를 켜도됩니다.
RDFozz

설치 중에 SQL Server 서비스 계정에이 권한을 부여하는 확인란 (SQL 2016 이상)이 있으므로 MS가 보안 측면에서 좀 더 완화 된 것 같습니다.
Gareth Lyons
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.