SSMS 2008 / 2014 顯示 TempDB 文件大小的不同值
這是一個有趣的。上週,我將 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_2
等NAME=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 的精彩文章: