【SQLSERVER】從數據庫文件mdf中拆分ndf的方法和利弊


一、數據文件格式

     SQLSERVER中,數據庫的文件后綴有3種:mdf、ndf、ldf。

     如下圖所示,DW_TEST.mdf、DW_TEST_HIS.ndf、DW_TEST.ldf 屬於同一個數據庫TEST。

     其中 mdf 是主數據文件,每個數據庫有且只能有一個;ndf 是次要數據文件 ;ldf 是日志文件。

     

二、如何從主數據文件mdf中拆分出ndf

     1,添加新文件組,創建ndf文件

          1.1,右鍵數據庫 → 屬性 → 文件 → 添加文件

          

          1.2,這邊新建一個HIS的文件組,對應的ndf命名為 DW_TEST_HIS。

          

     2,這個時候,ndf文件已經生成,接下來就是根據需要把數據從DW_TEST.mdf 中移到 DW_TEST.ndf.

          遷移數據到ndf有兩種方法:

          一種是通過重新建表,把表的歸屬文件組改為ndf對應的文件組,這邊是HIS,然后把舊表的數據寫入新表。

          

          另一種方式是通過,重建聚集索引的方式,將表的歸屬文件組改為 HIS,不再贅述。

 三、拆分ndf的結果分析和利弊

          建了一個測試數據庫DW_TEST2作為拆分對象,拆分的結果作為DW_TEST。再往兩個庫寫入一樣的數據,從下圖的結果可以看出 DW_TEST2.mdf(8.37G) 拆分成了 DW_TEST.mdf(4.06G) 和 DW_TEST_HIS.ndf(4.3G),算上日志文件,拆分前后,數據庫總大小不變。

          優點:分出了一個ndf文件,可以放在別的硬盤,在存儲上起到一定程度的減壓,和提高I/0並發的優化作用,可以作為一種數據庫的優化策略;

          缺點:多出一個ndf文件,增加了數據庫管理上的壓力。

       

 

          


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM