適用於:Azure SQL 受控執行個體
本文會教導您針對 Azure SQL 受控執行個體 編輯 tempdb 設定。
Azure SQL 受控執行個體可讓您設定下列內容:
-
tempdb檔案數目 -
tempdb檔案的成長增量 -
tempdb大小上限
在您的執行個體重新啟動、更新或發生容錯移轉之後,tempdb 設定會繼續保存。
概觀
tempdb 是 Azure SQL 受控執行個體 隨附的預設系統資料庫之一。 的 tempdb 結構與任何其他使用者資料庫結構相同。 不同之處在於,由於 用於非持久儲存體,因此 tempdb 會記錄最少的交易。
tempdb 無法卸除、中斷連結、離線、重新命名或還原。 嘗試其中任何一項作業會傳回錯誤。
tempdb 會在每次實例啟動時重新生成。 重新啟動服務、執行個體更新管理作業或容錯移轉後,在先前工作階段中於tempdb可能建立的任何物件都不會保留。
tempdb 的工作負載與其他使用者資料庫的工作負載不同;物件與資料經常建立及損毀,且並行度極高。 每個 SQL 管理執行個體只有一個 tempdb 。 即使您有多個資料庫與應用程式連線執行個體,其仍使用相同 tempdb 資料庫。 當服務嘗試在大量使用的 tempdb中配置頁面時,可能會遇到爭用。 視爭用程度而定,涉及 tempdb 的查詢與要求可能無法取得回應。 這就是為什麼 tempdb 對服務效能至關重要的原因。
tempdb 檔案數目
增加數據檔數目 tempdb 會為每個數據檔建立一或多個 GAM 和 SGAM 頁面,這有助於改善 tempdb 並行並減少 PFS 頁面爭用。 然而,增加 tempdb 資料檔案數目可能帶來其他效能影響,因此請先徹底測試,再於生產環境實作。
根據預設,Azure SQL 受控執行個體會建立 12 tempdb 個資料檔和一個 tempdb 記錄檔,但可以修改此設定。
變更 tempdb 檔案數目具下列限制:
- 新檔案的邏輯名稱不區分大小寫,最多 16 個字元且無空格。
-
tempdb檔案數目上限為 128。
注意
新增檔案後,您不必重新啟動執行個體。 但是,較空的檔案將以更高的優先順序填充,而分配頁面的循環分配資源演算法會暫時失去作用,直到系統重新平衡。
您可使用 SQL Server Management Studio (SSMS) 與 Transact-SQL (T-SQL) 來變更 Azure SQL 受控執行個體的 tempdb 檔案數目。
您可以使用 SQL Server Management Studio (SSMS) 來修改 tempdb 檔案數目。 若要如此做,請執行下列步驟:
連線到 SSMS 中的 SQL 受控執行個體。
在 [物件總管],展開 [資料庫],然後展開 [系統資料庫]。
以滑鼠右鍵按一下
tempdb,選擇 [屬性]。在 [選取頁面] 下方選取 [檔案],檢視現有的
tempdb檔案數目。若要新增檔案,請選擇 [新增],然後在資料列提供新資料檔案的相關資訊。
若要移除
tempdb檔案,從資料庫檔案清單選擇您要移除的檔案,然後選取 [移除]。
成長增量
tempdb 檔案成長可能會對使用 tempdb 的查詢造成效能影響。 因此, tempdb 太小的資料檔案成長增量可能會導致範圍碎片化,而如果沒有足夠的空間進行成長,則過大的增量可能會導致成長緩慢或成長失敗。
tempdb 檔案成長增量的最佳值取決於您的工作負載。
SQL 受控執行個體的預設成長增量是資料檔案的 tempdb 254 MB 和記錄檔的 tempdb 64 MB,但您可以設定成長增量,以適應您的工作負載並調整效能。
請考慮下列事項:
- 檔案成長參數支援下列
int_growth_increment單位 :KB、MB、GB、TB 與 %。 - 所有
tempdb資料檔案的成長增量都應該相同。 否則,配置頁面的循環輪替演算法可能會受到影響。
您使用 SQL Server Management Studio (SSMS) 與 Transact-SQL (T-SQL) 來變更 tempdb 檔案的成長增量。
您可使用 SQL Server Management Studio (SSMS) 來修改 tempdb 檔案的成長增量。 若要如此做,請執行下列步驟:
在 SQL Server Management Studio 中連線到受控的 SQL 執行個體。
在 [物件總管],展開 [資料庫],然後展開 [系統資料庫]。
以滑鼠右鍵按一下
tempdb,選擇 [屬性]。在 [選取頁面] 下方選取 [檔案],檢視現有的
tempdb檔案數目。選擇資料檔案旁的省略號 (…),開啟 [變更自動成長屬性] 對話方塊視窗。
核取 [啟用自動成長] 旁邊的方塊,然後指定檔案成長值 (以百分比或 MB 為單位) 來修改自動成長設定。
選取 [確定] 儲存您的設定。
大小上限
tempdb
大小是所有 tempdb 檔案的總和大小。
tempdb 檔案大小是該 tempdb 檔案的已分配 (歸零) 空間。 所有 tempdb 檔案的初始檔案大小為 16 MB,這是執行個體重新啟動或容錯移轉時所有 tempdb 檔案的大小。 一旦 tempdb 資料檔案的已使用空間達到檔案大小,所有 tempdb 資料檔案就會依其設定的成長增量自動成長。
tempdb
已使用空間指的是所有 tempdb 檔案的已使用空間總和。
tempdb 檔案使用的空間等於該 tempdb 檔案大小中被非零資訊佔用的部分。
tempdb
已使用空間與 tempdb可用空間的總和等於 tempdb 大小。
您可使用 T-SQL 來針對 tempdb 檔案判斷其目前已使用與可用空間。
若要取得 tempdb 資料檔案的已使用空間、可用空間與大小,請執行此命令:
USE tempdb
SELECT SUM((allocated_extent_page_count)*1.0/128) AS TempDB_used_data_space_inMB,
SUM((unallocated_extent_page_count)*1.0/128) AS TempDB_free_data_space_inMB,
SUM(total_page_count*1.0/128) AS TempDB_data_size_inMB
FROM sys.dm_db_file_space_usage
下列螢幕擷取畫面顯示範例輸出:
若要取得 tempdb 記錄檔的已使用空間、可用空間與大小,請執行此命令:
USE tempdb
SELECT used_log_space_in_bytes*1.0/1024/1024 AS TempDB_used_log_space_inMB,
(total_log_size_in_bytes- used_log_space_in_bytes)*1.0/1024/1024 AS TempDB_free_log_space_inMB,
total_log_size_in_bytes*1.0/1024/1024 AS TempDB_log_size_inMB
FROM sys.dm_db_log_space_usage
下列螢幕擷取畫面顯示範例輸出:
tempdb 大小上限是 tempdb 無法進一步成長的限制。
SQL 受控執行個體的 tempdb 大小上限具下列限制:
- 在一般用途服務層級中,
tempdb的最大大小限制為每個虛擬核心24 GB(96-1920 GB)。 記錄檔的大小tempdb上限為 120 GB。 - 在業務關鍵服務層級中,
tempdb會與其他資料庫競爭資源,因此保留的儲存體會在與其他資料庫之間tempdb共用,上限為配置給執行個體的儲存體大小上限。 記錄檔的tempdb大小上限為 2 TB。
tempdb 檔案會成長,直到達到服務層級所允許的最大限制,或由手動設定的 tempdb 檔案大小上限為止。
您可使用 SQL Server Management Studio (SSMS) 與 Transact-SQL (T-SQL) 來變更 tempdb 檔案的大小上限。
若要判斷 SSMS 目前 tempdb 的大小上限,請遵循下列步驟:
- 請在 SSMS 中連線到您自己的 SQL 受控實例。
- 在 [物件總管],展開 [資料庫],然後展開 [系統資料庫]。
- 以滑鼠右鍵按一下
tempdb,選擇 [屬性]。 - 在 [一般] 頁面上,檢查 [資料庫] 底下 [大小] 值,以判斷您的大小上限
tempdb。-1值表示 tempdb 無大小上限。
若要變更 SSMS 目前 tempdb 的大小上限,請遵循下列步驟:
- 使用 SSMS 連線到您的 SQL 受控執行個體。
- 在 [物件總管],展開 [資料庫],然後展開 [系統資料庫]。
- 以滑鼠右鍵按一下
tempdb,選擇 [屬性]。 - 在 [選取頁面] 下方選取 [檔案],檢視現有的
tempdb檔案數目。 - 選擇資料檔案旁的省略號 (…),開啟 [變更自動成長屬性] 對話方塊視窗。
- 變更 [檔案大小上限]
tempdb底下的值,即可修改 大小上限設定。 - 選取 [確定] 儲存您的設定。
tempdb 限制
下表定義各種 tempdb 組態設定限制:
| 組態設定 | 值 |
|---|---|
tempdb 檔案邏輯名稱 |
最多 16 個字元 |
tempdb 檔案數目 |
最多 128 個檔案 |
tempdb 檔案預設數目 |
13 (1 個記錄檔 + 12 個資料檔案) |
tempdb 資料檔案的初始大小 |
16 兆位元組 |
tempdb 資料檔案的預設成長增量 |
256 MB |
tempdb 記錄檔的初始大小 |
16 兆位元組 |
tempdb 記錄檔的預設成長增量 |
64 MB |
tempdb 初始大小上限 |
-1 (無限制) |
最大數據檔案大小 tempdb |
- 在一般用途服務層級中:每虛擬核心最高 24 GB,總計最多達 1920 GB 在業務關鍵服務層級中:記憶體大小上限 |
tempdb 記錄檔的最大大小上限 |
- 在一般用途服務層級中:120 GB 在業務關鍵服務層級:2 TB |