自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

SQL Server內(nèi)存的管理方法

數(shù)據(jù)庫 SQL Server
我們今天主要向大家描述的是SQL Server內(nèi)存的管理,以及對其在實際運行中值得我們大注意的事項的描述,以下就是文章的主要內(nèi)容描述。

以下的文章主要向大家講述的是SQL Server內(nèi)存的管理,在默認的情況下,SQL Server 2000數(shù)據(jù)庫其為了平衡運行在機器上得其他一些應(yīng)用程序與數(shù)據(jù)庫系統(tǒng)內(nèi)部其他組建對內(nèi)存的需要,實現(xiàn)對系統(tǒng)內(nèi)存的動態(tài)分配和回收。

[[12625]]498)this.style.width=498;" />

在早前的版本如7.0,你通過選項配置給SQL Server設(shè)定一個大小固定的內(nèi)存;然而。除非你有具體的問題要求分配大小規(guī)定的內(nèi)存,否則***是讓SQL Server動態(tài)管理內(nèi)存。

無論內(nèi)存是以動態(tài)還是固定的方式進行分配,計算機系統(tǒng)為每個SQL Server實例分配的總的內(nèi)存空間都可看做一個單個統(tǒng)一的緩沖區(qū)(unified cache),這些內(nèi)存都以多種內(nèi)存池(memory pool)的方式進行管理。每個內(nèi)存池有各自的策略和用途,系統(tǒng)中的各個內(nèi)部組件可以請求和授權(quán)使用池中的內(nèi)存。

緩沖區(qū)管理和內(nèi)存池(The Buffer Manager an Memory Pools)

SQL Server內(nèi)存組件是緩沖池(buffer pool)。任何不被其他內(nèi)存相關(guān)組件使用的內(nèi)存都放在緩沖池中。緩沖池負責(zé)從硬盤上加載數(shù)據(jù)和索引頁以供用戶訪問和共享數(shù)據(jù)。當其他組件申請內(nèi)存時,它們向緩沖池發(fā)送一個緩沖請求。內(nèi)存緩沖由若干個頁組成,其中每頁大小與數(shù)據(jù)或索引頁大小相同(8K)。

緩沖區(qū)管理器(The buffer Manager)

SQL Server的進程(process)只能訪問內(nèi)存中的數(shù)據(jù)或索引頁。不允許直接訪問磁盤上的頁。緩沖區(qū)管理器(The buffer Manager)是一個用來管理和控制物理磁盤中的頁在內(nèi)存中的進程。當某個進程需要訪問數(shù)據(jù)或索引頁時,該頁必須首先在緩沖區(qū)存在。

如果訪問的頁在內(nèi)存中不存在,則必須進行一次物理I/O訪問來加載該頁,這樣進程就可以訪問該頁在內(nèi)從中的拷貝了。因為物理I/O的訪問是非常昂貴和耗時的,所以盡可能減少系統(tǒng)的物理I/O。一種解決方案就是給SQL Server提供更多內(nèi)存。越多的頁駐留在內(nèi)存,當某個頁被訪問時就越有可能在內(nèi)存中找到該頁。

內(nèi)存緩沖區(qū)的訪問(Accessing Memory Buffers)

對SQL Server中進程來講,一個數(shù)據(jù)庫就像帶有編號頁的簡單序列。數(shù)據(jù)庫中的頁可以用數(shù)據(jù)庫編號、文件編號、頁的編號來唯一標識。當一個進程訪問一個頁時,它向緩沖管理器發(fā)送一個請求,該請求指出要訪問數(shù)據(jù)所在的數(shù)據(jù)庫編號、文件編號、和頁編號。

為了更快地訪問內(nèi)存中的數(shù)據(jù)和避免數(shù)據(jù)頁的SQL Server內(nèi)存掃描(memory scans),對緩沖池的頁進行散列處理,以提供更快地訪問。散列(Hashing)是一種同過一個散列函數(shù)把一個key映射到一個散列桶(hansh bucket)的技術(shù)。散列桶是一種內(nèi)存中的數(shù)據(jù)結(jié)構(gòu),該數(shù)據(jù)結(jié)構(gòu)包含一個指針數(shù)組(以鏈表方式實現(xiàn)),每個指針指向一個緩沖頁(buffer page)。

A linked list chain of hash pages is built when the pointers to buffer pages do not fit on a single hash page. 散列桶的數(shù)量是SQL Server根據(jù)緩沖池大小動態(tài)進行調(diào)整。

在SQL Server中,散列值是由數(shù)據(jù)庫編號、文件編號、頁編號相結(jié)合生成的。散列函數(shù)生成散列值并保存在散列桶中。本質(zhì)來講,散列桶就是訪問內(nèi)存頁的一個索引。即使在一個大的內(nèi)存環(huán)境中,散列技術(shù)可以允許SQL Server快速查找內(nèi)存中的具體數(shù)據(jù)頁而這需要一些內(nèi)存讀操作。

利用散列算法也讓SQL Server快速判斷某個請求的頁是否在內(nèi)存中,而不需要一個內(nèi)存緩沖區(qū)的掃描。

如果被請求的頁在內(nèi)存中,緩沖區(qū)管理者返回一個指向SQL Server內(nèi)存緩沖區(qū)的指針,該內(nèi)存緩沖區(qū)即為該進程請求的數(shù)據(jù)頁。如果頁不在內(nèi)存中,則緩沖區(qū)管理者必須首先進行一次磁盤I/O操作把請求頁讀到內(nèi)存緩沖區(qū)中,然后把指向該內(nèi)存的指針返回給發(fā)送請求的進程。

如果請求頁的進程最終對頁中的任何信息進行了修改,該頁就被標記為“臟頁(dirty)”,當進行完成了對頁的修改,緩沖區(qū)管理者會收到一個通知。緩沖區(qū)管理者協(xié)同日志和事務(wù)管理者,負責(zé)確保被修改的頁寫到了磁盤上。

【編輯推薦】

  1. 創(chuàng)建SQL Server數(shù)據(jù)庫更是實在
  2. 優(yōu)化SQL Server數(shù)據(jù)庫的經(jīng)驗大盤點
  3. SQL Server 2005商業(yè)智能功能淺析
  4. SQL Server 2000數(shù)據(jù)庫備份和還原的示例
  5. SQL Server 2008數(shù)據(jù)庫在實際應(yīng)用中的獨到之處
責(zé)任編輯:佚名 來源: 中信出版社
相關(guān)推薦

2010-09-25 09:24:54

Java內(nèi)存管理

2010-07-23 10:36:43

SQL Server內(nèi)

2010-07-19 14:17:47

SQL Server內(nèi)

2012-08-16 10:00:35

SQL Server內(nèi)存管理

2023-11-02 00:18:47

風(fēng)險管理系統(tǒng)驅(qū)動

2010-10-22 14:10:12

SQL Server內(nèi)

2009-10-21 14:48:39

Oracle用戶權(quán)限表

2023-08-31 00:02:28

2010-05-27 09:17:44

Linux網(wǎng)絡(luò)流量

2011-03-03 10:32:28

ProftpdMysql管理

2010-11-09 15:06:52

SQL Server動

2010-11-08 10:07:23

SQL Server內(nèi)

2014-11-10 09:51:18

數(shù)據(jù)中心ITIL

2023-07-25 15:06:39

2015-06-04 10:19:33

數(shù)據(jù)中心

2011-02-22 14:47:52

SQL Server資

2011-04-26 14:13:59

扁平化扁平化網(wǎng)絡(luò)

2011-02-28 08:57:10

SQL Server資內(nèi)存性能調(diào)優(yōu)

2010-10-20 17:00:51

SQL Server代

2010-11-08 09:27:21

SQL Server管
點贊
收藏

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