Sqlserver關於tempdb臨時資料庫最優檔案個數的最優實踐
一般而言,如果邏輯處理器數目小於或等於 8,則使用的資料檔案數與邏輯處理器數相同。 如果邏輯處理器數大於 8,請指定 8 個資料檔案。 如果仍然存在爭用,則以 4 的倍數增加資料檔案的數量,直到爭用減少到可接受的級別或對工作負荷/程式碼進行更改。tempdb 資料檔案的最優數量取決於 tempdb 中的爭用程度。首先,您可以將 tempdb 配置為至少等於為 SQL Server 分配的邏輯處理器的數量。對於更高階的系統,起始數字可以是八 (8)。如果爭用沒有減少,您可能必須增加資料檔案的數量。
Tempdb 系統資料庫是包含以下內容的全域性資源:
顯式建立的臨時使用者物件。 它們包括全域性或區域性臨時表及索引、臨時儲存過程、表變數、表值函式返回的表或遊標。
資料庫引擎建立的內部物件。 它們包括:
用於儲存假離線、遊標、排序和臨時大型物件 (LOB) 儲存的中間結果的工作表。
用於雜湊聯接或雜湊聚合操作的工作檔案。
用於建立或重新生成索引等操作(如果指定了 SORT_IN_TEMPDB)的中間排序結果,或者某些 GROUP BY、ORDER BY 或 UNION 查詢的中間排序結果。
版本儲存區是資料頁的集合,它包含支援用於行版本控制的功能的資料行。 有兩種型別:公用版本儲存區和聯機索引生成版本儲存區。 版本儲存區包含:
由透過行版本控制隔離或快照隔離事務使用 READ COMMITTED 的資料庫中的資料修改事務生成的行版本。
由資料修改事務為實現聯機索引操作、多重活動結果集 (MARS) 以及 AFTER 觸發器等功能而生成的行版本。
tempdb 中的操作是最小日誌記錄操作,以便回滾事務。 每次啟動 SQL Server 時都會重新建立 tempdb,從而在系統啟動時總是具有一個乾淨的資料庫副本。 在斷開聯接時會自動刪除臨時表和儲存過程,並且在系統關閉後沒有活動連線。
tempdb 不會有什麼內容從 SQL Server 的一個會話儲存到另一個會話。 不允許對 tempdb 執行備份和還原操作。
輔助資料檔案數取決於計算機上的(邏輯)處理器數。 一般而言,如果邏輯處理器數目小於或等於 8,則使用的資料檔案數與邏輯處理器數相同。 如果邏輯處理器數大於 8,請指定 8 個資料檔案。 如果仍然存在爭用,則以 4 的倍數增加資料檔案的數量,直到爭用減少到可接受的級別或對工作負荷/程式碼進行更改。
The optimal number of tempdb data files depends on the degree of contention seen in tempdb. As a starting point, you can configure tempdb to be at least equal to the number of logical processors that are assigned for SQL Server. For higher-end systems, the starting number could be eight (8). If the contention is not reduced, you may have to increase the number of data files.
tempdb 資料檔案的最優數量取決於 tempdb 中的爭用程度。首先,您可以將 tempdb 配置為至少等於為 SQL Server 分配的邏輯處理器的數量。對於更高階的系統,起始數字可以是八 (8)。如果爭用沒有減少,您可能必須增加資料檔案的數量
How increasing the number of tempdb data files reduces contention
The following list explains how increasing the number of tempdb data files that have equal sizing reduces contention:
If you have one data file for the tempdb, you only have one GAM page, and one SGAM page for each 4 GB of space.
Increasing the number of data files that have the same sizes for tempdb effectively creates one or more GAM and SGAM pages for each data file.
The allocation algorithm for GAM allocates one extent at a time (eight contiguous pages) from the number of files in a round robin fashion while honoring the proportional fill. Therefore, if you have 10 equally sized files, the first allocation is from File1, the second from File2, the third from File3, and so on.
The resource contention of the PFS page is reduced because eight pages at a time are marked as FULL because GAM is allocating the pages.
增加 tempdb 資料檔案的數量如何減少爭用
以下列表說明了增加具有相同大小的 tempdb 資料檔案的數量如何減少爭用:
如果 tempdb 有一個資料檔案,則每 4 GB 空間只有一個 GAM 頁和一個 SGAM 頁。
增加 tempdb 具有相同大小的資料檔案的數量可以有效地為每個資料檔案建立一個或多個 GAM 和 SGAM 頁。
GAM 的分配演算法以迴圈方式從檔案數量中一次分配一個範圍(八個連續頁),同時遵守比例填充。因此,如果有 10 個大小相同的檔案,則第一個分配來自 File1,第二個分配來自 File2,第三個分配來自 File3,依此類推。
PFS 頁面的資源爭用減少了,因為 GAM 正在分配頁面,一次將八個頁面標記為 FULL。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30126024/viewspace-2987550/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 關於SQLServer的tempdb的資料檔案暴增問題(1)SQLServer
- 建立最優的oracle資料庫Oracle資料庫
- 資料庫優化之臨時表優化資料庫優化
- 關於通過聚集索引以及堆來對比資料表組織結構-SQLServer最優實踐 的一點看法索引SQLServer
- 如何優化WindowsOS使SQLServer效能最優化優化WindowsSQLServer
- 關於資料庫檔案最大數資料庫
- SQLServer如何釋放tempdb臨時表空間SQLServer
- 資料庫優化的最佳實踐資料庫優化
- SQLServer資料庫中建立臨時表SQLServer資料庫
- Sqlserver 關於臨時表和表變數的總結SQLServer變數
- SQLServer效能優化之活用臨時表SQLServer優化
- 臨時資料檔案
- MySQL資料庫優化的最佳實踐MySql資料庫優化
- 2.5.10.2 關於資料庫時區檔案資料庫
- Java 應用效能調優最強實踐指南!Java
- 關於 es 資料同步的一次效能優化實踐優化
- 千億級工業大資料的最優方案!智光電氣的時序資料庫應用大資料資料庫
- 數值最優化—優化問題的解(二)優化
- SQLServer行版本資訊吃資料庫tempdb空間SQLServer資料庫
- . 資料庫臨時表空間的資料檔案的丟失資料庫
- 從實踐中尋找webpack4最優配置Web
- 大檔案排序優化實踐排序優化
- Oracle資料檔案和臨時檔案的管理Oracle
- 自己實現一個最簡單的資料庫資料庫
- 在SQL Server tempdb滿時檢查資料檔案SQLServer
- 關於PHP匯出資料超時的優化PHP優化
- sqlserver 透過壓縮bak檔案實現從伺服器還原資料庫《資料差異數個小時》SQLServer伺服器資料庫
- 【轉】關於Oracle資料庫的效能優化心得Oracle資料庫優化
- tempdb資料檔案暴增分析
- 易優eyoucms資料庫配置檔案是哪個在哪裡?資料庫
- 資料庫的最簡單實現資料庫
- 盤點2013:21款最優秀的開源資料庫資料庫
- 5個用於移動開發的最流行資料庫移動開發資料庫
- 檔案系統與資料庫的優缺點資料庫
- dataguard新增臨時資料檔案的bug
- 最優貿易
- 關於效能優化的一些實踐優化
- Vue 服務端渲染實踐 ——Web應用首屏耗時最優化方案Vue服務端Web優化