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

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

SQL Server 2005中Tempdb變化分析

2024-08-31 00:50:09
字體:
來源:轉載
供稿:網(wǎng)友
  • 網(wǎng)站運營seo文章大全
  • 提供全面的站長運營經(jīng)驗及seo技術!
  •   tempdb數(shù)據(jù)庫是sql server用于臨時或者開關操作的數(shù)據(jù)庫。對tempdb所做的很多優(yōu)化都是在透明的情況下,讓處理加速,本文就介紹tempdb對sql server 2005的影響以幫助大家利用這些來寫出更好的、更先進的sql server 2005代碼。

      sql server 2005版本中的所有變化可以寫成一本書,事實上,已經(jīng)被寫成了好幾本書。其中,最重要的變化不是功能上的變化;這些變化發(fā)生在用戶或者管理員無法立刻感覺到的內部的行為上。這就是說,了解到它們是什么,它們在什么狀況下會表現(xiàn)出來,將會很有用。

      這些的隱藏起來的性能提升中最好的一個例子就是tempdb數(shù)據(jù)庫——sql server用于臨時或者開關操作的數(shù)據(jù)庫。對tempdb所做的很多優(yōu)化都是在透明的情況下,讓處理加速:

      ◆當臨時表被創(chuàng)建的時候,臨時表會被緩存起來加速性能。然而,有一些表明確的不會被緩存:

      ◆關聯(lián)著顯式ddl的臨時表

      ◆關聯(lián)著命名的約束的臨時表

      ◆作為動態(tài)產(chǎn)生的sql語句的一部分的臨時表——例如,存儲過程sp_executesql的環(huán)境中

      ◆工作表的緩存得到提升。為了節(jié)約了空間,會被反復執(zhí)行的執(zhí)行計劃中的工作表被截短了;現(xiàn)在只有工作表中的前九個頁面才會保留。

      ◆很多其他類型的臨時對象也被緩存以提高速度:當在存儲過程、函數(shù)或者觸發(fā)器中使用時,表值函數(shù),表變量和局部臨時表都會被緩存。對于某種特定的臨時對象的編目條目不會被立即丟棄,而是緩存以備將來的重用(一段時間之后,最少使用的對象將從緩存中清除)。

      ◆對于tempdb中記錄的一些修改將不再被記錄到日志中,這樣可以降低tempdb產(chǎn)生的日志和設備的i/o流量。insert操作只會記錄插入的記錄,delete操作只會記錄被刪除的記錄。只有update操作才會同時記錄原值和更新之后的值。(根據(jù)microsoft的內部資料,在此之前的版本,三種操作都會記錄操作之前的值和操作之后的值)

      ◆重新設計tempdb的文件被均衡寫入的方式,減少對系統(tǒng)資源的競爭。均衡寫入意味著每一個tempdb文件(假設存在多個文件)會被同時寫入。因此,如果每個物理文件分散到不同的磁頭上,那么對這些文件的寫入可以更加有效率的并行處理。建議你為一個sql server在每一個cpu創(chuàng)建一個臨時文件,并且將每個臨時文件放在不同的磁頭上。

      ◆如果一個臨時表從tempdb中被丟棄,它會在后臺進行處理以降低主機程序的等待時間。實際上,它會被立即處理。

      不僅僅是性能,一些變化也影響到了sql server 2005的統(tǒng)計收集操作:

      ◆sql server 2005的動態(tài)管理視圖(dynamic management views)報告關于tempdb空間使用情況的統(tǒng)計數(shù)據(jù),可以通過查詢檢索到這些數(shù)據(jù)。例如,select sum (unallocated_extent_page_count)*8 as [free space] from sys.dm_db_file_space_usage會返回tempdb文件中以kilobytes計算的自由空間總數(shù)。

      ◆trace標志tf-1118(表示分配整個的extents給每個tempdb對象)已經(jīng)被重新改造,減少資源的競爭。你可以用它作trace檢查而不用擔心對tempdb性能產(chǎn)生影響。

      ◆兩個新的性能指標,臨時表新建率(temp tables creation rate)和臨時表銷毀計數(shù)(temp tables for destruction),在sql server 2005中出現(xiàn)。它們分別指示每秒鐘新建多少個臨時表和多少個臨時表在排隊銷毀。

      這些變化可以讓程序員對tempdb實際的運行方式有一些洞察,而不是被它表面上的行為所蒙蔽——毫無疑問,一個創(chuàng)新的程序員可以利用這些來寫出更好的、更先進的sql server 2005代碼。

    發(fā)表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發(fā)表
    主站蜘蛛池模板: 商丘市| 虎林市| 无棣县| 冷水江市| 定结县| 湘阴县| 无为县| 东乡| 岢岚县| 正定县| 南投县| 甘谷县| 宝坻区| 宣威市| 新泰市| 盱眙县| 饶河县| 航空| 德化县| 华阴市| 博客| 马山县| 孝义市| 澄迈县| 东宁县| 西峡县| 涟源市| 青川县| 河北省| 酒泉市| 定西市| 岳阳县| 鄄城县| 富阳市| 阜城县| 赣州市| 原阳县| 临海市| 文登市| 沅江市| 潜山县|