国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 數(shù)據(jù)庫(kù) > SQL Server > 正文

SQL Server 2016 TempDb里的顯著提升

2024-08-31 01:03:32
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

幾個(gè)星期前,SQL Server 2016的最新CTP版本已經(jīng)發(fā)布了:CTP 2.4(目前已經(jīng)是CTP 3.0)。關(guān)于SQL Server 2016 CTP2.3 的關(guān)鍵特性總結(jié),在此不多說(shuō)了,具體內(nèi)容請(qǐng)查相關(guān)資料。這個(gè)預(yù)覽版相比以前的CTP包含了很多不同的提升。在這篇文章里我會(huì)談下對(duì)于SQL Server 2016,TempDb里的顯著提升。

TempDb定制

在SQL Server 2016安裝期間,第一個(gè)你會(huì)碰到的改變是在安裝過(guò)程中,現(xiàn)在你能配置TempDb的物理配置。我們可以詳細(xì)看下面的截屏。

SQL Server 2016 TempDb里的顯著提升

微軟現(xiàn)在檢測(cè)幾個(gè)可用的CPU內(nèi)核,基于這個(gè)數(shù)字安裝程序自動(dòng)配置TempDb文件個(gè)數(shù)。這個(gè)對(duì)克服閂鎖競(jìng)爭(zhēng)問(wèn)題(Latch Contention problem)非常重要,通常當(dāng)你運(yùn)行TempDb時(shí),只有一個(gè)數(shù)據(jù)文件會(huì)發(fā)生。這里安裝向?qū)褂孟铝泄剑?/p>

當(dāng)你有小于等于8個(gè)CPU內(nèi)核,你會(huì)獲得和你CPU內(nèi)核數(shù)一樣的TempDb數(shù)據(jù)文件數(shù)。
如果你有超過(guò)8個(gè)CPU內(nèi)核,你會(huì)得到開(kāi)箱即用的8個(gè)TempDb數(shù)據(jù)文件。
我在不同的配置上測(cè)試了安裝向?qū)В卤砜偨Y(jié)了TempDb數(shù)據(jù)文件的不同個(gè)數(shù)。

CPU內(nèi)核    TempDb數(shù)據(jù)文件

2        2

4        4

8        8

32        8

這是一個(gè)巨大的進(jìn)步!當(dāng)我進(jìn)行SQL Server健康檢查時(shí),TempDb只有一個(gè)數(shù)據(jù)文件,會(huì)有一些閂鎖競(jìng)爭(zhēng)問(wèn)題(Latch Contention problem)是常見(jiàn)的。

如果在向?qū)Ю锬闾峁┒鄠€(gè)數(shù)據(jù)路徑,你可以在各個(gè)文件夾之間循環(huán)(round-robin)分配。有一點(diǎn)我不喜歡的是,新的配置8MB的初始大小和64MB的自動(dòng)增長(zhǎng)率。

分配和自動(dòng)增長(zhǎng)

在SQL Server 2016之前,很多人使用1117和1118跟蹤標(biāo)記來(lái)定義SQL Server在數(shù)據(jù)庫(kù)里如何分配頁(yè),和如何在多個(gè)數(shù)據(jù)文件間處理自動(dòng)增長(zhǎng)操作。在以前的SQL Server版本里,臨時(shí)表的數(shù)據(jù)頁(yè)總分配在所謂的混合區(qū)(Mixed Extends),它大小是64kb在多個(gè)數(shù)據(jù)庫(kù)對(duì)象(像表和索引)間共享。

使用這個(gè)方法微軟保證小表保持小,因?yàn)閿?shù)據(jù)庫(kù)的第1個(gè)8頁(yè)總在混合區(qū)分配。接下來(lái)的頁(yè)(第9頁(yè)開(kāi)始)在所謂的統(tǒng)一區(qū)(也是64k大小)里分配。每次你給數(shù)據(jù)庫(kù)對(duì)象分配一個(gè)統(tǒng)一區(qū),對(duì)象本身立即增長(zhǎng)64kb。

當(dāng)你啟用SQL Server的1118跟蹤標(biāo)記,對(duì)于整個(gè)SQL Server實(shí)例,只在統(tǒng)一區(qū)分配,混合區(qū)會(huì)被忽略。使用這個(gè)方法是可以減少在SGAM(共享全局分配映射(Shared Global Allocation Map)頁(yè),管理混合區(qū))頁(yè)上的閂鎖競(jìng)爭(zhēng)問(wèn)題(Latch Contention problem)。

在SQL Server 2016里TempDb分配總在統(tǒng)一區(qū)里發(fā)生,而不使用混合區(qū)——不需要啟用任何跟蹤標(biāo)記。除臨時(shí)表外的分配還是使用混合區(qū)。下面的例子展示了在臨時(shí)表7個(gè)分配的頁(yè)直接存儲(chǔ)在統(tǒng)一區(qū),而完全不使用混合區(qū)。

USE tempdb GO CREATE TABLE #HelperTable ( Col INT IDENTITY(, ) PRIMARY KEY NOT NULL, Col CHAR() NOT NULL ) GO -- Insert records, this allocates pages in tempdb INSERT INTO #HelperTable VALUES (REPLICATE('a', )) GO -- Enable DBCC trace flag DBCC TRACEON() GO -- Retrieve the temp table name from sys.tables SELECT name FROM sys.tables WHERE name LIKE '#HelperTable%' GO -- Retrieve the first data page for the specified table (columns PageFID and PagePID) DBCC IND(tempdb, [#HelperTable________________________________________________________________________________________________________B], -) GO -- Dump the IAM page of the table TestTable retrieved by DBCC IND previously -- No pages are allocated in Mixed Extents, a complete Uniform Extent is allocated. DBCC PAGE (tempdb, , , ) GO -- Clean up DROP TABLE #HelperTable GO

在過(guò)去1117跟蹤標(biāo)記和TempDb結(jié)合進(jìn)行同時(shí)自動(dòng)增長(zhǎng)操作。確保文件在同個(gè)區(qū)里同時(shí)增長(zhǎng)非常重要。不然成比例的填充算法(proportional fill algorithm)不能發(fā)揮應(yīng)有的作用。使用SQL Server 2016,你就直接有1117跟蹤標(biāo)記的這個(gè)功能,而不需要啟用。

小結(jié)

花了很長(zhǎng)時(shí)間后,微軟終于開(kāi)始在SQL Server安裝向?qū)Ю镞M(jìn)行更好的默認(rèn)配置。根據(jù)可用CPU核心數(shù)配置TempDb是個(gè)巨大的進(jìn)步。我們來(lái)看看下個(gè)版本會(huì)提供根據(jù)實(shí)際情況能配置MAXDOP,并行開(kāi)銷(xiāo)閾值和服務(wù)器最大內(nèi)存等等...

本文到此介紹了,感謝您的關(guān)注!


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到MSSQL教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 奉贤区| 阿坝| 巢湖市| 沙河市| 永宁县| 老河口市| 虎林市| 绥阳县| 九台市| 肇源县| 双牌县| 麻阳| 淄博市| 金山区| 静宁县| 大竹县| 福贡县| 襄城县| 平陆县| 毕节市| 射阳县| 台湾省| 遂平县| 都安| 永年县| 长岛县| 崇左市| 班玛县| 娱乐| 林甸县| 永济市| 乾安县| 油尖旺区| 九江市| 杨浦区| 白山市| 保山市| 高密市| 巴塘县| 西丰县| 会泽县|