




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、Lecture 關(guān)系查詢處理和查詢優(yōu)化Zhang Yan-junDepartment of Computer, Handan CollegeOutline本章目的: RDBMS的查詢處理步驟 查詢優(yōu)化的概念 基本方法和技術(shù) 查詢優(yōu)化分類 :代數(shù)優(yōu)化物理優(yōu)化9.1 關(guān)系數(shù)據(jù)庫系統(tǒng)的查詢處理 9.2 關(guān)系數(shù)據(jù)庫系統(tǒng)的查詢優(yōu)化 9.3 代數(shù)優(yōu)化9.4 物理優(yōu)化 9.5 小 結(jié) B樹、B-樹和B+樹B 樹即二叉搜索樹: 1. 所有非葉子結(jié)點(diǎn)至多擁有兩個兒子( Left 和 Right ); 2. 所有結(jié)點(diǎn)存儲一個關(guān)鍵字; 3. 非葉子結(jié)點(diǎn)的左指針指向小于其關(guān)鍵字的子樹,右指針指向大于其關(guān)鍵字的子樹;
2、B 樹的搜索,從根結(jié)點(diǎn)開始,如果查詢的關(guān)鍵字與結(jié)點(diǎn)的關(guān)鍵字相等,那么就命中;否則,如果查詢關(guān)鍵字比結(jié)點(diǎn)關(guān)鍵字小,就進(jìn)入左兒子;如果比結(jié)點(diǎn)關(guān)鍵字大,就進(jìn)入右兒子;如果左兒子或右兒子的指針為空,則報告找不到相應(yīng)的關(guān)鍵字; 如果 B 樹的所有非葉子結(jié)點(diǎn)的左右子樹的結(jié)點(diǎn)數(shù)目均保持差不多(平衡),那么 B 樹的搜索性能逼近二分查找;但它比連續(xù)內(nèi)存空間的二分查找的優(yōu)點(diǎn)是,改變 B 樹結(jié)構(gòu)(插入與刪除結(jié)點(diǎn))不需要移動大段的內(nèi)存數(shù)據(jù),甚至通常是常數(shù)開銷; 但 B 樹在經(jīng)過多次插入與刪除后,有可能導(dǎo)致不同的結(jié)構(gòu): 右邊也是一個 B 樹,但它的搜索性能已經(jīng)是線性的了;同樣的關(guān)鍵字集合有可能導(dǎo)致不同的樹結(jié)構(gòu)索引;所
3、以,使用 B 樹還要考慮盡可能讓 B 樹保持左圖的結(jié)構(gòu),和避免右圖的結(jié)構(gòu),也就是所謂的“平衡”問題; 實(shí)際使用的 B 樹都是在原 B 樹的基礎(chǔ)上加上平衡算法,即“平衡二叉樹”;如何保持 B 樹結(jié)點(diǎn)分布均勻的平衡算法是平衡二叉樹的關(guān)鍵;平衡算法是一種在 B 樹中插入和刪除結(jié)點(diǎn)的策略;B樹、B-樹和B+樹1970年,R.Bayer和E.mccreight提出了一種適用于外查找的樹,它是一種平衡的多叉樹,稱為B-樹,其定義如下: 一棵m階的B-樹滿足下列條件: 樹中每個結(jié)點(diǎn)至多有m個孩子; 除根結(jié)點(diǎn)和葉子結(jié)點(diǎn)外,其它每個結(jié)點(diǎn)至少有m/2個孩子; 若根結(jié)點(diǎn)不是葉子結(jié)點(diǎn),則至少有2個孩子; 所有葉子結(jié)點(diǎn)
4、都出現(xiàn)在同一層,葉子結(jié)點(diǎn)不包含任何關(guān)鍵字信息; 有k個孩子的非終端結(jié)點(diǎn)恰好包含有k-1個關(guān)鍵字。 在B-樹中,每個結(jié)點(diǎn)中關(guān)鍵字從小到大排列,并且當(dāng)該結(jié)點(diǎn)的孩子是非葉子結(jié)點(diǎn)時,該k-1個關(guān)鍵字正好是k個孩子包含的關(guān)鍵字的值域的分劃。 因為葉子結(jié)點(diǎn)不包含關(guān)鍵字,所以可以把葉子結(jié)點(diǎn)看成在樹里實(shí)際上并不存在外部結(jié)點(diǎn),指向這些外部結(jié)點(diǎn)的指針為空,葉子結(jié)點(diǎn)的數(shù)目正好等于樹中所包含的關(guān)鍵字總個數(shù)加1。 B樹、B-樹和B+樹B樹中的一個包含n個關(guān)鍵字,n+1個指針的結(jié)點(diǎn)的一般形式為: (n,P0,K1,P1,K2,P2,Kn,Pn) 其中,Ki為關(guān)鍵字,K1K2Kn, Pi 是指向包括Ki到Ki+1之間的關(guān)鍵
5、字的子樹的指針。2. B樹的查找:在B樹中查找給定關(guān)鍵字的方法是,首先把根結(jié)點(diǎn)取來,在根結(jié)點(diǎn)所包含的關(guān)鍵字K1,kj查找給定的關(guān)鍵字(可用順序查找或二分查找法),若找到等于給定值的關(guān)鍵字,則查找成功;否則,一定可以確定要查的關(guān)鍵字在某個Ki或Ki+1之間,于是取Pi所指的結(jié)點(diǎn)繼續(xù)查找,直到找到,或指針Pi為空時查找失敗。B樹、B-樹和B+樹9.1 關(guān)系數(shù)據(jù)庫系統(tǒng)的查詢處理RDBMS查詢處理階段 : 1. 查詢分析2. 查詢檢查3. 查詢優(yōu)化 4. 查詢執(zhí)行 9.1.1 查詢處理步驟1.查詢分析:對查詢語句進(jìn)行掃描識別出語言符號(SQL關(guān)鍵字、屬性名、關(guān)系名等),進(jìn)行語法檢查、語法分析。 2.查
6、詢檢查:根據(jù)數(shù)據(jù)字典對合法的查詢語句進(jìn)行語義檢查 根據(jù)數(shù)據(jù)字典中的用戶權(quán)限和完整性約束定義對用戶的存取權(quán)限進(jìn)行檢查 檢查通過后把SQL查詢語句轉(zhuǎn)換成等價的關(guān)系代數(shù)表達(dá)式 RDBMS一般都用查詢樹Query Tree(語法分析樹Syntax tree)來表示擴(kuò)展的關(guān)系代數(shù)表達(dá)式 把數(shù)據(jù)庫對象的外部名稱轉(zhuǎn)換為內(nèi)部表示 9.1.1 查詢處理步驟3.查詢優(yōu)化:選擇一個高效執(zhí)行的查詢處理策略。查詢優(yōu)化分類 :代數(shù)優(yōu)化:指關(guān)系代數(shù)表達(dá)式的優(yōu)化。物理優(yōu)化:指存取路徑和底層操作算法的選擇。查詢優(yōu)化方法選擇的依據(jù):基于規(guī)則(rule based)。基于代價(cost based)?;谡Z義(semantic b
7、ased)。4.查詢執(zhí)行:依據(jù)優(yōu)化器得到的執(zhí)行策略生成查詢計劃。代碼生成器(code generator)生成執(zhí)行查詢計劃的代碼 。9.1.2 實(shí)現(xiàn)查詢操作的算法示例 一、 選擇操作的實(shí)現(xiàn): 例1Select * from student where ;考慮的幾種情況:C1:無條件;C2:Sno200215121;C3:Sage20;C4:SdeptCS AND Sage20; 選擇操作典型實(shí)現(xiàn)方法:1.簡單的全表掃描方法 。2. 索引(或散列)掃描方法:適合選擇條件中的屬性上有索引(例如B+樹索引或Hash索引) 。9.1.2 實(shí)現(xiàn)查詢操作的算法示例二、 連接操作的實(shí)現(xiàn) :連接操作是查詢處理
8、中最耗時的操作之一。本節(jié)只討論等值連接(或自然連接)最常用的實(shí)現(xiàn)算法。1. 嵌套循環(huán)方法(nested loop) 2. 排序-合并方法(sort-merge join 或merge join)3. 索引連接(index join)方法 4. Hash Join方法 9.2 關(guān)系數(shù)據(jù)庫系統(tǒng)的查詢優(yōu)化 查詢優(yōu)化在關(guān)系數(shù)據(jù)庫系統(tǒng)中有著非常重要的地位。關(guān)系查詢優(yōu)化是影響RDBMS性能的關(guān)鍵因素。 使用過程化的查詢:要求用戶有較高的數(shù)據(jù)庫技術(shù)和程序設(shè)計水平,必須了解存取路徑,決定查詢策略。使用非過程化的查詢:用戶只要提出“干什么”,不必指出“怎么干”。系統(tǒng)會自動優(yōu)化。查詢優(yōu)化的優(yōu)點(diǎn)不僅在于用戶不必考慮
9、如何最好地表達(dá)查詢以獲得較好的效率,而且在于系統(tǒng)可以比用戶程序的“優(yōu)化”做得更好。優(yōu)化器的作用詳見P267。由于關(guān)系表達(dá)式的語義級別很高,使關(guān)系系統(tǒng)可以從關(guān)系表達(dá)式中分析查詢語義,提供了執(zhí)行查詢優(yōu)化的可能性。 查詢優(yōu)化的總目標(biāo):選擇有效的策略。求得給定關(guān)系表達(dá)式的值。使得查詢代價最小(實(shí)際上是較小) 。9.2 關(guān)系數(shù)據(jù)庫系統(tǒng)的查詢優(yōu)化RDBMS通過某種代價模型計算出各種查詢執(zhí)行策略的執(zhí)行代價,然后選取代價最小的執(zhí)行方案。一.集中式數(shù)據(jù)庫,執(zhí)行開銷主要包括:磁盤存取塊數(shù)(I/O代價)是最主要的 處理機(jī)時間(CPU代價)查詢的內(nèi)存開銷 二.分布式數(shù)據(jù)庫:總代價=I/O代價+CPU代價+內(nèi)存代價通信
10、代價 。例3 求選修了2號課程的學(xué)生姓名。用SQL表達(dá): SELECT Student.SnameFROM Student,SCWHERE Student.Sno=SC.Sno AND SC.Cno=2; 假定學(xué)生-課程數(shù)據(jù)庫中有1000個學(xué)生記錄,10000個選課記錄其中選修2號課程的選課記錄為50個 9.2 關(guān)系數(shù)據(jù)庫系統(tǒng)的查詢優(yōu)化系統(tǒng)可以用多種等價的關(guān)系代數(shù)表達(dá)式來完成這一查詢。P267中將每種情況所需系統(tǒng)代價進(jìn)行估算,得出以下結(jié)論:有選擇和連接操作時,應(yīng)當(dāng)先進(jìn)行選擇操作代數(shù)優(yōu)化。選擇操作算法中全表掃描和索引掃描兩種方法。Student和SC的連接操作采用Index Join代價較小。物
11、理優(yōu)化。9.3 代數(shù)優(yōu)化 9.3.1 關(guān)系代數(shù)表達(dá)式等價變換規(guī)則 9.3.2 查詢樹的啟發(fā)式優(yōu)化 代數(shù)優(yōu)化策略:通過對關(guān)系代數(shù)表達(dá)式的等價變換來提高查詢效率 。關(guān)系代數(shù)表達(dá)式的等價:指用相同的關(guān)系代替兩個表達(dá)式中相應(yīng)的關(guān)系所得到的結(jié)果是相同的。具體見P269。1. 連接、笛卡爾積交換律。2. 連接、笛卡爾積的結(jié)合律。3. 投影的串接定律。4. 選擇的串接定律。5. 選擇與投影操作的交換律。6. 選擇與笛卡爾積的交換律7. 選擇與并的分配律8. 選擇與差運(yùn)算的分配律9.3 代數(shù)優(yōu)化9. 選擇對自然連接的分配律10. 投影與笛卡爾積的分配律11. 投影與并的分配律9.3.2 查詢樹的啟發(fā)式優(yōu)化 典
12、型的啟發(fā)式規(guī)則:1. 選擇運(yùn)算應(yīng)盡可能先做。在優(yōu)化策略中這是最重要、最基本的一條2. 把投影運(yùn)算和選擇運(yùn)算同時進(jìn)行:如有若干投影和選擇運(yùn)算,并且它們都對同一個關(guān)系操作,則可以在掃描此關(guān)系的同時完成所有的這些運(yùn)算以避免重復(fù)掃描關(guān)系。3. 把投影同其前或其后的雙目運(yùn)算結(jié)合起來:4. 把某些選擇同在它前面要執(zhí)行的笛卡爾積結(jié)合起來成為一個連接運(yùn)算。5. 找出公共子表達(dá)式:如果這種重復(fù)出現(xiàn)的子表達(dá)式的結(jié)果不是很大的關(guān)系并且從外存中讀入這個關(guān)系比計算該子表達(dá)式的時間少得多,則先計算一次公共子表達(dá)式并把結(jié)果寫入中間文件是合算的。當(dāng)查詢的是視圖時,定義視圖的表達(dá)式就是公共子表達(dá)式的情況。9.3.2 查詢樹的啟
13、發(fā)式優(yōu)化遵循這些啟發(fā)式規(guī)則,應(yīng)用9.3.1的等價變換公式來優(yōu)化關(guān)系表達(dá)式的算法。算法:關(guān)系表達(dá)式的優(yōu)化輸入:一個關(guān)系表達(dá)式的查詢樹輸出:優(yōu)化的查詢樹9.4 物理優(yōu)化代數(shù)優(yōu)化改變查詢語句中操作的次序和組合,不涉及底層的存取路徑。對于一個查詢語句有許多存取方案,它們的執(zhí)行效率不同, 僅僅進(jìn)行代數(shù)優(yōu)化是不夠的 。物理優(yōu)化就是要選擇高效合理的操作算法或存取路徑,求得優(yōu)化的查詢計劃 。選擇的方法: 基于規(guī)則的啟發(fā)式優(yōu)化?;诖鷥r估算的優(yōu)化。兩者結(jié)合的優(yōu)化方法。9.5 Oracle穩(wěn)定執(zhí)行計劃什么是執(zhí)行計劃 所謂執(zhí)行計劃,顧名思義,就是對一個查詢?nèi)蝿?wù),做出一份怎樣去完成任務(wù)的詳細(xì)方案。我們給出了SQL語句
14、,指出了“做什么”,但“怎么做”是由數(shù)據(jù)庫來決定的。對于復(fù)雜的SQL(表連接、嵌套子查詢等),執(zhí)行計劃可能幾十種甚至上百種,但是到底那種最好呢?我們事前并不知道,數(shù)據(jù)庫本身也不知道,但是數(shù)據(jù)庫會根據(jù)一定的規(guī)則或者統(tǒng)計信息(statistics)去選擇一個執(zhí)行計劃,通常來說選擇的是比較優(yōu)的,但也有選擇失誤的時候,這就是這次討論的價值所在。 Oracle優(yōu)化器模式 Oracle優(yōu)化器有兩大類,基于規(guī)則的和基于代價的,在SQLPLUS中我們可以查看init文件中定義的缺省的優(yōu)化器模式。SQL show parameters optimizer_mode 默認(rèn)安裝后數(shù)據(jù)庫優(yōu)化器模式為CHOOSE,我們
15、還可以設(shè)置為 RULE、FIRST_ROWS,ALL_ROWS。可以在init文件中對整個instance的所有會話設(shè)置,也可以單獨(dú)對某個會話設(shè)置:SQL ALTER SESSION SET optimizer_mode= RULE;9.5 Oracle穩(wěn)定執(zhí)行計劃基于規(guī)則的查詢,數(shù)據(jù)庫根據(jù)表和索引等定義信息,按照一定的規(guī)則來產(chǎn)生執(zhí)行計劃;基于代價的查詢,數(shù)據(jù)庫根據(jù)搜集的表和索引的數(shù)據(jù)的統(tǒng)計信息(通過analyze 命令或者使用dbms_stats包來搜集)綜合來決定選取一個數(shù)據(jù)庫認(rèn)為最優(yōu)的執(zhí)行計劃(實(shí)際上不一定最優(yōu))。RULE是基于規(guī)則的,CHOOSE表示如果查詢的表存在搜集的統(tǒng)計信息則基于
16、代價來執(zhí)行(在CHOOSE模式下Oracle采用的是 FIRST_ROWS),否則基于規(guī)則來執(zhí)行。在基于代價的兩種方式中,F(xiàn)IRST_ROWS指執(zhí)行計劃采用最少資源盡快的返回部分結(jié)果給客戶端,對于排序分頁頁顯示這種查詢尤其適用,ALL_ROWS指以總體消耗資源最少的方式返回結(jié)果給客戶端?;谝?guī)則的模式下,數(shù)據(jù)庫的執(zhí)行計劃通常比較穩(wěn)定。但在基于代價的模式下,我們才有更大的機(jī)會選擇最優(yōu)的執(zhí)行計劃。也由于Oracle的很多查詢方面的特性必須在基于代價的模式下才能體現(xiàn)出來,所以我們通常不選擇RULE(并且Oracle宣稱從 Oracle 10i版本數(shù)據(jù)庫開始將不再支持 RULE)。既然是基于代價的模式
17、,也就是說執(zhí)行計劃的選擇是根據(jù)表、索引等定義和數(shù)據(jù)的統(tǒng)計信息來決定的,這個統(tǒng)計信息是根據(jù) analyze 命令或者dbms_stats包來定期搜集的。首先存在著一種可能,就是由于搜集信息是一個很消耗資源和時間的動作,尤其當(dāng)表數(shù)據(jù)量很大的時候,因為搜集信息是對整個表數(shù)據(jù)進(jìn)行重新的完全統(tǒng)計,所以這是我們必須慎重考慮的問題。我們只能在服務(wù)器空閑的時候定期的進(jìn)行信息搜集。9.5 Oracle穩(wěn)定執(zhí)行計劃這說明我們在一段時期內(nèi),統(tǒng)計信息可能和數(shù)據(jù)庫本身的數(shù)據(jù)并不吻合;另外就是Oracle的統(tǒng)計數(shù)據(jù)本身也存在著不精確部分(詳細(xì)參考Oracle DOCUMENT),更重要的一個問題就是及時統(tǒng)計數(shù)據(jù)相對已經(jīng)比
18、較準(zhǔn)確,但是Oracle的優(yōu)化器的選擇也并不是始終是最優(yōu)的方案。這也倚賴于Oracle對不同執(zhí)行計劃的代價的計算規(guī)則(我們通常是無法知道具體的計算規(guī)則的)。這好比我們決定從香港還是從北京去英國,車票、機(jī)票等實(shí)際價格到底是怎么核算出來的我們并不知道,或者說我們現(xiàn)在了解的價格信息,在我們乘車前往的時候,真實(shí)價格跟我們的預(yù)算已經(jīng)發(fā)生了變化。所有的因素,都將影響我們的整個開銷。 9.5 Oracle穩(wěn)定執(zhí)行計劃執(zhí)行計劃穩(wěn)定性能帶給我們什么 Oracle存在著執(zhí)行計劃選擇失誤的可能。這也是我們經(jīng)常遇見的一些現(xiàn)象,比如總有人說我的程序在測試數(shù)據(jù)庫中跑的很好,但在產(chǎn)品數(shù)據(jù)庫上就是跑的很差,甚至后者硬件條件比
19、前者還好,這到底是為什么?硬件資源、統(tǒng)計信息、參數(shù)設(shè)置都可能對執(zhí)行計劃產(chǎn)生影響。由于因素太多,我們總是對未來懷著一種莫名的恐懼,我的產(chǎn)品數(shù)據(jù)庫上線后到底跑的好不好?于是Oracle提供了一種穩(wěn)定執(zhí)行計劃的能力,也就是把在測試環(huán)境中的運(yùn)行良好的執(zhí)行計劃所產(chǎn)生的OUTLINES移植到產(chǎn)品數(shù)據(jù)庫,使得執(zhí)行計劃不會隨著其他因素的變化而變化。 那么OUTLINES是什么呢?先要介紹一個內(nèi)容,Oracle提供了在SQL中使用HINTS來引導(dǎo)優(yōu)化器產(chǎn)生我們想要的執(zhí)行計劃的能力。這在多表連接、復(fù)雜查詢中特別有效。HINTS的類型很多,可以設(shè)置優(yōu)化器目標(biāo)(RULE、CHOOSE、FIRST_ROWS、ALL_R
20、OWS),可以指定表連接的順序,可以指定使用哪個表的哪個索引等等,可以對SQL進(jìn)行很多精細(xì)的控制。通過這種方式產(chǎn)生我們想要的執(zhí)行計劃的這些HINTS,Oracle可以存儲這些HINTS,我們稱之為OUTLINES。通過STORE OUTLINES可以使得我們擁有以后產(chǎn)生相同執(zhí)行計劃的能力,也就是使我們擁有了穩(wěn)定執(zhí)行計劃的能力。9.5 Oracle穩(wěn)定執(zhí)行計劃最后說一下我們不得不使用執(zhí)行計劃穩(wěn)定性能力的場合。我們假定Oracle的優(yōu)化器的選擇都是準(zhǔn)確的,但是優(yōu)化器選擇的基礎(chǔ)就是我們的SQL,這些SQL才從根本上決定了運(yùn)行效率,這是更重要的一個優(yōu)化的環(huán)節(jié)。SQL是基礎(chǔ)(當(dāng)然數(shù)據(jù)庫的設(shè)計是基礎(chǔ)的基礎(chǔ)
21、),一個SQL寫的好不好,就相當(dāng)于我們同樣是要想去英國,但是我的起點(diǎn)在珠海,你的起點(diǎn)卻在西藏的最邊緣偏僻的一個地方,那不管你做怎樣的最優(yōu)路線選擇,你都不如我在珠海去英國所花費(fèi)的代價小。怎樣看oracle查詢語句執(zhí)行計劃?SQLPLUS的AutoTrace是分析SQL的執(zhí)行計劃、執(zhí)行效率的一個非常簡單方便的工具。 1.如何設(shè)置和使用AUTOTRACE SQL connect sys/tiger as sysdba SQL ?/rdbms/admin/utlxplan.sql Table created. SQL create public synonym plan_table for plan_
22、table; Synonym created. SQL grant select,update,insert,delete on plan_table to public; Grant succeeded. SQL ?/sqlplus/admin/plustrce.sql SQLgrant plustrace to public2. 理解和使用AutoTrace :對于SQL 調(diào)整,使用Autotrace是最簡單的方法了,我們只需要做: SQLSET AUTOTRACE ON :我們就可以看到我們SQL的執(zhí)行計劃,執(zhí)行成本(PHYSICAL READ/CONSISTENT READ.),加上S
23、ET Timing On我們可以得到很多我們需要的數(shù)據(jù)。 然后在toad里面對某一條sql語句按下Ctrl+e就可以看到這條語句的執(zhí)行計劃了。9.6 Quest Toad在Oracle應(yīng)用程序的開發(fā)過程中,訪問數(shù)據(jù)庫對象和編寫SQL程序是一件乏味且耗費(fèi)時間的工作,對數(shù)據(jù)庫進(jìn)行日常管理也是需要很多SQL腳本才能完成的。Quest Software為此提供了高效的Oracle應(yīng)用開發(fā)工具-Toad(Tools of Oracle Application Developers)。在Toad的新版本中,還加入了DBA模塊,可以幫助DBA完成許多日常管理工作。它最大的特點(diǎn)就是簡單易用,訪問速度快。使用T
24、oad,我們可以通過一個圖形化的用戶界面快速訪問數(shù)據(jù)庫,完成復(fù)雜的SQL和PL/SQL代碼編輯和測試工作。Toad由Oracle開發(fā)專家專門為開發(fā)人員而設(shè)計,是一個功能強(qiáng)大、結(jié)構(gòu)緊湊的專業(yè)化PL/SQL開發(fā)環(huán)境。 Toad 主要具有如下特點(diǎn): 模式瀏覽: 模式瀏覽功能可以讓我們快速訪問數(shù)據(jù)字典,瀏覽數(shù)據(jù)庫中的表、索引、存儲過程。Toad 提供對數(shù)據(jù)庫的快速訪問,使用極為方便,用戶界面簡潔,結(jié)構(gòu)安排合理。當(dāng)我們點(diǎn)擊一個單獨(dú)的數(shù)據(jù)庫對象,Toad立即顯示此對象的詳細(xì)信息。例如,當(dāng)我們點(diǎn)一個數(shù)據(jù)庫的表,所有和此表相關(guān)的索引、約束、存儲過程、SQL語句以及和其他表的相互引用關(guān)系都在同一界面顯示出來。為
25、了簡化操作,用戶可以在瀏覽窗口操作數(shù)據(jù)庫對象。9.6 Quest ToadSQL 編輯器:主要功能是編輯、運(yùn)行和調(diào)整SQL語句。TOAD 的高級編輯窗口包括眾多的特性來提高開發(fā)人員編寫SQL語句的產(chǎn)品化程度。例如,簡單地生成代碼模板,在編寫SQL前自動發(fā)現(xiàn)包的內(nèi)容和列的名字等等。 SQL編輯器包括一個編輯窗口和運(yùn)行結(jié)果窗口,允許開發(fā)人員在編輯的過程中測試運(yùn)行結(jié)果。SQL編輯器中不僅包括標(biāo)準(zhǔn)的編輯命令,也包括一些增強(qiáng)的功能,如快速查詢表中的字段、將SQL語句的內(nèi)容格式化等等。這個窗口可以處理大到4GB 的內(nèi)容,對大的開發(fā)項目來說非常有用。便捷的書簽可以讓開發(fā)人員非常容易地找到相關(guān)位置。在運(yùn)行結(jié)果窗口可提供用戶定義的配置功
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 按揭房屋買賣合同協(xié)議書
- 三農(nóng)莊休閑旅游經(jīng)營手冊
- 企業(yè)多元化業(yè)務(wù)拓展下的倉儲管理系統(tǒng)創(chuàng)新方案
- 高地溫隧道施工方案
- 景觀棧橋施工方案
- 濕地橋梁樁基施工方案
- 車牌識別系統(tǒng)道閘施工方案
- 建筑工程臨時用工協(xié)議書-@-1
- 鍋爐管束防腐施工方案
- 仲愷高新區(qū)瀝林英光小學(xué)改擴(kuò)建二期項目環(huán)評報告表
- 教師資格考試高中英語面試試題及答案指導(dǎo)(2024年)
- 2022-2023學(xué)年北京市海淀區(qū)七年級上學(xué)期期末語文試卷(含答案解析)
- 2025年高考化學(xué)復(fù)習(xí)策略講座
- 二人銷售合作協(xié)議書模板
- 《健全全過程人民民主制度體系》課件
- 上海市第一至十八屆高一物理基礎(chǔ)知識競賽試題及答案
- 金融營銷實(shí)務(wù) 習(xí)題及答案 安賀新
- 食品經(jīng)營安全管理制度目錄
- 焊接工藝基礎(chǔ)知識培訓(xùn)課件
- 【中職數(shù)學(xué)】北師大版基礎(chǔ)模塊上冊 第4單元《指數(shù)函數(shù)與對數(shù)函數(shù)》4.4.2 對數(shù)函數(shù)的圖像與性質(zhì)(第10-11課時)教學(xué)設(shè)計
- DL∕T 1529-2016 配電自動化終端設(shè)備檢測規(guī)程
評論
0/150
提交評論