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