偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

SQL Server 2008內(nèi)存性能監(jiān)控

數(shù)據(jù)庫(kù) SQL Server
SQL Server 2008是SQL Server數(shù)據(jù)庫(kù)開發(fā)過(guò)程中又一偉大的產(chǎn)物,SQL Server 2008見證著SQL Server數(shù)據(jù)庫(kù)的發(fā)展,下文中將為大家主要介紹SQL Server 2008內(nèi)存性能監(jiān)控。

內(nèi)存的相關(guān)概念

以下均是針對(duì)Window 32位系統(tǒng)環(huán)境下,64位的不在下面描述情況下。

用戶模式和內(nèi)核模式(user mode& kernel mode)

  為了防止用戶程序訪問(wèn)并篡改操作系統(tǒng) 的關(guān)鍵部分,Windows使用了2種處理器存取模式:用戶模式和內(nèi)核模式。顧名思義,內(nèi)核模式是給操作系統(tǒng) 核心代碼和基本驅(qū)動(dòng)用的,用戶模式給用戶應(yīng)用程序。在內(nèi)核模式下程序可以訪問(wèn)所有的內(nèi)存 和硬件,并使用所有的處理器指令。操作系統(tǒng)程序比用戶程序有更高的權(quán)限,使得系統(tǒng)設(shè)計(jì)者可以確保用戶程序不會(huì)意外的破壞系統(tǒng)的穩(wěn)定性。

物理內(nèi)存(Physical Memory)

  即實(shí)際購(gòu)買的內(nèi)存的大小,內(nèi)存條上的容量。CPU 的地址線可以直接進(jìn)行尋址的內(nèi)存空間大小,在32位操作系統(tǒng)平臺(tái)上,CPU 的***尋址空間為4GB,也即可以支持***4G的物理內(nèi)存空間。在32位操作系統(tǒng)上即便你購(gòu)買的是64G內(nèi)存,也只能說(shuō)擁有4GB的物理內(nèi)存空間

虛擬內(nèi)存(Virtual Memory)

  如果計(jì)算機(jī)缺少運(yùn)行程序或操作所需的隨機(jī)存儲(chǔ)內(nèi)存,則Windows使用虛擬內(nèi)存進(jìn)行補(bǔ)償。虛擬內(nèi)存將計(jì)算機(jī)的RAM和硬盤 上的臨時(shí)空間組合在一起,當(dāng)RAM不足時(shí),虛擬內(nèi)存將數(shù)據(jù)從RAM移動(dòng)到稱為“分頁(yè)文件”的空間中,將數(shù)據(jù)移入與移出分頁(yè)文件可以釋放RAM,以便完成工作。

虛擬地址空間(Virtual Address Space,簡(jiǎn)稱VAS)

  在Windows系統(tǒng)中,任何一個(gè)進(jìn)程都被賦予了其自己的虛擬地址空間,該虛擬地址空間覆蓋了一個(gè)相當(dāng)大的范圍,對(duì)于32位系統(tǒng)的虛擬地址空間范圍從 0x00000000~0xffffffff(4GB)。Windows采用分頁(yè)機(jī)制,將4G的地址空間分成固定大小的頁(yè),并且將虛擬地址中的每一頁(yè)映射到物理內(nèi)存中。

  在缺省的情況下虛擬地址空間中的低2G,即0x0000000~0x7FFFFFFFF是用戶地址空間,而4G虛擬地址空間中的高2G即0x8000000~0xFFFFFFFF是分配給內(nèi)核模式。實(shí)際上用戶進(jìn)程擁有的虛擬地址空間只有2GB。

虛擬內(nèi)存管理器(Virtual Memory Manager)

  虛擬內(nèi)存管理器負(fù)責(zé)虛擬地址空間和物理內(nèi)存的地址映射,如果缺乏足夠內(nèi)存,則需要使用到page file文件來(lái)保持臨時(shí)數(shù)據(jù)也即虛擬內(nèi)存,同時(shí)使用page table entry(PTE)來(lái)跟蹤每一個(gè)地址映射關(guān)系。

到這里為止,64G的內(nèi)存有60G都無(wú)法訪問(wèn),豈不是浪費(fèi)了,那怎么辦?

/3GB和increaseUserVA

  通過(guò)/3GB的方式,可以減少內(nèi)核模式占用地址空間,從而增加SQL Server進(jìn)程的地址空間。默認(rèn)情況下,用戶模式和內(nèi)核模式各自占用2G尋址空間,3G選項(xiàng)可以使得SQL Server獲得多1G的虛擬地址空間。

/3GB開關(guān)用法:

  在Boot.ini文件中修改其中的段落即可:

 

  或者使用bootcfg命令

 

  在Windows Server 2008中可以運(yùn)行BCDEdit命令,加以調(diào)整。

 

物理地址擴(kuò)展PAE(Physical Address Extension)

  物理地址擴(kuò)展(PAE)是32位Intel CPU的一種擴(kuò)展,這樣可以在32位系統(tǒng)上支持***64G的物理內(nèi)存,即4GB以上物理內(nèi)存允許將更多物理內(nèi)存映射為應(yīng)用程序的虛擬地址空間。

使用方式,在Boot.ini文件中修改其中的段落即可:

 

在Windows Server 2008操作系統(tǒng)下也可以通過(guò)以下命令執(zhí)行

#p#

 

/PAE和/3GB

  兩者的目標(biāo)是不同的,又可以在同樣的地方進(jìn)行配置,所以難免產(chǎn)生疑惑,簡(jiǎn)單的來(lái)說(shuō)就是如果計(jì)算機(jī)可用物理內(nèi)存超過(guò)16GB,就需要確保boot.ini文件中沒(méi)有/3gb參數(shù)即可。

地址窗口化擴(kuò)展插件AWE(Address Windowing Extensions)

  AWE是Windows的內(nèi)存管理功能的一組擴(kuò)展,它能夠使應(yīng)用程序使用的內(nèi)存量超過(guò)通過(guò)標(biāo)準(zhǔn)32位尋址可使用的2~3G內(nèi)存。AWE允許應(yīng)用程序獲取物理內(nèi)存,然后將非分頁(yè)內(nèi)存的視圖映射到32位地址空間。雖然32位地址空間限制為4GB,但是非分頁(yè)內(nèi)存卻可以遠(yuǎn)遠(yuǎn)大于4GB。

  在SQL Server 2008下,可以登錄SQL Server Management Studio,找到相應(yīng)的數(shù)據(jù)庫(kù)實(shí)例,點(diǎn)擊右鍵選擇屬性,然后在“選擇頁(yè)”中點(diǎn)擊內(nèi)存,在服務(wù)器內(nèi)存 選項(xiàng)中,復(fù)選使用AWE分配內(nèi)存即可。

 

SQLServer的內(nèi)存管理

 

  SQL Server 主要的內(nèi)存 組件是緩沖池。其中高速數(shù)據(jù)緩沖區(qū)用以把數(shù)據(jù)從磁盤加載到內(nèi)存中,實(shí)現(xiàn)數(shù)據(jù)的高速讀寫。而過(guò)程高速緩沖區(qū)則用來(lái)存儲(chǔ)相應(yīng)的執(zhí)行計(jì)劃,減少編譯過(guò)程,也是高速緩沖倉(cāng)庫(kù)的主要構(gòu)成部分。用戶倉(cāng)庫(kù)高速緩沖是用戶倉(cāng)庫(kù)的主要組成本部分。對(duì)象倉(cāng)庫(kù)則僅僅是內(nèi)存塊組成的內(nèi)存池,不需要進(jìn)行LRU或成本計(jì)算例如SQL Server網(wǎng)絡(luò)接口(SNI)利用對(duì)象存儲(chǔ)倉(cāng)庫(kù)作為網(wǎng)絡(luò)緩沖池。

  SQL Server 內(nèi)存管理器由一個(gè)三層的層次結(jié)構(gòu)組成。該層次結(jié)構(gòu)的底層為內(nèi)存節(jié)點(diǎn)。下一層由內(nèi)存 Clerk、內(nèi)存緩存和內(nèi)存池組成。***一層由內(nèi)存對(duì)象組成。這些對(duì)象通常用于在 SQL Server 實(shí)例中分配內(nèi)存。

  內(nèi)存節(jié)點(diǎn)(sys.dm_os_memory_nodes)提供低級(jí)分配器 的界面和實(shí)現(xiàn)。在NUMA中內(nèi)存節(jié)點(diǎn)和CPU 節(jié)點(diǎn)可以對(duì)應(yīng)起來(lái)的,在 SQL Server 中,只有內(nèi)存 Clerk 可訪問(wèn)內(nèi)存節(jié)點(diǎn)。

  內(nèi)存Clerk(sys.dm_os_memory_clerks) 訪問(wèn)內(nèi)存節(jié)點(diǎn)界面以分配內(nèi)存。內(nèi)存節(jié)點(diǎn)還會(huì)跟蹤 Clerk 分配的內(nèi)存以進(jìn)行診斷。分配大量?jī)?nèi)存的每個(gè)組件,都必須使用 Clerk 界面來(lái)創(chuàng)建其自己的內(nèi)存 Clerk 并分配其全部?jī)?nèi)存。各組件會(huì)在 SQL Server 啟動(dòng)時(shí)創(chuàng)建其相應(yīng)的 Clerk。

  內(nèi)存對(duì)象(sys.dm_os_memory_objects)是指多個(gè)堆。它們所提供的分配的粒度比內(nèi)存 Clerk 所提供的分配的粒度更精細(xì)。SQL Server 組件使用內(nèi)存對(duì)象,而不使用內(nèi)存 Clerk。內(nèi)存對(duì)象使用內(nèi)存 Clerk 的頁(yè)分配器 接口來(lái)分配頁(yè)。內(nèi)存對(duì)象不使用虛擬內(nèi)存接口或共享內(nèi)存接口。根據(jù)分配模式的不同,組件可以創(chuàng)建不同的內(nèi)存對(duì)象類型來(lái)分配任意大小的區(qū)域。

  SQL Server的緩沖池只提供8KB的內(nèi)存塊;大于8KB的大內(nèi)存塊需求是被單獨(dú)管理的,且一般是直接從操作系統(tǒng) 或者說(shuō)是從緩沖池外獲取到的,此外只有數(shù)據(jù)高速緩沖頁(yè)面才能使用AWE內(nèi)存,并且需要單獨(dú)跟蹤。

SQLServer的內(nèi)存方面的系統(tǒng)視圖

 

 

  sys.dm_os_memory_cache_clock_hands 返回特定緩存時(shí)鐘的每個(gè)指針的狀態(tài)。提供給用戶關(guān)于每個(gè)緩存存儲(chǔ)區(qū)和用戶存儲(chǔ)區(qū)的時(shí)鐘指針信息——指針是否正在轉(zhuǎn)動(dòng)、圈數(shù)、被移除的條目數(shù)量等。此視圖對(duì)于查找當(dāng)前時(shí)鐘指針的狀態(tài)以及時(shí)鐘指針的移動(dòng)歷史非常有用。

  sys.dm_os_memory_cache_counters 返回緩存運(yùn)行狀況的快照。提供有關(guān)已分配的緩存條目、緩存條目的使用情況以及內(nèi)存源的運(yùn)行時(shí)信息。提供給用戶每個(gè)存儲(chǔ)區(qū)的總結(jié)信息——使用的內(nèi)存數(shù)量、條目數(shù)、正在使用的條目數(shù)。用戶可以使用該視圖找到緩存的內(nèi)存使用,以及一個(gè)緩存中的條目數(shù)量。

   sys.dm_os_memory_cache_hash_tables 針對(duì) SQL Server 實(shí)例中的每個(gè)活動(dòng)緩存返回一行。即用戶關(guān)于緩存存儲(chǔ)區(qū)的散列表信息——***、最小、平均桶長(zhǎng)等。此視圖對(duì)于查找緩存存儲(chǔ)區(qū)中每個(gè)緩存表的每個(gè)散列桶的條目分布非常有用。

  sys.dm_os_memory_cache_entries 返回有關(guān)緩存中所有條目的信息。使用此視圖可對(duì)緩存條目進(jìn)行跟蹤,直至它們的關(guān)聯(lián)對(duì)象。還可使用此視圖獲取有關(guān)緩存條目的統(tǒng)計(jì)信息。

  sys.dm_os_sys_info返回一組有關(guān)計(jì)算機(jī)和有關(guān) SQL Server 可用資源及其已占用資源的有用雜項(xiàng)信息。

  sys.dm_os_sys_memory 從操作系統(tǒng) 返回內(nèi)存信息。SQL Server 受操作系統(tǒng)級(jí)別的外部?jī)?nèi)存條件和基礎(chǔ)硬件物理限制的約束并對(duì)其有所響應(yīng)。確定整個(gè)系統(tǒng)的狀態(tài)是評(píng)估 SQL Server 內(nèi)存使用量的重要方面。

  sys.dm_os_virtual_address_dump則返回有關(guān)調(diào)用進(jìn)程的虛擬地址空間中的頁(yè)范圍的信息。

  DBCC MemoryStatus命令提供了SQL Server的當(dāng)前內(nèi)存狀態(tài)的快照,也可以作為我們分析內(nèi)存瓶頸的重要依據(jù)。

內(nèi)存壓力

 

  對(duì)于SQL Server占用內(nèi)存資源的監(jiān)控主要集中在頁(yè)面吞吐能力、頁(yè)面錯(cuò)誤和可用內(nèi)存上上,對(duì)虛擬內(nèi)存的監(jiān)控,則重點(diǎn)在于分頁(yè)文件的使用率上。下面提供了幾種對(duì)象、計(jì)數(shù)器和相應(yīng)的閾值及描述。

 

  SQL Server提供的sys.dm_os_performance_counters計(jì)數(shù)器視圖,主要對(duì)緩沖區(qū)管理器和內(nèi)存管理器的一些計(jì)數(shù)器進(jìn)行監(jiān)控,比如頁(yè)面的生存周期、檢查點(diǎn)、惰性寫入器和緩沖命中率等指標(biāo)。

 

#p#

 

以下為緩沖池內(nèi)數(shù)據(jù)庫(kù)緩沖池中各個(gè)數(shù)據(jù)庫(kù)的分布情況。

 

以下為返回當(dāng)前數(shù)據(jù)庫(kù)中每個(gè)對(duì)象的緩存頁(yè)計(jì)數(shù),加以適當(dāng)?shù)男薷奈覀円部梢缘玫綌?shù)據(jù)緩沖池中對(duì)象數(shù)據(jù)頁(yè)和索引頁(yè)的分布情況。

 

以下為緩沖池中前十位消耗內(nèi)存***的內(nèi)存組件。

 

我們需要重點(diǎn)關(guān)注的內(nèi)存組件為以下:

  sys.dm_exec_cached_plans針對(duì) SQL Server 為了加快查詢執(zhí)行而緩存的每個(gè)查詢計(jì)劃返回一行??梢杂么藙?dòng)態(tài)管理視圖來(lái)查找緩存的查詢計(jì)劃、緩存的查詢文本、緩存計(jì)劃占用的內(nèi)存量,以及重新使用緩存計(jì)劃的計(jì)數(shù)。同樣我們還可以和sys.dm_exec_sql_text聯(lián)合起來(lái)進(jìn)一步加工獲取到緩沖***的前10條SQL。

  CACHESTORE_SQLCP—SQL執(zhí)行計(jì)劃(臨時(shí)緩存計(jì)劃、自動(dòng)參數(shù)化計(jì)劃和預(yù)編譯計(jì)劃)

  CACHESTORE_OBJCP—對(duì)象計(jì)劃(存儲(chǔ)過(guò)程、函數(shù)、觸發(fā)器等執(zhí)行計(jì)劃)

  CACHESTORE_PHDR—Bound Trees是在SQL Server中代數(shù)化的結(jié)構(gòu)過(guò)程,被用于視圖、約束和默認(rèn)值。

  CACHESTORE_XPRO是預(yù)定義的系統(tǒng)存儲(chǔ)過(guò)程,這里僅包含實(shí)現(xiàn)過(guò)程的函數(shù)名稱和DLL名稱。 

  以下SQL用來(lái)確認(rèn)在緩沖區(qū)外進(jìn)行分配了內(nèi)存的內(nèi)部組件(即通過(guò)多頁(yè)分配器請(qǐng)求內(nèi)存),借以了解內(nèi)存是否存在壓力。

 

  sys.dm_exec_cached_plans針對(duì) SQL Server 為了加快查詢執(zhí)行而緩存的每個(gè)查詢計(jì)劃返回一行。可以用此動(dòng)態(tài)管理視圖來(lái)查找緩存的查詢計(jì)劃、緩存的查詢文本、緩存計(jì)劃占用的內(nèi)存量,以及重新使用緩存計(jì)劃的計(jì)數(shù)。同樣我們還可以和sys.dm_exec_sql_text聯(lián)合起來(lái)進(jìn)一步加工獲取到緩沖***的前10條SQL。

 

上文給出了詳細(xì)的分析,內(nèi)容比較多,看起來(lái)也比較難理解,對(duì)于初學(xué)者來(lái)說(shuō)可能是有一定的難度,希望大家能夠認(rèn)真去學(xué)習(xí)這些知識(shí),然后很熟練的掌握。

【編輯推薦】

  1. 解析SQL Server 2008中的新語(yǔ)句:MERGE
  2. SQL Server數(shù)據(jù)庫(kù)占用過(guò)多內(nèi)存的解決方法
  3. SQL Server 2008中的數(shù)據(jù)壓縮功能
  4. SQL Server 2008的高效性

 

 

責(zé)任編輯:迎迎 來(lái)源: CSDN
相關(guān)推薦

2011-02-25 09:16:00

SQLSQL Server IO

2011-03-24 10:19:58

SQL Server2CPU性能監(jiān)控

2011-02-22 10:37:00

SQL ServerSQL Server 性能診斷

2010-06-03 17:12:30

Windows Ser

2009-04-16 17:24:54

性能優(yōu)化SQL Server 數(shù)據(jù)收集

2009-04-16 17:44:46

性能優(yōu)化擴(kuò)展高性能

2009-02-16 16:30:52

性能數(shù)據(jù)收集器SQL Server SQL Server

2009-04-16 17:55:15

擴(kuò)展熱插拔SQL Server

2010-03-23 09:52:23

SQL Server

2011-02-18 17:31:18

SQL Server

2009-04-16 18:15:19

動(dòng)作審核審核活動(dòng)SQL Server

2009-04-16 17:44:31

2011-03-29 12:42:25

SQL Server 高效性

2009-04-16 17:34:19

2009-02-24 13:15:22

FILESTREAM新特性SQL Server

2021-01-27 05:39:53

SQLServer監(jiān)控

2011-05-24 13:33:45

2010-06-28 15:59:09

SQL Server

2011-03-29 12:32:05

SQL Server 可信任性

2011-03-29 13:10:56

SQL Server
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)