河南IT培訓(xùn):SQLSERVER2000T-SQL的運(yùn)行之淺談
鄭州北大青鳥(niǎo)翔天信鴿校區(qū)是專(zhuān)業(yè)的計(jì)算機(jī)培訓(xùn)機(jī)構(gòu),最好的河南IT培訓(xùn)學(xué)校,今天我們給大家分享的是:淺談Sql server2000T-Sql的運(yùn)行。
大家都知道,T-SQL(Trantsact-SQL)是微軟公司在SYBASE的基礎(chǔ)上發(fā)展起來(lái)的一種結(jié)構(gòu)化查詢語(yǔ)言,是應(yīng)用程序和存儲(chǔ)過(guò)程與SQL SERVER通訊和訪問(wèn)的工具。包涵了ANSI89和ANSI92標(biāo)準(zhǔn)。T-SQL不是一種標(biāo)準(zhǔn)的編程語(yǔ)言,它通過(guò)SQL SERVER的數(shù)據(jù)引擎來(lái)分析和運(yùn)行,SQL SERVER是如何編譯和運(yùn)行T-SQL語(yǔ)句呢?
SQL SERVER在處理任何T-SQL語(yǔ)句時(shí)都經(jīng)過(guò)下面三個(gè)步驟:
1、解析T-SQL語(yǔ)句
2、編譯T-SQL語(yǔ)句
3、執(zhí)行T-SQL語(yǔ)句
當(dāng)一個(gè)T-SQL的批處理提交到SQL SERVER服務(wù)器,服務(wù)器回將這個(gè)T-SQL批處理作為一個(gè)整體進(jìn)行分析,在優(yōu)化,編譯,在分步執(zhí)行。
1、 解析
所謂”解析”是指SQL SERVER命令解析模塊檢查T(mén)-SQL批處理語(yǔ)法的過(guò)程,如果沒(méi)有找到錯(cuò)誤,命令解析器將源代碼細(xì)分為多個(gè)邏輯單元,比如:關(guān)鍵字,標(biāo)識(shí)符以及運(yùn)算符。然后命令解析器會(huì)構(gòu)建一個(gè)內(nèi)部結(jié)構(gòu),通過(guò)這個(gè)內(nèi)部結(jié)構(gòu)生成DDL操作或DDM操作所需要的詳細(xì)的步驟。如果該T-SQL批處理包涵一個(gè)查詢,那么這個(gè)內(nèi)部結(jié)構(gòu)被成為查詢樹(shù)(QUERY TREE),如果該T-SQL批處理是一個(gè)過(guò)程,那么這個(gè)內(nèi)部查詢被成為順序樹(shù)(SEQUENCE TREE)。
2、編譯
這一步主要是將順序樹(shù)(SEQUENCE TREE)生成為一個(gè)執(zhí)行規(guī)劃, 查詢優(yōu)化器(Query Optimizer)主要是對(duì)T-SQL語(yǔ)句所要檢索的資源進(jìn)行評(píng)估,生成I/O的時(shí)間,過(guò)慮時(shí)間和其他邏輯處理的時(shí)間。然后查詢優(yōu)化器(Query Optimizer)是試圖利用一個(gè)最小資源的方案!
這個(gè)方案中還包括執(zhí)行是需要的任務(wù)列表(比如:安全檢查,約束檢查,觸發(fā)器檢查等等)。這個(gè)就被成為執(zhí)行規(guī)劃
3、執(zhí)行
執(zhí)行組件根據(jù)執(zhí)行規(guī)劃在高速緩存中運(yùn)行并滯留,執(zhí)行規(guī)劃的不同步驟將被發(fā)送到關(guān)系引擎的不同組件進(jìn)行處理:DML管理器,DDL管理器,存儲(chǔ)過(guò)程管理器,事務(wù)處理管理器和實(shí)用工具管理器。處理結(jié)果將以結(jié)果集的方式被收集合并返回調(diào)用者!
執(zhí)行規(guī)劃將在高速緩存中被保留一段時(shí)間,如果同一用戶或其他用戶發(fā)出類(lèi)似請(qǐng)求的T-SQL批處理,關(guān)系數(shù)據(jù)引擎將會(huì)優(yōu)先在高速緩存中尋找匹配的執(zhí)行規(guī)劃。如果該執(zhí)行規(guī)劃存在就采用運(yùn)行,如果不存在,SQL SERVER 就會(huì)解析并編譯這個(gè)T-SQL批處理!
如果SQL SERVER需要的內(nèi)存不夠,它會(huì)從內(nèi)存中刪除一些執(zhí)行規(guī)劃。SQL SERVER有一個(gè)很好的”老化”算法,它可以統(tǒng)計(jì)某個(gè)執(zhí)行規(guī)劃的使用時(shí)間和次數(shù)。如果內(nèi)存足夠的大,也可以無(wú)限的增加執(zhí)行規(guī)劃到內(nèi)存中!
以上是我們和大家分享的一些技術(shù)知識(shí),想要了解更多有關(guān)數(shù)據(jù)庫(kù)知識(shí),請(qǐng)查看:http:///jsjl/
本文由站河南北大青鳥(niǎo)校區(qū)整編而成,如需了解更多IT資訊類(lèi)的文章、新聞、課程和學(xué)習(xí)技巧、就業(yè)案例、招生詳情等問(wèn)題,可以對(duì)在線咨詢老師進(jìn)行一對(duì)一問(wèn)答!
推薦資訊
- 高中生可以去學(xué)啥技術(shù)好呢?... 2024-04-22
- 大學(xué)生計(jì)算機(jī)暑期短訓(xùn)班,馬上開(kāi)... 2012-10-13
- 學(xué)完安卓技術(shù)有就業(yè)保障嗎... 2014-05-04
- 北京高考分?jǐn)?shù)線:文科一本565分,... 2014-06-23
- 初中畢業(yè)到現(xiàn)在還沒(méi)有找到學(xué)校怎... 2014-08-23
熱點(diǎn)資訊
- 學(xué)習(xí)SQL數(shù)據(jù)庫(kù)有哪些方法?... 2018-09-07
- 河南IT培訓(xùn):SQLSERVER2000T-SQL的... 2018-09-07
- 使用access數(shù)據(jù)庫(kù)有哪些好處呢?... 2018-09-07
- 網(wǎng)站數(shù)據(jù)庫(kù)老是被入侵該怎么辦?... 2018-09-07
- 半小時(shí)讓你快速M(fèi)ySQL 入門(mén)... 2018-09-07