sqlserver 文件與文件組的使用和優化

来源:http://www.cnblogs.com/l1pe1/archive/2017/09/15/7526243.html
-Advertisement-
Play Games

文件和文件組填充策略 文件組對組內的所有文件都使用按比例填充策略。當數據寫入文件組時,SQL Server 資料庫引擎按文件中的可用空間比例將數據寫入文件組中的每個文件,而不是將所有數據都寫入第一個文件直至其變滿為止。然後再寫入下一個文件。例如,如果文件 f1 有 100 MB 可用空間,文件 f2 ...


文件和文件組填充策略    

文件組對組內的所有文件都使用按比例填充策略。當數據寫入文件組時,SQL Server 資料庫引擎按文件中的可用空間比例將數據寫入文件組中的每個文件,而不是將所有數據都寫入第一個文件直至其變滿為止。然後再寫入下一個文件。例如,如果文件 f1 有 100 MB 可用空間,文件 f2 有 200 MB 可用空間,則從文件 f1 中分配一個區,從文件 f2 中分配兩個區,依此類推。這樣,兩個文件幾乎同時填滿,並且可獲得簡單的條帶化。

假定將資料庫設置為自動增長,則當文件組中的所有文件填滿後,資料庫引擎便會採用迴圈方式一次自動擴展一個文件以容納更多數據。例如,某個文件組由三個文件組成,它們都設置為自動增長。當文件組中所有文件的空間都已用完時,只擴展第一個文件。當第一個文件已滿,無法再向文件組中寫入更多數據時,將擴展第二個文件。當第二個文件已滿,無法再向文件組中寫入更多數據時,將擴展第三個文件。當第三個文件已滿,無法再向文件組中寫入更多數據時,將再次擴展第一個文件,依此類推。

改善資料庫性能    

使用文件和文件組可以改善資料庫的性能,因為這樣允許跨多個磁碟、多個磁碟控制器或 RAID(獨立磁碟冗餘陣列)系統創建資料庫。例如,如果電腦上有四個磁碟,那麼可以創建一個由三個數據文件和一個日誌文件組成的資料庫,每個磁碟上放置一個文件。在對數據進行訪問時,四個讀/寫磁頭可以同時並行地訪問數據。這樣可以加快資料庫操作的速度。有關硬體解決方案的詳細信息,請參閱資料庫性能

另外,文件和文件組還允許數據佈局,因為可以在特定的文件組中創建表。這樣可以改善性能,因為可以將特定表的所有 I/O 都定向到一個特定的磁碟。例如,可以將最常用的表放在一個文件組的一個文件中,該文件組位於一個磁碟上;而將資料庫中其他不常訪問的表放在另一個文件組的其他文件中,該文件組位於第二個磁碟上。

實現備份和還原策略    

可以通過稱為段落還原的進程分階段還原由多個文件組組成的資料庫。段落還原適用於所有恢復模式,但在完整恢復模式和大容量日誌恢復模式下比在簡單恢復模式下更靈活。段落還原方案包括還原的全部三個階段:數據複製、重做或前滾以及撤消或後滾。有關詳細信息,請參閱執行段落還原

當使用多個文件組時,可以分別備份和還原資料庫中的文件。在簡單恢復模式下,只能對只讀文件進行文件備份。使用文件備份使您能夠只還原損壞的文件,而不用還原資料庫的其餘部分,從而加快了恢復速度。例如,如果一個資料庫由幾個分別位於不同的物理磁碟上的文件組成,當其中一個磁碟發生故障時,只需還原發生故障的磁碟上的文件。有關詳細信息,請參閱 BACKUP (Transact-SQL)

文件和文件組的設計規則    

下列規則適用於文件和文件組:

  • 一個文件或文件組不能由多個資料庫使用。例如,任何其他資料庫都不能使用包含 sales 資料庫中的數據和對象的文件 sales.mdf 和 sales.ndf

  • 一個文件只能是一個文件組的成員。

  • 事務日誌文件不能屬於任何文件組。

建議    

下麵是使用文件和文件組時的一些一般建議:

  • 大多數資料庫在只有單個數據文件和單個事務日誌文件的情況下性能良好。

  • 如果使用多個文件,請為附加文件創建第二個文件組,並將其設置為預設文件組。這樣,主文件將只包含系統表和對象。

  • 若要使性能最大化,請在儘可能多的不同的可用本地物理磁碟上創建文件或文件組。將爭奪空間最激烈的對象置於不同的文件組中。

  • 使用文件組將對象放置在特定的物理磁碟上。

  • 將在同一聯接查詢中使用的不同表置於不同的文件組中。由於採用並行磁碟 I/O 對聯接數據進行搜索,所以性能將得以改善。

  • 將最常訪問的表和屬於這些表的非聚集索引置於不同的文件組中。如果文件位於不同的物理磁碟上,由於採用並行 I/O,所以性能將得以改善。

  • 請勿將事務日誌文件置於其中已有其他文件和文件組的物理磁碟上。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 首先手機連接電腦,打開 ITunes. 左上角點擊文件,再點擊添加到資料庫。 找到你要安裝的ipa點擊選擇打開 好了ipa已經添加進去後,你會看你你剛纔添加進去的應用在列表內,點擊左上角一個手機的圖標。 點擊安裝,右下角同步 便成功安裝到手機上了。 此隨筆乃本人學習工作記錄,如有疑問歡迎在下麵評論, ...
  • 移動的號段:134(0-8)、135、136、137、138、139、147(預計用於TD上網卡) * 、150、151、152、157(TD專用)、158、159、187(未啟用)、188(TD專用) 聯通的號段:130、131、132、155、156(世界風專用)、185(未啟用)、186(3g ...
  • 作為一個一直使用windows系統的人,還真不知道mac上的svn如何使用,偶然機會下現在需要。 查過後發現 mac 是自帶svn的,在我裝好xcode後,再安裝 Command Line Tools 1.打開終端 輸入 點擊安裝,過幾分鐘就安好了。 2.再輸入此命令查看版本號,有版本號就是安裝好了 ...
  • mysql -h 192.168.1.104 -P3306 -uroot -p 然後輸入你安裝時設置的MySQL密碼 發現Can't connect to MySQL server 你的IP 解決方法: (1)用localhost 登錄 mysql -h localhost -P3306 -uroo ...
  • 一 快速性 如果在記憶體中運行MapRaduce,要比Hadoop快100倍 如果在磁碟中運行,要比Hadoop快10倍 Spark使用先進的有向無環圖執行引擎來支持非迴圈的數據流在記憶體中計算 二 易用性 Spark提供超過80個高階運算元,這些運算元使其很容易構建並行應用 這些運算元支持多種語言 按照切合 ...
  • MySqlInnoDB的事務隔離級別有四個:(預設是可重覆讀repeatable read) 未提交讀 read uncommit : 在另一個事務修改了數據,但尚未提交,在本事務中SELECT語句可能會查詢到這些未被提交的數據,而發生臟讀。 提交讀 read commit : 在一個事務中發生兩次 ...
  • ORACLE虛擬索引(Virtual Index) 虛擬索引概念 虛擬索引(Virtual Indexes)是一個定義在數據字典中的假索引(fake index),它沒有相關的索引段。虛擬索引的目的是模擬索引的存在而不用真實的創建一個完整索引。這允許開發者創建虛擬索引來查看相關執行計劃而不用等到真實... ...
  • 1. 索引的特性 1.1 加快條件的檢索的特性 當表數據量越來越大時查詢速度會下降,在表的條件欄位上使用索引,快速定位到可能滿足條件的記錄,不需要遍歷所有記錄。 #在這個案例中:執行同一條SQL。t2有索引的執行數據是0.052 ms;t1沒有索引的是:5.741 ms; 1.2 有序的特性 索引本 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...