SQL Server ->> Enable Instant File Initialization(开启文件及时初始化)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL Server ->> Enable Instant File Initialization(开启文件及时初始化)相关的知识,希望对你有一定的参考价值。

我们在安装SQL Server的时候会在指定SQL Server各个服务的运行启动账户的账户的时候看到底下有一个选项写着“Grant Perform Volume Maintenance Task privilege.....”。准确的说,这个东西不是SQL Server的东西,“Perform Volume Maintenance Task”权限属于Windows的安全策略(Security Policy)范畴,这里其实只是通过一个UI界面改了本地的Windows安全策略。

技术分享

 

那“Perform Volume Maintenance Task”是个什么东西呢?它代表的是Windows操作系统的“Instant File Initialization”特性。意思就是在Windows操作系统下,文件在被创建的时候是否执行“zeroing out”任务,也就是把文件系统分配给某个文件的空间都通过写0来清楚原先的数据。开启了文件及时初始化后在Windows下我们删除一个文件其实并没有把磁盘上的数据清除,而是留到下一次这部分空间被重新利用的时候才来复写。而“Instant File Initialization”的意思就是不执行“zeroing out”任务。

 

优点:

那么回到SQL Server来谈这个东西,它的作用就是在SQL Server每次文件被创建或者发生空间增长的时候不清楚旧数据,从而提高性能。这点会影响到CREATE DATABASE, ALTER DATABASE, RESTORE和AUTOGROWTH等场景。

 

缺点/风险:

安全风险是开启文件及时初始化的缺点。

 

局限性:

1)LOG文件不适用。至于说为什么LOG文件不适用,其实也不难理解。数据文件空间分配背后有GAM,SGAM, PFS以及内部表来支持数据空间的元数据验证,自然不会犯错,把原本不该是“属于自己的数据”当成是自己的,即便这部分数据还留在文件里面。可是LOG不同,LOG文件没有这层的逻辑来支持它。

2)不能是稀疏文件,比如Snapshot,DBCC CHECKDB命令运行时产生的结果文件(这个文件是自动产生);

3) Transparent Data Encryption数据库选项不能被开启;

4)跟踪标记(Trace Flag)1806不能被启用。这个标记的作用就是关闭及时文件初始化特性的。两者相斥。

 

那如果在安装的时候没勾选那个选项,后面怎么去启用呢?

打开安全策略修改就行。也就是这样SQL Server服务账号具备权限就自动启用的SQL Server的文件及时初始化。添加权限需要重启SQL Server服务,删除权限则需要重启服务器。

技术分享

 

参考文献:

SQL Server Premier Field Engineer Blog -- How and Why to Enable Instant File Initialization

 

以上是关于SQL Server ->> Enable Instant File Initialization(开启文件及时初始化)的主要内容,如果未能解决你的问题,请参考以下文章

html 来自http://wiki.jikexueyuan.com/project/kendo-ui-development-tutorial/endo-mvvm-data-binding-enab

FTP服务器vsftpd配置项-主目录限制(chroot_local_userchroot_list_enable)

pyspark 2.4 无法从 sql 命令创建表需要 Hive 支持才能创建 Hive TABLE

oracle 问题,下面的SQL了,怎么改好来啊??我调一好,希望有人帮帮我

安装SQL SERVER 2008,出现“查找sql server 2008安装媒体”的问题

sql server安装遇到的问题