翻譯|使用教程|編輯:莫成敏|2019-12-31 13:53:14.673|閱讀 318 次
概述:SQL Monitor不僅自動收集您需要的所有磁盤和數據庫增長跟蹤數據,而且還分析這些數據的趨勢以準確預測何時磁盤卷會耗盡可用空間,或數據庫文件何時需要增長。本文為第二部分內容——監視數據庫文件中的可用空間。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
SQL Monitor是一個SQL Server監控工具。它可以監控SQL Servers的健康狀況和活動,并通過電子郵件為您發送監測結果和建議。
SQL Monitor不僅自動收集您需要的所有磁盤和數據庫增長跟蹤數據,而且還分析這些數據的趨勢以準確預測何時磁盤卷會耗盡可用空間,或數據庫文件何時需要增長。本教程內容較多,分為三個部分發布,這篇文章是第二部分——監視數據庫文件中的可用空間。
當我們添加新數據時,數據文件中的空間將分配給存儲該數據的表和索引。當數據文件已滿時,它將需要增長。如果我們監視數據文件中空間的使用率以及剩余的可用空間,我們可以預測文件何時需要增長,并可以做出相應的計劃,而不必依賴不可預測且昂貴的文件自動增長事件(稍后會有更多介紹)。
我們還可以監視事務日志文件中的可用空間,盡管這更為復雜,因為日志的行為更像是環形緩沖區。一旦填滿,它將繞行并開始覆蓋先前提交的事務的日志記錄,除非有不能這樣做的原因,在這種情況下日志需要增長。
隨著時間的推移,通過跟蹤數據庫文件中的空間使用情況,我們將更好地了解每個數據庫的增長特征,并能夠更準確地調整文件大小,以適應將來的數據增長。
臨時跟蹤數據庫文件中的空間使用情況
為了臨時檢查數據庫如何使用磁盤空間,我們可以使用內置的SSMS報告。只需右鍵單擊任何數據庫,然后選擇Reports | 標準報告。“磁盤使用情況”報告提供了為數據庫保留的總空間的詳細信息,并分別提供了數據和日志文件,然后提供了餅圖,顯示了文件中當前的空間使用情況。它還顯示任何最近的文件自動增長事件。“按表排列的磁盤使用情況”報告將向您顯示哪些表分配了最多的空間,因此也占用了最多的磁盤空間。
對于腳本檢查,您可以查詢sys.database_files視圖以獲取數據庫的總大小(稍后介紹),以及有關每個數據庫的單個數據和日志文件的大小,以及每個數據庫中使用的空間的詳細信息。您還可以使用sys.dm_db_file_space_usageDMV 細化當前分配給數據庫對象的數據文件中的空間量(也用于SQL Monitor中數據庫對象自定義度量標準使用的空間)。
如果數據庫增長異常迅速,您需要知道數據庫中分配給該對象(表和索引)的空間。您可以使用該sys.allocation_units視圖查看數據庫中所有對象的空間分配明細。或者,您可以使用sp_spaceused系統存儲過程,并提供要調查的表的名稱。
使用SQL Monitor監視數據文件中的空間使用
在任何受監視的SQL Server實例的SQL Monitor的“概述”頁上的“數據庫”部分中,我們可以看到實例上每個數據庫的數據和日志文件的當前物理大小,以及直到文件滿為止的預計時間,并且需要自動增長,或者磁盤本身已滿。為了避免被“突然變滿”的數據庫文件嚇到,我們可以在SQL Monitor中通過內置的數據庫文件使用率指標來跟蹤數據文件的使用。
這個指標背后的想法是在數據庫文件需要增長時提前警告您。而不是簡單地等待它自動增長,這可能是非常破壞性的,取決于自動增長發生的時間,您有時間來研究增長的趨勢,任何異常增長的原因,并根據需要計劃維護時間來增長文件。
當前,日志文件禁用此警報,因為基于歷史增長無法預測日志文件的使用模式(在下一節中將對此進行更多介紹)。master model,msdb和tempdb數據庫也禁用該功能。對于數據庫的數據文件,您可以選擇在三個不同閾值被突破時發出警報:
因此,例如,您可以選擇在文件已滿的時間少于2周,或達到90%或少于500 MB的可用時間時接收警報。
您還可以配置此警報,以便在使用的空間增加時自動升級。例如,您可以在所使用的空間是70%時指定低警報,然后在空間上升到85%時將其升級為中等警報,在空間超過95%時將其升級為高警報。在警報內,您將看到一個顯示文件使用歷史的圖表。
這條淡藍色的線和帶陰影的藍色區域顯示了實際的文件大小,您可以看到文件增長的“跳轉”。黑線表示文件內空間分配的增長,橙色虛線表示預計的文件使用情況
橙色和淺藍色線相交的位置指示文件何時已滿,因此將觸發下一個文件自動增長事件(假設磁盤未滿)。如果那段時間給您的業務帶來不便,那么您可以計劃一個時間來手動增加文件大小。
通過檢查警報歷史記錄,警報的頻率和時間,您可以評估數據文件的增長方式以及如何進行優化。與所有SQL Monitor警報一樣,在激發警報時,您還會為主機提供許多其他有用的性能統計信息,例如處理器時間、平均磁盤隊列長度、內存使用率、傳輸速度等。
如果數據文件中的空間使用異常迅速,則需要進行調查。如果您知道數據庫中的某些表是數據增長的溫床,那么您可以使用SQL Monitor(查詢sp_spaceused)中的表大小(MB)自定義指標來跟蹤它們隨時間的增長。
使用SQL Monitor監視日志文件中的空間使用
跟蹤日志文件中的空間使用情況(以預測何時需要自動增長)更加復雜。當我們修改數據(插入、刪除或更新)或任何數據庫對象時,SQL Server將描述每個更改的日志記錄寫入事務日志中。當日志文件已滿時,SQL Server將通過覆蓋舊的日志記錄來重用日志中的空間,只要沒有阻止它的行為,例如長時間運行的事務或缺少日志備份(對于使用FULL或BULK LOGGED恢復的數據庫)模型)。
假定沒有其他原因不能這樣做,SQL Server將定期截斷日志,以便可以在日志備份之后或在某個CHECKPOINT過程(對于SIMPLE恢復模型數據庫)之后重用現有空間,等等。日志空間將以循環方式而不是線性方式重用。
但是,如果您知道給定數據庫修改的頻率以及日志備份的頻率,則您希望某個特定數據庫的日志文件得到多少填充,那么您可能希望使用SQL Monitor的已用日志空間自定義百分比來接收,如果警報超過特定閾值,則為警報。
本教程內容尚未完結,歡迎大家關注我們了解更多文章資訊~您也可以下載SQL Monitor試用版免費測評~
相關內容推薦:
使用SQL Monitor避免耗盡磁盤空間(上):監視磁盤上的可用空間
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自: