亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > SQL Server > 正文

《SQL Server企業級平臺管理實踐》讀書筆記——SQL Server中關于系統庫Tempdb總結

2024-08-31 00:55:09
字體:
來源:轉載
供稿:網友
《SQL Server企業級平臺管理實踐》讀書筆記——SQL Server中關于系統庫Tempdb總結

Tempdb系統數據庫是一個全局資源,可供連接到SQL Server實例的所有用戶使用。

存儲的內容項:

1、用戶對象

用戶對象由用戶顯示創建。這些對象可以位于用戶會話的作用域中,也可以位于創建對象所用例程的作用域中。例程可以是存儲過程、觸發器或用戶自定義函數。用戶對象可以是一下項內容之一:

  • 用戶定義的表和索引
  • 系統表和索引
  • 全局臨時表和索引
  • table變量
  • 表值函數中返回的表

2、內部對象

內部對象是根據需要由SQL Server數據庫引擎創建的,用戶處理SQL Server語句。內部對象可以在語句的作用域中創建和刪除。內部對象可以是下列項之一:

  • 用于游標或假脫機操作以及臨時大型對象(LOB)存儲的工作表
  • 用于哈希連接或哈希聚合操作的工作文件
  • 用于創建或重新生成索引等操作(如果指定了SORT_IN_TEMPDB)的中間排序結果,或者某些GROUP BY、ORDER BY或UNION查詢的中間排序結果。
  • 每個對象至少使用9頁:一個IAM頁,一個8頁的區。

3、版本存儲區

版本存儲區是數據頁的集合,它包含支持使用行版本控制的功能所需的數據行。主要用來支持快照(Snaphot)事務隔離級別,以及SQL Server2005推出的一些其它提高并法度的新功能。在SQL Server2005中,有兩個版本存儲區:公用版本存儲區和索引生產版本區。包含以下內容:

  • 由使用快照隔離界別或已提交讀隔離界別(基于行版本控制)的數據庫中的數據修改事務生成的行版本
  • 由數據修改事務為實現聯機索引操作、多個活動的結果集(MARS)以及AFTER觸發器等功能而生成行版本

在SQL Server2005以后,tempdb需要的磁盤空間會多于早期版本。因此當升級到SQL Server2005或SQL Server2008后,管理員提供的tempdb磁盤空間可能得比以前要大一些,用以容納當前生產工作負荷并滿足使用tempdb的SQL Server功能的額外空間要求。

Tempdb空間使用跟蹤

tempdb空間使用的一大特點,是只有一部分對象,比如:臨時表、table 變量等,可以用sys.allcoation_units和sys.partitions這樣的管理視圖來管理。所以用sp_spaceused的結果和真實情況會有很大差異。

提示:tempdb的空間使用是不能用sp_spaceused來跟蹤的。

DBCC SHOWFILESTATS還是可以反映數據庫文件使用的整體情況的。

在2005版本以后引入了一個新的視圖:sys.dm_db_file_space_usage;這張視圖能反映出tempdb在如下幾個大類的空間里使用分布:

select * from sys.dm_db_file_space_usage

其中:

database_id:數據庫ID

file_id:文件ID,file_id映射到sys.dm_io_virtual_file_stats中的file_id,并且映射到sys.sysfile中的fileid

unallocated_extent_page_count:文件未分配區中的總頁數,不包含已分配區中的未使用頁

version_store_reserved_page_count:為版本存儲分配的統一區中的總頁數

user_object_reserved_page_count:為從統一區為數據庫中的用戶對象分配的總頁數。計數中包括已分配區中未使用的頁。可以使用sys.allocation_units目錄視圖中的total_pages列來返回用戶對象每個分配單元保留的頁計數

internale_object_reserved_page_count:從統一區為文件中的內部對象分配的總頁數。計數包括已分配區中未使用的頁

mixed_extent_page_count:文件的已分配混合區中的已分配和未分配總頁數。混合區包含分配給不同對象的頁。此計數器包含文件中的所有的IAM頁

通過這個表的監視,就能知道temdb的空間被那個一塊對象使用掉了,是用戶對象(user_object_reserved_page_count),還是系統對象(internal_object_reserved_page_count),還是版本存儲區對象(version_store_reserved_page_count)。

tempdb在生產環境中的設置的初始大小其實是一個經驗值,也就是說沒有一個好的固定值,但是我們可以根據工作負荷來確定該值的大小值:

1、設置tempdb的自動增長

2、模擬各個單獨的查詢或工作任務,同時監視tempdb空間使用

3、模擬執行一些系統維護操作,例如,重新生成索引,同時監視tempdb空間

4、使用前面2和3步中tempdb空間使用值來預測總的工作負荷下,會使用多少空間;并針對計劃的并發度調整此值。例如,如果一個任務會使用10GB的tempdba空間,而在生產環境里,最多可能會有4個這樣的任務同時運行,那就要至少預留40GB的空間。

5、設置tempdb在生產環境下的初始大小。同時也開始自動增長。

Temp文件個數以及大小設置,不但滿足用戶任務的需求,還要考慮到性能優化。

我們利用腳本來跟蹤一下,看看是什么樣的操作導致了SQL Server要這樣大規模的使用tempdb,然后分析一下是正常行為還是異常行為,監視SQL Server的行為當然可以利用SQL Trace來完成??墒枪芾韱T并不能預期造成大量使用tempdb的語句會在什么時刻運行。這些語句可能一周只做一次。而且開跟蹤畢竟對SQL Server來講是一個比較昂貴的事情,就算沒有性能副作用,如果一直開著SQL Trace,也會產生大量的跟蹤文件,對硬盤是個比較重的負擔。

推薦的“輕量級”的操作是以一定的時間間隔運行能夠監視系統運行狀況的DBCC命令、查詢管理視圖(DMV)以及管理函數(DMF)等,把這個結果輸出到一個文件里。

新開一個連接,我們輸入以下常規腳本:

select @@SPIDgouse AdventureWorksgo select GETDATE()go select * into #MyOrdersDetailfrom Sales.SalesOrderDetail--創建一個臨時表--這個操作應該會申請用戶對象頁面gowaitfor delay '0:0:2'select GETDATE()godrop table #MyOrdersDetail--刪除一個臨時表--這個操作用戶對象頁面數量應該會下降gowaitfor delay '0:0:2'select GETDATE()goselect top 100000 * from[Sales].[SalesOrderDetail] inner join [Sales].[SalesOrderHeader] on [Sales].[SalesOrderHeader].[SalesOrderID] =[Sales] .[SalesOrderHeader].SalesOrderID;--這里做了一個比較大的連接,應該會有系統對象申請goselect GETDATE()--join 語句做完以后系統對象頁面數目應該會下降go

然后另開一個窗口,我們輸入監控腳本,輸出結果以文本方式存儲

use tempdb--每隔1s運行一次,直到用戶手工終止腳本運行while 1=1beginselect GETDATE()--從文件級看temp使用情況dbcc showfilestats--第一個會話--返回所有做過空間申請的會話信息select 'Tempdb' as DB,GETDATE() as Time,sum(user_object_reserved_page_count)*8 as user_obectskb,SUM(internal_object_reserved_page_count)*8 as internal_objects_kb,SUM(version_store_reserved_page_count)*8 as version_store_kb,SUM(unallocated_extent_page_count)*8 as freespace_kbfrom sys.dm_db_file_space_usagewhere database_id=2--第二個會話--這個管理視圖能夠反映當時tempdb空間的總體分配select t1.session_id,t1.internal_objects_alloc_page_count,t1.user_objects_alloc_page_count,t1.internal_objects_dealloc_page_count,t1.user_objects_dealloc_page_count,t3.*from sys.dm_db_session_space_usage t1,--反映每個會話累計空間申請sys.dm_exec_sessions as t3--每個會話信息where t1.session_id=t3.session_idand (t1.internal_objects_alloc_page_count+t1.internal_objects_dealloc_page_count+t1.user_objects_alloc_page_count+t1.user_objects_dealloc_page_count)>0--第三會話--返回正在運行并且做過空間申請的會話正在運行的語句select t1.session_id,st.textfrom sys.dm_db_session_space_usage as t1,sys.dm_exec_requests as t4cross apply sys.dm_exec_sql_text(t4.sql_handle) as stwhere t1.session_id=t4.session_idand t1.session_id>50and (t1.internal_objects_alloc_page_count+t1.internal_objects_dealloc_page_count+t1.user_objects_alloc_page_count+t1.user_objects_dealloc_page_count)>0waitfor delay '0:0:1'end

我們先運行監控,然后再運行一般腳本,可以分析一下跟蹤結果。

可以看到在新建臨時表的時候,對于Tempdb的申請空間有所增加。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
在线午夜精品自拍| 亚洲欧洲在线观看| 精品国产乱码久久久久久虫虫漫画| 国产亚洲成av人片在线观看桃| 中文字幕久热精品在线视频| 精品日本美女福利在线观看| 欧美国产日韩免费| 成人疯狂猛交xxx| 亚洲a级在线播放观看| 国产精品美女免费| 亚洲一级黄色片| 成人精品久久久| 欧美成人精品h版在线观看| 久久精品精品电影网| 国产一区二区日韩精品欧美精品| 中文字幕在线日韩| 国产一区二区三区在线视频| 国产精品久久久久免费a∨大胸| 欧美限制级电影在线观看| 欧美精品福利视频| 最近2019免费中文字幕视频三| 欧美成人亚洲成人日韩成人| 亚洲国产成人精品电影| 欧美韩国理论所午夜片917电影| 黄色成人在线播放| 国产成人亚洲综合91| www.日韩.com| 欧美成人国产va精品日本一级| 精品国产31久久久久久| 欧美视频精品一区| 国产一区二区三区在线免费观看| 91精品久久久久久久久久久久久| 午夜精品国产精品大乳美女| 激情成人中文字幕| 91网在线免费观看| 国产精品一区专区欧美日韩| 青青青国产精品一区二区| 国产精品久久久久久久电影| 国产精品无码专区在线观看| 成人有码视频在线播放| 亚洲成色999久久网站| 日产日韩在线亚洲欧美| 欧美黄色免费网站| 久久免费视频网站| 亚洲欧美制服另类日韩| 国产精品私拍pans大尺度在线| 亚洲自拍偷拍在线| 国产免费一区二区三区在线能观看| 日韩欧美主播在线| 国产在线精品播放| 国产亚洲一级高清| 色综合天天狠天天透天天伊人| 亚洲人成77777在线观看网| 亚洲专区在线视频| 久久精品视频99| 欧美成人精品在线视频| 国产精品最新在线观看| 国产精品影院在线观看| 国产成人亚洲综合| 国产精品免费一区| 91久久精品国产91性色| 国产精品亚洲аv天堂网| 日韩免费av片在线观看| 欧美人在线视频| 亚洲人成网7777777国产| 久久精品视频中文字幕| 亚洲美女激情视频| 国产亚洲精品久久久久久777| 久久91精品国产91久久跳| 久久视频中文字幕| 亚洲精品日产aⅴ| 国产精品久久久久久中文字| 97久久伊人激情网| 欧美午夜女人视频在线| 日韩av黄色在线观看| 亚洲欧美激情在线视频| 91青草视频久久| 亚洲影院色在线观看免费| 色一区av在线| 成人国产精品久久久| 亚洲第一男人av| 国产日产欧美a一级在线| 啊v视频在线一区二区三区| 国产精品国产三级国产aⅴ9色| 狠狠综合久久av一区二区小说| 中文字幕久热精品在线视频| 另类视频在线观看| 亚洲 日韩 国产第一| 成人免费高清完整版在线观看| 欧美激情极品视频| 国产精自产拍久久久久久蜜| 91最新国产视频| 国产性色av一区二区| 91高清免费在线观看| 国产精品啪视频| 超碰97人人做人人爱少妇| 视频直播国产精品| 亚洲黄色有码视频| 久久97精品久久久久久久不卡| 亚洲欧美精品一区二区| 欧美日韩中文在线| 国产精品视频免费在线| 欧美壮男野外gaytube| 久久久亚洲福利精品午夜| 亚洲激情电影中文字幕| 欧美一区二区三区艳史| 97在线免费视频| 狠狠做深爱婷婷久久综合一区| 国产精品偷伦一区二区| 欧美另类精品xxxx孕妇| 成人444kkkk在线观看| 欧美午夜电影在线| 日韩少妇与小伙激情| 亚洲人成绝费网站色www| 国产亚洲在线播放| 亚洲第一页自拍| 日韩美女福利视频| 久久久人成影片一区二区三区观看| 国产精品成av人在线视午夜片| 国产精品扒开腿爽爽爽视频| 黑人巨大精品欧美一区免费视频| 欧美性少妇18aaaa视频| 日韩国产欧美精品在线| 亚洲国产精品字幕| 亚洲女人被黑人巨大进入al| 亚洲欧美成人一区二区在线电影| 欧美日韩精品在线播放| 亚洲精品国产欧美| 国产精品久久中文| 精品久久香蕉国产线看观看亚洲| 欧美黑人国产人伦爽爽爽| 亚洲色图第三页| 91天堂在线观看| 亚洲无线码在线一区观看| 91视频-88av| 国产精品91免费在线| 日韩欧美国产网站| 影音先锋日韩有码| 亚洲精选在线观看| 91在线观看免费高清| 91国语精品自产拍在线观看性色| 日韩欧美亚洲一二三区| 4438全国成人免费| 欧美日韩亚洲视频| 色偷偷偷亚洲综合网另类| 久久天天躁狠狠躁夜夜av| 57pao精品| 亚洲欧美中文另类| 欧美日韩精品中文字幕| 91精品视频网站| 色777狠狠综合秋免鲁丝| 国产高清在线不卡| 成人国内精品久久久久一区| 欧美电影院免费观看| 国外视频精品毛片| 国产一区二区三区高清在线观看| 日韩中文在线不卡| 青青草精品毛片| 久久久精品美女| 精品久久久av| 国产亚洲精品一区二区| 26uuu亚洲国产精品| 亚洲老头同性xxxxx| 亚洲va欧美va国产综合久久|