如果我想创建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分钟。
但是当我将Server用户添加到Perform volume maintenance tasks时

只需要1-2秒。
发布于 2015-02-27 16:12:27
那是因为即时文件初始化。简而言之,Server可以利用数据库数据文件(而不是事务日志文件)的这一特权。这意味着Server在初始化时不必将数据文件(S)清零。
在没有授予Service帐户的“执行卷维护任务”特权的情况下,在创建数据库时,Server需要将"test.mdf“和"test_log.ldf”归零。
使用“执行卷维护任务”特权权限集,Server只需将"test_log.ldf“清零。在您的测试中,CREATE DATABASE的开销大大减少,因此缩短了持续时间。
参考文献
发布于 2017-11-06 15:40:31
这不会影响.ldf文件(日志文件),至少不影响MS文章。
为什么要这么做?速度
为什么不做呢?可能的安全风险。有人可以黑进你的盒子,并可能读取非零的内存空间,并检索数据。风险很小,但还是有风险的。这就是为什么默认情况下不启用它的原因。
详细说明:如何以及为什么启用即时文件初始化
https://dba.stackexchange.com/questions/94025
复制相似问题