日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

八、IO优化(6)优化tempdb性能

發(fā)布時(shí)間:2025/3/17 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 八、IO优化(6)优化tempdb性能 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、tempdb簡(jiǎn)介

1. 概念

  tempdb是一個(gè)系統(tǒng)數(shù)據(jù)庫,可供連接到SQL Server實(shí)例的所有用戶使用。

  每次啟動(dòng) SQL Server 時(shí)都會(huì)重新創(chuàng)建 tempdb,從而在系統(tǒng)啟動(dòng)時(shí)總是保持一個(gè)干凈的數(shù)據(jù)庫副本。在斷開聯(lián)接時(shí)會(huì)自動(dòng)刪除臨時(shí)表和存儲(chǔ)過程,并且在系統(tǒng)關(guān)閉后沒有活動(dòng)連接。因此 tempdb 中不會(huì)有什么內(nèi)容從一個(gè) SQL Server 會(huì)話保存到另一個(gè)會(huì)話。

  不允許對(duì) tempdb 進(jìn)行備份和還原操作。


2. tempdb保存的對(duì)象

(1)顯式創(chuàng)建的用戶對(duì)象

  這些對(duì)象由用戶顯式創(chuàng)建。存在于用戶會(huì)話的作用域中,也可位于創(chuàng)建對(duì)象所用的例程(存儲(chǔ)過程、觸發(fā)器或用戶定義函數(shù))的作用域中。

  包括:表和索引(系統(tǒng)的,或用戶定義的)、臨時(shí)表和索引(全局的,或局部的)、表變量、表值函數(shù)中返回的表。


(2)數(shù)據(jù)庫引擎創(chuàng)建的內(nèi)部對(duì)象

  這些內(nèi)部對(duì)象由數(shù)據(jù)庫引擎根據(jù)需要而創(chuàng)建,用于處理SQL Server語句。可以在語句的作用域中創(chuàng)建和刪除。每個(gè)內(nèi)部對(duì)象至少使用9個(gè)頁面:1個(gè)IAM頁,1個(gè)連續(xù)8頁的區(qū)。

  包括:用于游標(biāo)或假脫機(jī)操作以及臨時(shí)大型對(duì)象(LOB)存儲(chǔ)的工作表;用于HASH連接或HASH聚合操作的工作表;用于創(chuàng)建或重新生成索引等操作(如果指定了SORT_IN_TEMPDB)的中間排序結(jié)果,或者某些GROUP BY、ORDER BY或UNION查詢的中間排序結(jié)果。


(3)版本存儲(chǔ)區(qū)

  版本存儲(chǔ)區(qū)是數(shù)據(jù)頁的集合,它包含支持使用行版本控制的功能所需的數(shù)據(jù)行,主要用來支持快照事務(wù)隔離級(jí)別,以及一些其它提高數(shù)據(jù)庫并發(fā)性能的新功能。主要分為2類:公用版本存儲(chǔ)區(qū)、聯(lián)機(jī)索引生成版本存儲(chǔ)區(qū)。

  包括:由使用快照隔離級(jí)別或已提交隔離級(jí)別(基于行版本控制)的數(shù)據(jù)庫中的數(shù)據(jù)修改事務(wù)生成的行版本;由數(shù)據(jù)修改事務(wù)為實(shí)現(xiàn)聯(lián)機(jī)索引操作、多個(gè)活動(dòng)的結(jié)果集(MARS)以及AFTER觸發(fā)器等功能而生成的行版本。


3. tempdb 的性能提高

  在 SQL Server 中,tempdb 性能以下列方式進(jìn)行提高:

(1)可能緩存臨時(shí)表和表變量。緩存允許刪除和創(chuàng)建臨時(shí)對(duì)象的操作非常快速地執(zhí)行,并減少頁分配的爭(zhēng)用問題。

(2)分配頁閂鎖協(xié)議得到改善。從而減少使用的 UP(更新)閂鎖數(shù)。

(3)減少了 tempdb 的日志開銷。從而降低了 tempdb 日志文件上的磁盤 I/O 帶寬占用。

(4)在 tempdb 中分配混合頁的算法得到改善。



二、監(jiān)視tempdb大小

  tempdb 數(shù)據(jù)庫的大小和物理位置可能會(huì)影響系統(tǒng)的性能。tempdb 的大小可以影響系統(tǒng)性能。例如,如果 tempdb 的大小太小,則每次啟動(dòng) SQL Server 時(shí),系統(tǒng)處理可能忙于數(shù)據(jù)庫的自動(dòng)增長(zhǎng),而不能支持工作負(fù)荷要求。可以通過增加 tempdb 的大小來避免此開銷。

  如果 tempdb 中磁盤空間不足,則可能會(huì)嚴(yán)重破壞 SQL Server 生產(chǎn)環(huán)境,并會(huì)使正在運(yùn)行的應(yīng)用程序無法完成操作。

  可以使用 sys.dm_db_file_space_usage 動(dòng)態(tài)管理視圖來監(jiān)視 tempdb 文件中的這些功能使用的磁盤空間。

  此外,若要在會(huì)話級(jí)或任務(wù)級(jí)監(jiān)視 tempdb 中的頁分配或頁釋放活動(dòng),可以使用動(dòng)態(tài)管理視圖 sys.dm_db_session_space_usage 和 sys.dm_db_task_space_usage。這些視圖可用于標(biāo)識(shí)使用 tempdb 中大量磁盤空間的大型查詢、臨時(shí)表或表變量。

  還可以使用若干個(gè)計(jì)數(shù)器來監(jiān)視 tempdb 中的可用空間以及使用 tempdb 的資源。

http://technet.microsoft.com/zh-cn/library/ms176029(v=sql.105).aspx


  每次創(chuàng)建 tempdb 時(shí)都要使用文件大小和文件增長(zhǎng)參數(shù)的值。例如,如果您將 tempdb 數(shù)據(jù)文件的大小增加到 20 MB 并將文件增量增加到 15%,則新的值將立即生效。如果后續(xù)事務(wù)活動(dòng)使 tempdb 的大小增大,則每次重新啟動(dòng) SQL Server 實(shí)例時(shí),數(shù)據(jù)文件的大小都將返回到 20 MB。


三、tempdb的通用原則

1. 文件數(shù)量

  根據(jù)需要?jiǎng)?chuàng)建足夠多的文件以使磁盤寬度最大化。使用多個(gè)文件可以減少 tempdb 存儲(chǔ)爭(zhēng)用并獲得更大的可伸縮性。但是,請(qǐng)勿創(chuàng)建過多的文件,因?yàn)榇瞬僮骺赡芙档托阅懿⒃黾庸芾黹_銷。

  作為通用原則,為服務(wù)器中的每一個(gè) CPU 創(chuàng)建一個(gè)數(shù)據(jù)文件(用于解釋任何關(guān)聯(lián)掩碼設(shè)置),然后根據(jù)需要上下調(diào)整文件的數(shù)量。


2. 恢復(fù)模式

  將 tempdb 的恢復(fù)模式設(shè)置為 SIMPLE。此模式自動(dòng)回收日志空間以保持較小的空間要求。


3. 自動(dòng)增長(zhǎng)

  通過將文件大小設(shè)置為足夠容納環(huán)境中典型工作負(fù)荷的值來預(yù)分配所有 tempdb 文件的空間。這可以避免 tempdb 因擴(kuò)展得過于頻繁而影響性能。



本文結(jié)語:

  規(guī)劃tempdb數(shù)據(jù)庫的大小,根據(jù)CPU數(shù)量使用多個(gè)文件。


總結(jié)

以上是生活随笔為你收集整理的八、IO优化(6)优化tempdb性能的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。