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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

/3GB和increaseUserVA

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

/3GB開關用法:

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

 

  或者使用bootcfg命令

 

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

 

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

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

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

 

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

#p#

 

/PAE和/3GB

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

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

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

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

 

SQLServer的內(nèi)存管理

 

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

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

  內(nèi)存節(jié)點(sys.dm_os_memory_nodes)提供低級分配器 的界面和實現(xiàn)。在NUMA中內(nèi)存節(jié)點和CPU 節(jié)點可以對應起來的,在 SQL Server 中,只有內(nèi)存 Clerk 可訪問內(nèi)存節(jié)點。

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

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

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

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

 

 

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

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

   sys.dm_os_memory_cache_hash_tables 針對 SQL Server 實例中的每個活動緩存返回一行。即用戶關于緩存存儲區(qū)的散列表信息——***、最小、平均桶長等。此視圖對于查找緩存存儲區(qū)中每個緩存表的每個散列桶的條目分布非常有用。

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

  sys.dm_os_sys_info返回一組有關計算機和有關 SQL Server 可用資源及其已占用資源的有用雜項信息。

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

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

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

內(nèi)存壓力

 

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

 

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

 

#p#

 

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

 

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

 

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

 

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

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

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

  CACHESTORE_OBJCP—對象計劃(存儲過程、函數(shù)、觸發(fā)器等執(zhí)行計劃)

  CACHESTORE_PHDR—Bound Trees是在SQL Server中代數(shù)化的結構過程,被用于視圖、約束和默認值。

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

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

 

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

 

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

【編輯推薦】

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

 

 

責任編輯:迎迎 來源: CSDN
相關推薦

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)化擴展高性能

2009-02-16 16:30:52

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

2009-04-16 17:55:15

擴展熱插拔SQL Server

2011-03-29 12:42:25

SQL Server 高效性

2009-04-16 18:15:19

動作審核審核活動SQL Server

2009-04-16 17:44:31

2009-04-16 17:34:19

2011-02-18 17:31:18

SQL Server

2010-03-23 09:52:23

SQL Server

2009-02-24 13:15:22

FILESTREAM新特性SQL Server

2021-01-27 05:39:53

SQLServer監(jiān)控

2012-09-04 13:43:31

SQL Server

2010-10-20 15:02:21

2009-02-23 11:09:36

SQL Server 下載微軟

2009-04-16 17:03:12

報表開發(fā)工具報表制作SQL Server
點贊
收藏

51CTO技術棧公眾號