zl程序教程

您现在的位置是:首页 >  后端

当前栏目

【数据库】SQL server 启用IFI 功能

server数据库SQL 功能 启用
2023-09-27 14:27:53 时间

今天早上Data warehouse 部门的人告诉我平常的Data loading时间还算正常,但是昨天晚上的loading 时间比一般平常的时间长很多,是不是数据库有什么问题?

我仔细检查了一下数据库,发现昨天的数据档案MDF file 已经满了,数据库自动加了10GB 来增大这一个数据档案。我又跟着进一步检查IFI 的设定,发现这个设定没有被启用。几乎可以肯定这个就是问题的所在.

什么是IFI 呢?IFI 就是Instant file initialization. 当数据库要取得硬盘空间来扩增数据档案的时候,系统会把取得的硬盘空间一个一个的用数字0 把它填满,称为“zero out the disk”.如果是小小的1MB,可能不痛不痒。但如果是10 GB 或是更大的硬盘空间,那就要花一段时间来等待系统用数字0 填满硬盘. 如果资料库启用IFI 的话,SQL server 就会省略这个zero out 的过程。相对的,数据库就不用静置在那里等待这个过程的完成.所以一般来讲,在设定数据库的时候,尤其是数据仓储,都会启用IFI 的功能。

但是启用这个功能都没有什么缺点吗?答案是有的,会有数据安全考量的问题。因为省略了zero out disk 的动作,所以新取得的硬盘空间不会被完全删除干净。有心人士是可以透过特别的方法来读取那些原本该被删除的资料。所以有security 的考量。但很多事情都有优缺点,还是需要衡量利与弊的比重,来做最佳的设定选择。