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(开启文件及时初始化)的更多相关文章
- Sql Server来龙去脉系列之四 数据库和文件
在讨论数据库之前我们先要明白一个问题:什么是数据库? 数据库是若干对象的集合,这些对象用来控制和维护数据.一个经典的数据库实例仅仅包含少量的数据库,但用户一般也不会在一个实例上创建太多 ...
- sql server数据库保存图片或者其他小文件
原文:sql server数据库保存图片或者其他小文件 测试用sql server数据库保存图片或者其他小文件. 文件流字段用varbinary类型. static void Main() { App ...
- sql server 中后缀为.mdf的文件是干什么用的??
在微软的SQL Server 2000 数据库有三种类型的文件: 1)主要数据文件(扩展名.mdf是 primary data file 的缩写) 主要数据文件包含数据库的启动信息,并指向数据库中的其 ...
- Kettle建立数据库链接报错-'MS SQL Server' driver (jar file) is installed. kettle的bug,对于12.2而言
1.链接sql server数据库报错 错误连接数据库 [My_vm_win_sql] : org.pentaho.di.core.exception.KettleDatabaseException: ...
- SQL SERVER 使用BULK Insert将txt文件中的数据批量插入表中(1)
1/首先建立数据表 CREATE TABLE BasicMsg( RecvTime FLOAT NOT NULL , --接收时间,不存在时间相同的数据 AA INT NOT NULL, --24位地 ...
- SQL Server Management Studio 执行超大脚本文件
SQL Server Management Studio 执行超大脚本文件 启动cmd.exe , cd 到C:\Program Files (x86)\Microsoft SQL Server\11 ...
- sql server启动服务和还原bak文件
sql server启动服务和还原bak文件, sql server启动要: mysql数据库备份是psc后缀文件, sql server还原数据库备份bak文件: 三张图简介明了: ok:
- [转] C#实现在Sql Server中存储和读取Word文件 (Not Correct Modified)
出处 C#实现在Sql Server中存储和读取Word文件 要实现在Sql Server中实现将文件读写Word文件,需要在要存取的表中添加Image类型的列,示例表结构为: CREATE TABL ...
- 微软BI 之SSIS 系列 - 两种将 SQL Server 数据库数据输出成 XML 文件的方法
开篇介绍 在 SSIS 中并没有直接提供从数据源到 XML 的转换输出,Destination 的输出对象有 Excel File, Flat File, Database 等,但是并没有直接提供 X ...
随机推荐
- R 拆分EXCEL成多个文件
setwd("C:/Rworkfile") install.packages("readxl") library(readxl) www<-read_ex ...
- 关于锚点定位,ul设置fixed后,div被覆盖一部分的问题
例如: 问题: 刚开始的时候 .ul是正常显示的,当页面的滚动条滚动到一定的高度是 ,ul就被设置为 position:fixed:那么 点击 li相对应div就会被 固定定位的ul覆盖住一部分. 解 ...
- Train Problem II(卡特兰数 组合数学)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1023 Train Problem II Time Limit: 2000/1000 MS (Java/ ...
- c# xml序列化和反序列化。也就是xml的解析和反解析。
用习惯了newTownSoft.json 的json反序列化.碰到xml是真的不习惯. 每次json反序列化都是直接把json丢到bejson网站生成一个实体类,稍微修改修改一点点变量名.然后直接ne ...
- 等待页面元素(webdriverwait)
前言 在脚本中加入太多的 sleep 后会影响脚本的执行速度,虽然 implicitly_wait ()这种方法隐式等待方法一定程度上节省了很多时间.但是一旦页面上某些 js 无法加载出来(其实界面元 ...
- Git学习系列之一些常用的Git命令收录更新ing
不多说,直接上干货! 前言 对于Git工具,有必要整理和总结一些常用实用的命令. http://p.primeton.com/articles/53cce3a3e138236138000026 ht ...
- 转 linux 内存释放
原文 http://blog.zol.com.cn/2322/article_2321774.html #cat /proc/meminfo | grep "MemFree" | ...
- Hibernate各种查询操作(二)
一.QBC的查询方式 使用QBC不在需要写hql语句,而是使用criteria对象的各种方法来实现. 1.查询所有 //使用QBC方式查询所有 @Test public void test11(){ ...
- iOS 开发工具网页下载
iOS 开发工具网页下载地址: https://developer.apple.com/downloads/
- Js的小技巧
感谢好友破狼提供的这篇好文章,也感谢写这些知识点的作者们和将他们整理到一起的作者.这是github上的一篇文章,在这里本兽也就只做翻译,由于本兽英语水平和编程能力都不咋地,如有不好的地方也请多理解体谅 ...