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

SQL Server2008引擎組件

數(shù)據(jù)庫(kù) SQL Server
SQL Server 2008是一個(gè)重大的產(chǎn)品版本,它推出了許多新的特性和關(guān)鍵的改進(jìn),使得它成為至今為止的最強(qiáng)大和最全面的SQL Server版本。下面我們將從基本的講起,本文主要為大家講解SQL Server2008引擎組件。

SQL Server2008引擎組件

首先讓我們先來看看SQL Server2008的引擎組件,SQLServer2008有四大組件:協(xié)議、關(guān)系引擎、存儲(chǔ)引擎和SQLOS。

一、協(xié)議層(Protocol Layer)

  當(dāng)一個(gè)應(yīng)用程序與SQL Server數(shù)據(jù)庫(kù)引擎通訊時(shí),協(xié)議層提供的應(yīng)用程序編程接口利用微軟自定義的tabular data stream(TDS)package來規(guī)范通訊格式。這一層的意義在于向應(yīng)用程序提供訪問SQL Server的接口。

  SQL Server Network Interface(簡(jiǎn)稱SNI)

  SNI是在服務(wù)器和客戶端之間建立網(wǎng)絡(luò)連接的一種協(xié)議,他提供一組在數(shù)據(jù)庫(kù)引擎和SQL Server客戶端使用的API函數(shù)。SNI代替了SQL Server2000下的Net- Libraries組件和MDAC組件。

  SQL Server支持共享內(nèi)存(Shared memory)、TCP/IP、命名管道(Named Pipes)、虛擬接口適配器(Virtual Interface Adapter,即VIA)四種協(xié)議。

  一旦建立連接,SNI就會(huì)向服務(wù)器的TDS斷點(diǎn)創(chuàng)建一條安全的連接,用來進(jìn)行數(shù)據(jù)的請(qǐng)求和返回。

  表格格式數(shù)據(jù)流端點(diǎn)(Tabular Data Stream,簡(jiǎn)稱TDS)

  TDS是一種微軟的與數(shù)據(jù)庫(kù)進(jìn)行交互的私有協(xié)議,SQL Server在安裝時(shí)為其支持的四種協(xié)議各創(chuàng)建一個(gè)端點(diǎn),如果協(xié)議被激活,那么所有用戶均可以使用這個(gè)協(xié)議。此外還有一個(gè)專門為專用管理員連接(DAC)而設(shè)置的端點(diǎn)。

  一條SQL語句則會(huì)通過TCP/IP連接以TDS消息的形式發(fā)送給SQL Server。

  協(xié)議層(Protocol Layer)

  一旦協(xié)議層接收到TDS包,就會(huì)在反轉(zhuǎn)和解包工作,以找到所包含的請(qǐng)求。協(xié)議層也負(fù)責(zé)打包結(jié)果和狀態(tài)消息,并以TDS消息的形式返回客戶端。

二、關(guān)系引擎(Relational Engine)

  關(guān)系引擎又成為查詢處理器,包括用來確定某個(gè)查詢所要做的操作及進(jìn)行這些操作***方式的SQL Server組件。同時(shí)關(guān)系引擎也負(fù)責(zé)向存儲(chǔ)引擎請(qǐng)求數(shù)據(jù)時(shí)查詢的執(zhí)行,并處理返回的結(jié)果。

  命令解析器(Cmd Parser)

  命令解析器處理發(fā)送給SQL Server的T-SQL語言事件。它會(huì)先檢查T-SQL語法,并返回任何錯(cuò)誤信息客戶端,如果語法有效,就會(huì)進(jìn)一步產(chǎn)生執(zhí)行計(jì)劃或者去查找一個(gè)已經(jīng)存在的執(zhí)行計(jì)劃。命令解析器通過T-SQL哈希值向位于緩沖池中的Plan Cache發(fā)出匹配要求,以檢查是否存在該執(zhí)行計(jì)劃;如果不存在則把T-SQL翻譯成可以執(zhí)行的內(nèi)部格式,即查詢樹。

  查詢優(yōu)化器(Optimizer)

  查詢優(yōu)化器從命令解析器中獲取查詢樹,并為它的實(shí)際執(zhí)行做準(zhǔn)備。

  生成執(zhí)行計(jì)劃的***步是對(duì)每個(gè)查詢進(jìn)行規(guī)范化,規(guī)范化的過程有可能將單個(gè)查詢分解成多個(gè)粒度合適的查詢。然后進(jìn)行***化,SQL Server的查詢優(yōu)化器是基于成本的,它會(huì)選擇它認(rèn)為成本***的執(zhí)行計(jì)劃,它使用一些內(nèi)部指標(biāo)(內(nèi)存需求、CPU利用率和I/O需求數(shù)目)作為選擇的依據(jù)。此外查詢優(yōu)化器還會(huì)考慮請(qǐng)求語句的類型、檢查受到影響的各表的數(shù)據(jù)量、表中的索引,以及SQL Server統(tǒng)計(jì)數(shù)據(jù)。

  SQL管理器

  SQL管理器負(fù)責(zé)管理與存儲(chǔ)過程及其計(jì)劃有關(guān)的事務(wù),并負(fù)責(zé)管理查詢的自動(dòng)化參數(shù)。

  數(shù)據(jù)庫(kù)管理器

  數(shù)據(jù)庫(kù)管理器管理查詢編譯和查詢優(yōu)化所需的對(duì)元數(shù)據(jù)的訪問。

  查詢執(zhí)行器(Query Executor)

  查詢執(zhí)行器運(yùn)行查詢優(yōu)化器生成的執(zhí)行計(jì)劃,就像調(diào)度員負(fù)責(zé)調(diào)度執(zhí)行計(jì)劃中的所有命令。
 

#p#

三、存儲(chǔ)引擎(Storage Engine)

  存儲(chǔ)引擎包括存取方法、事務(wù)管理和緩沖區(qū)管理器。

  存取方法(Access Methods)

  SQL Server需要定位數(shù)據(jù)庫(kù)時(shí),會(huì)調(diào)用存取方法代碼。它提供了一組代碼,用來創(chuàng)建和請(qǐng)求對(duì)數(shù)據(jù)頁面和索引頁面進(jìn)行掃描,并且將準(zhǔn)備好的OLE DB數(shù)據(jù)行集返回給關(guān)系引擎。存取方法并不真正進(jìn)行操作,它只負(fù)責(zé)向緩沖區(qū)管理器發(fā)出請(qǐng)求。

  事務(wù)管理器(Transaction Manager)

  事務(wù)管理器包括兩個(gè)組件:日志管理器和鎖管理器。

  鎖管理器負(fù)責(zé)數(shù)據(jù)的并發(fā)保護(hù)和基于特定隔離級(jí)別的管理。日志管理器負(fù)責(zé)將事務(wù)日志提前記錄于日志文件中,從而起到保護(hù)數(shù)據(jù)的作用。

  緩沖區(qū)管理器(Buffer Manager)

  緩沖區(qū)管理器用來管理緩沖區(qū)內(nèi)存池中數(shù)據(jù)頁面的分布。

四、SQLOS

  SQLOS則可以理解為SQL Server2008的操作系統(tǒng),主要負(fù)責(zé)處理與操作系統(tǒng)之間的工作,SQL Server通過該接口層向操作系統(tǒng)申請(qǐng)內(nèi)存分配、調(diào)度資源、管理進(jìn)程和線程以及同步對(duì)象。

  緩沖池(Buffer Pool)

  緩沖池在SQL Server中是內(nèi)存的***消耗者,主要包括數(shù)據(jù)緩沖池和執(zhí)行計(jì)劃緩沖池。

  執(zhí)行計(jì)劃緩沖池(Plan Cache)

  生成執(zhí)行計(jì)劃是比較消耗資源和時(shí)間的,因此在Plan Cache緩存這些執(zhí)行計(jì)劃,有助于執(zhí)行計(jì)劃的重用。

  數(shù)據(jù)緩沖池(Data Cache)

  數(shù)據(jù)緩沖池負(fù)責(zé)將數(shù)據(jù)頁和索引頁放在數(shù)據(jù)告訴緩沖池中,以便多個(gè)用戶可以共享數(shù)據(jù)。

  SQL查詢示意圖

  以下為一條基本的SQL查詢示意圖。

 

  首先客戶端的SNI通過TCP/IP協(xié)議和SQL Server服務(wù)端的SNI建立連接,然后建立連接到TDS的連接,并以TDS消息的方式傳送SELECT命令。SQL Server服務(wù)端的SNI對(duì)TDS消息進(jìn)行解包,并把SQL命令傳給語法解析器;語法解析器在緩沖池中檢查是否存在執(zhí)行計(jì)劃,如果沒有則創(chuàng)建一個(gè)查詢樹,并交給優(yōu)化器;優(yōu)化器產(chǎn)生相應(yīng)的執(zhí)行計(jì)劃;查詢執(zhí)行器通過OLE DB接口向存儲(chǔ)引擎中的訪問存取方法發(fā)出請(qǐng)求讀取數(shù)據(jù);存取方法則向緩沖區(qū)管理器發(fā)起數(shù)據(jù)請(qǐng)求,如果在緩沖池的數(shù)據(jù)緩沖池中存在相應(yīng)的數(shù)據(jù),如果沒有則從磁盤上讀取數(shù)據(jù)頁放到數(shù)據(jù)緩沖池中,并把數(shù)據(jù)返回給存取方法;存取方法在把結(jié)果返回給關(guān)系引擎,并最終以TDS消息的形式返回給客戶端。
 

上文對(duì)剛剛?cè)腴T的初學(xué)者來說參考價(jià)值是非常高的,要想很好的完成SQL Server2008引擎組件的入門,一定要首先從最基本的做起,希望大家通過本文的學(xué)習(xí),都能很好的掌握SQL Server2008引擎組件。

【編輯推薦】

  1. SQL Server2008連接失敗的處理方法
  2. SQL Server2008版本和組件
  3. 帶您解讀SQL Server2008中的TIME數(shù)據(jù)類型
責(zé)任編輯:迎迎 來源: it168
相關(guān)推薦

2010-11-09 16:03:27

2011-03-24 10:19:58

SQL Server2CPU性能監(jiān)控

2010-11-10 10:27:58

訪問SQL Serve

2011-09-07 15:11:31

SQL Server同步

2010-09-13 09:58:17

SQL Server2

2009-04-10 15:37:48

SQL Server2鏡像實(shí)施

2009-07-03 19:58:51

SQL Server2

2010-07-13 10:35:20

SQL Server2

2010-10-22 09:32:01

SQL Server2

2010-09-02 17:27:18

SQL Server安裝

2010-09-16 15:36:26

SQL Server2

2009-03-19 09:30:59

2010-11-10 11:42:35

SQL Server2

2025-05-07 07:11:44

2010-09-13 10:10:07

SQL Server2

2011-08-01 10:09:57

SSAS數(shù)據(jù)庫(kù)

2009-08-21 10:09:02

Google ChroV8引擎linux系統(tǒng)

2010-12-24 15:01:44

2010-09-13 09:45:17

sql server2

2017-08-11 20:48:39

引擎5.0
點(diǎn)贊
收藏

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