Sql-Server

SSMS 2008 / 2014 顯示 TempDB 文件大小的不同值

  • January 20, 2018

這是一個有趣的。上週,我將 tempdb 數據庫中的初始文件大小重新配置為每個 1GB。幾週前我們發生了一個事件,由於沒有索引的表被完全敲擊而鎖定了我們的伺服器。這導致我們的 3 個 tempdb 文件增長。我使用 SSMS 2014 重新調整了它們的大小,並且在上週日我們重新啟動伺服器時,它們應該已經重置為配置的大小。他們沒有,現在我看到 SSMS 為這些文件返回的資訊有所不同。

我們的伺服器是 2008 R2,下面是不同的 SSMS 視圖:

2008:

在此處輸入圖像描述

2014:

在此處輸入圖像描述

以下是它們目前位於伺服器本身上的文件:

在此處輸入圖像描述

SSMS 2014 似乎返回了正確的資訊,但 SSMS 2008 不是。這是以前有人見過的已知問題嗎?如果是這樣,是什麼原因造成的?2014 是否嘗試以不同於 2008 R2 的方式儲存此資訊並否定 2008 配置的值?

現在,一旦伺服器重新啟動,就沒有發生自動增長事件(檢查預設跟踪並且沒有事件)鑑於這些資訊,您認為我最好的做法是適當地調整這些文件的大小。我完全可以將所有文件增加到 2GB,但這些 tempdb 文件幾乎沒有被使用(所有文件的使用率均小於 5%)。

伺服器沒有著火或任何東西,生產執行良好,但我們絕對希望所有這些 tempdb 文件配置為相同的大小。

編輯:請求查詢的結果

在此處輸入圖像描述

為確保按預期tempdb配置文件大小,應使用 T-SQL 而不是 SSMS 使用者界面。

要調整文件大小,您可以使用以下內容:

ALTER DATABASE tempdb
MODIFY FILE (NAME=tempdev, SIZE=1GB, GROWTH=1GB);

您需要為 tempdb 中的每個邏輯文件執行一次。 NAME=tempdev_2NAME=tempdev_3

我建議使用 T-SQL 查詢來獲取有關文件大小的資訊,如下所示:

SELECT DatabaseName = d.name
   , DBFileName = mf.name
   , DBInitialSize = mf.size
   , Growth = mf.growth
   , GrowthIsPercentage = mf.is_percent_growth
   , FileType = mf.type_desc
FROM master.sys.master_files mf
   INNER JOIN master.sys.databases d ON mf.database_id = d.database_id
WHERE d.name = 'tempdb'
ORDER BY d.name, mf.name;

正如評論中提到的,如果您擔心tempdb性能,您當然應該考慮使用跟踪標誌 1117 和 1118 的可能性;從表面上看,這是您對tempdb.

Aaron Bertrand 有一篇關於使用 SSMS 介面與 T-SQL 的精彩文章:

引用自:https://dba.stackexchange.com/questions/76619