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

今天早上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 的考量。但很多事情都有优缺点,还是需要衡量利与弊的比重,来做最佳的设定选择。

猜你喜欢

转载自blog.csdn.net/wlcs_6305/article/details/114922584