Toad_使用簡明手冊范本_第1頁
Toad_使用簡明手冊范本_第2頁
Toad_使用簡明手冊范本_第3頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、亠、Toad功能綜述在 Oracle 應(yīng)用程序的開發(fā)過程中,訪問數(shù)據(jù)庫對象和編寫 SQL 程序是一件乏味且耗費 時間的工作,對數(shù)據(jù)庫進行日常管理也是需要很多SQL 腳本才能完成的。 Quest Software為此提供了高效的 Oracle 應(yīng)用開發(fā)工具 -Toad( Tools of Oracle Application Developers )。 在Toad的新版本中,還加入了 DBA模塊,可以幫助DBA完成許多日常管理工作。它最大的 特點就是簡單易用,訪問速度快。使用Toad,我們可以通過一個圖形化的用戶界面快速訪問 數(shù)據(jù)庫,完成復(fù)雜的SQL和PL/SQL代碼編輯和測試工作。Toad由O

2、racle開發(fā)專家專門為開 發(fā)人員而設(shè)計,是一個功能強大、結(jié)構(gòu)緊湊的專業(yè)化PL/SQL開發(fā)環(huán)境。Toad 主要具有如下特點:模式瀏覽:模式瀏覽功能可以讓我們快速訪問數(shù)據(jù)字典, 瀏覽數(shù)據(jù)庫中的表、 索引、存儲過程。 Toad 提供對數(shù)據(jù)庫的快速訪問,使用極為方便,用戶界面簡潔,結(jié)構(gòu)安排合理。當(dāng)我們點擊一個 單獨的數(shù)據(jù)庫對象,Toad立即顯示此對象的詳細信息。例如,當(dāng)我們點一個數(shù)據(jù)庫的表,所 有和此表相關(guān)的索引、約束、存儲過程、 SQL 語句以及和其他表的相互引用關(guān)系都在同一界 面顯示出來。為了簡化操作,用戶可以在瀏覽窗口操作數(shù)據(jù)庫對象。SQL 編輯器:SQL編輯器的主要功能是編輯、運行和調(diào)整SQ

3、L語句。TOAD的高級編輯窗口包括眾多的 特性來提高開發(fā)人員編寫SQL語句的產(chǎn)品化程度。例如,簡單地生成代碼模板,在編寫 SQL 前自動發(fā)現(xiàn)包的容和列的名字等等。SQL編輯器包括一個編輯窗口和運行結(jié)果窗口,允許開發(fā)人員在編輯的過程中測試運行 結(jié)果。SQL編輯器中不僅包括標(biāo)準(zhǔn)的編輯命令,也包括一些增強的功能,如快速查詢表中的 字段、將SQL語句的容格式化等等。這個窗口可以處理大到4GB的容,對大的開發(fā)項目來說 非常有用。 便捷的書簽可以讓開發(fā)人員非常容易地找到相關(guān)位置。 在運行結(jié)果窗口可提供用 戶定義的配置功能,支持LONG和LONGAV列,可以將數(shù)據(jù)卸出到磁盤、打印數(shù)據(jù)、編輯數(shù) 據(jù)等等。存儲過

4、程編輯器:存儲過程編輯器的主要功能是編輯、 編譯、測試、調(diào)試存儲過程和觸發(fā)器。TOA提供語 法標(biāo)識、錯誤標(biāo)識和其他很多易于使用的功能, 如在彈出窗口顯示表名、列名和Oracle函數(shù)。 和其他的PL/SQL編輯工具不同,TOAD允許在一個文件中操作多個數(shù)據(jù)庫對象,可以編譯 一個對象、編譯多個對象、編譯到當(dāng)前光標(biāo)、從光標(biāo)開始編譯。在運行出現(xiàn)錯誤時,存儲過 程停止到有問題的語句。用戶可以使用快捷方式或模板來快速編寫PL/SQL,也可以根據(jù)需要生成自己的模板。使用Toad可以非常方便地進行編輯工作,可如設(shè)置書簽、取消注釋、格式 化SQI語句等等。DBA 模塊:Toad DBA模塊可以完成決大多數(shù)DBA

5、!理的功能,如表空間管理,修改用戶權(quán)限,生成 Schema 腳本,修改 Oracle 參數(shù)等等。PL/SQL Debugge選項:Toad 提供簡單易用的 PL/SQL 調(diào)試功能,可以節(jié)省開發(fā)人員在大型項目中用于開發(fā)和測 試的寶貴時間,提高應(yīng)用開發(fā)的質(zhì)量。在存儲過程開發(fā)的過程中,Toad可以逐行編輯、調(diào)試和運行代碼。運行時可以根據(jù)需要輸入?yún)?shù), 觀察相關(guān)參數(shù)的變化來檢查存儲過程的正確性。 在調(diào)式過程中,Toad可以通過窗口顯示所有的斷點、參數(shù),調(diào)用堆棧和輸出參數(shù)。使用Toad, 非常容易檢測到存儲過程的錯誤, 開發(fā)人員可以一步一步運行PL/SQL語句來識別問題。調(diào)試 會話可以和其他程序會話同時

6、進行。SQLab Xpert 選項:幫助開發(fā)人員優(yōu)化SQL為他們提供各種優(yōu)化模式下SQ執(zhí)行計劃,并且能夠給出優(yōu)化的 建議,能夠比較各種模式下實際的SQI運行結(jié)果,幫助開發(fā)人員真正高速地開發(fā)高效地代碼。Toac還可以外掛一些別的產(chǎn)品,比如 PL/Formatter, RevealNet Kno wledge Base , SQL Impact等,這些都能夠和Toad緊密集成,共同提供了一個完美的集成開發(fā)環(huán)境。、系統(tǒng)要求和產(chǎn)品安裝1系統(tǒng)需求客戶端:? Windows 95 / 98 / NT/2000 中英文均可? 完整安裝的 SQL*Net 2.0 或者 Net8? 磁盤:一般安裝需要 20M

7、左右的空間,根據(jù)所選擇模塊的不同和安 裝方式的不同,最少也要5M的磁盤空間(從網(wǎng)絡(luò)服務(wù)器讀?。? 存:Windows 9x/Me:16M 存;Windows NT/2000: Min 32M? Tuning模塊需要額外的25M空間服務(wù)器端:? Oracle 7.3 或者更高,在任何硬件平臺上。? 需要一個 DBA用戶(如果需要安裝 SQLab Xpert模塊)2 三種安裝方式的選擇:a)TOAD and Personal Configuration Files to PC默認安裝選擇,完成一個完整的 Client 端的安裝,把所有需要的文件拷貝到本地 Toad 目錄。 絕大多數(shù)用戶應(yīng)該選擇使用

8、這個安裝方式。b)Personal Config Files to PC, read TOAD from Network Server從網(wǎng)絡(luò)服務(wù)器讀取 Toad 程序,在本地計算機安裝一些自定義的文件,并且創(chuàng)建到服務(wù)器文件的快捷方式,一般不推薦使用這個方式,而且要求網(wǎng)絡(luò)服務(wù)器已經(jīng)配置。c)TOAD to Network Server把 Toad 安裝到網(wǎng)絡(luò)服務(wù)器上,以便這樣別的用戶能夠進行 Personal Config Files to PC, read TOAD from Network Server 這種方式的安裝 。3 需要運行的腳本根據(jù)據(jù)需要使用到的特性,需要運行一些腳本 (都在To

9、ad'temps目錄下)? 如果需要用 Toad 來查看執(zhí)行計劃,必須運行腳本 PrepToad.sql 或者 notoad.sql 如果希望專門建立一個 Toad 用戶來存放 Toad 需要使用的對象的話,就運行 preptoad.sql 。如果希望在當(dāng)前連接用戶模式下建立 toad 需要使用的對象的話,就運行 notoad.sql 。 注意,如果是選擇了專門建立 toad 這個用戶的話,需要先修改一下腳本,指定用戶的 默認表空間和臨時表空間。? 需要使用 Oracle8i 的 Profile analyzer ,必須運行 ToadProfiler.sql? 需要加強 Toad 的安

10、全性,必須運行 ToadSecurity.sql4. Toad Xpert 選件的安裝安裝 Xpert 選件時候, Toad 會提示你,需要安裝一些 Server 端的表、視圖和包等對象,可以把表存 儲到某個指定的表空間 ( 如 Tools) 里面。 可以簡單的按照提示一步一步做就可以了。 如果系統(tǒng)設(shè)定不 允許 Job 的話( Job_queue_process=0 ) ,Toad 提示有些部件不會現(xiàn)在安裝,可以忽略。安裝完成以 后,可以選擇讓某些非 DBA用戶也可以使用 Toad的SQLab Xpert調(diào)優(yōu)功能。安裝完成以后, Toad 會提示你一些關(guān)于優(yōu)化目標(biāo)方面的問題,你可以選擇每次優(yōu)化

11、都可以重新 設(shè)定,或者一次設(shè)定,以后一直使用這個設(shè)定。 當(dāng)然如果需要, 還是可以更改的, 在 SQLabOption xpert 的窗口的 Administration 和 Preference 下面重新設(shè)定。四、Toad使用快速入門1 Schema Browser :激活 Schema Browser 的方式:Schema browser是Toad的極為有特色的模塊。在 schema browser的幫助下,可以方便 的瀏覽數(shù)據(jù)庫部的各類數(shù)據(jù)庫對象,比如表,索引,序列,存儲過程等,而且可以方便 的倒出 DDL 語句和進行各種修改,重建工作。定位到某一類對象上,這列對象允許的操 作都會自動列出

12、來。特色:支持 Oracle 數(shù)據(jù)庫里面所有對象的新建、查看、修改,集成了幾乎對所有數(shù)據(jù)庫對 象的管理所需要的功能。按照 模式->對象類別 -> 對象->對象可操作屬性 -> 對象本身的詳細信息和對象相 關(guān)的信息 來組織,非常有條理,容易定位對象,也能夠看到所有你需要的對象的相 關(guān)信息。對于表:i. 完備的建表向?qū)?,不用輸入冗長的語法,更加全面地替你考慮。ii. 可以修改表的各種邏輯和物理屬性, 修改列的屬性,增加列,刪除列(在 Oracle8i里面) ,修改表的物理存儲屬性, Truncate , Drop 等。iii. 可以生成建表的完整的 DDl 語句,包括存儲信

13、息, 權(quán)限信息, 約束, 索引和觸發(fā)器等,而這些手工很難做到。iv. 可以方便的對表進行分析, 查看表地所有信息, 可以有條件的倒出表里面的數(shù)據(jù),并且保存為 sql 語句。v. 可以方便的對表進行重組, 可以完成 exp/imp 作不到的事情, 而且更少地人工參 與,更加安全。對于視圖,存儲過程:i. 可以保存建立視圖、存儲過程的語句為文本,ii. 重新編譯失效的視圖, 存儲過程, 修改視圖的定義語句等。 方便的查看存儲過程的代碼,相互依賴關(guān)系,權(quán)限信息等保存為文本等?;貪L段,i. 簡潔明了的 online , offline 狀態(tài),方便地 online/offline 操作ii. 詳細的回滾

14、段物理信息和當(dāng)前狀態(tài)。iii. 可以方便的修改物理存儲屬性表空間:i. Tablespace Map;直觀的顯示數(shù)據(jù)物理的在表空間上的分布ii. 直觀的查看各個表空間的利用率、剩余空間、破碎情況等信息iii. 可以進行各種alter操作:online, offline,增加數(shù)據(jù)文件,改變數(shù)據(jù)文件大小,改變物理存儲屬性等對其他數(shù)據(jù)庫對象也有完備的操作支持。2.SQL Editor:a)激活SQL Editor的三種方式:i. 連接到數(shù)據(jù)庫之后,Toad自動打開SQL Editor這個窗口。ii. 點擊總工具欄上最左邊的那個按鈕iii. 從菜單欄:Database -> SQL Editor

15、b)特點:允許同時打開多個編輯窗口,同時編輯多個 SQL語句支持同時連接到多個數(shù)據(jù)庫,同時對多個數(shù)據(jù)庫進行操作允許編輯SQL PLSQL JAVA HTML和文本使用書簽功能,可以在大量 SQL語句里,快速定位某個語句所在位置SQL Editor本身具有強大的編輯功能,非常方便編輯SQL語句。強大的快捷鍵支持和工具欄快速按鈕的支持,更加高效編寫(很多快捷鍵可以自己定義,在 View ->options ->SQL Editor里面)能夠根據(jù)前面的條件,智能推測需要輸入的代碼,可以做到某種程度的代碼智能 填充把鼠標(biāo)定位到表/視圖/存儲過程名稱之上,按 F4,可以打開對象描述窗口,方

16、便的查看表和視圖的定義,存儲過程的源代碼,非常容易對SQL語句的分析其執(zhí)行計劃:單擊工具欄上的 按鈕就可以看到Explain Plan的結(jié)果支持部分SQL*Plus命令,可以方便的執(zhí)行大量的為SQL*Plus編寫的數(shù)據(jù)庫腳本 可以通過SQLabxpert來對當(dāng)前SQL語句進行全面的分析,給出各種合理的調(diào)優(yōu) 意見,只需要單擊工具欄上的 Tuning按鈕:可以方便的保存,打開和運行SQL腳本支持對查詢結(jié)果進行修改,可以把查詢結(jié)果以多種格式保存起來,可以保存為HTML純文本,XLS等多種格 式很容易的得到SQL函數(shù)的列表和用法描述(Show SQL help Window按鈕)可以查看SQL語句的執(zhí)

17、行情況:通過下方的AutoTrace窗口,看到SQL語句的實 際執(zhí)行結(jié)果和執(zhí)行效率。支持歷史SQL(F8):可以方便的查詢以前執(zhí)行過的 SQL不用反復(fù)重新輸入。 可以執(zhí)行匿名塊,存儲過程,從下方的窗口看到DBMS_OUTP的結(jié)果,如:過程:| Auio T0DM5 Outpul | Codfr|beginJ=LF嚴(yán)于W"廠 J6 Scends4?Oi pallingtest(1);在的部 門為F 1匸口匚Oepawend;在的詠l'F的部I'TT經(jīng)理為"匕目匸3. Stored Procedure Editora)打開存儲過程編寫器的幾個途徑:單擊總菜單欄上

18、的第三個按鈕:點擊 Database - > Procedure Editor 可以通過Schema browser來調(diào)用b)一些特點和優(yōu)點: 1強大的自定義設(shè)置:從保留字的顯示方式,到自動替換,到各種快捷鍵的定義等等, 用得越熟越順手。2. 自動用不同顏色顯示SQL和PL/SQL關(guān)鍵字,語法清晰明了,可根據(jù)自己的習(xí)慣來具 體定制各類關(guān)鍵字的具體顯示方式。 可以自定義存儲過程得模板, 在新建存儲過程的 時候,自動生成程序的框架可以方便的調(diào)用 SchemaBrowser,把鼠標(biāo)定位于某個對象 上, F4, SchemaBrowser 打開該對象的詳細描述,幫助順利快速開發(fā)程序。支持代碼 自

19、動更正,如輸入ndf,自動替換成NO_DATA_FOUNt入the自動替換成the,類似 的自動替換還可以自己修改和添加。6方便的左邊行號顯示,單擊左邊行號就可以實現(xiàn)調(diào)試斷點的增加/刪除7 對各種快捷鍵的支持,不但包括常見的編輯操作,還可以有自己定義的PLSQL塊的支 持(自己定義快捷方式)。如可以定義CTRL+SHIFT+D單出所有PLSQL Block的類型, 可以自己選擇。8可以在一個集成開發(fā)環(huán)境里面,一邊編碼,一邊調(diào)試,不用多處切換 9方便的同時打開多個存儲過程,通過頁面快速切換10快速編譯存儲過程, 快速定位錯誤所在, 自己選擇是否同時編譯依賴的存儲過程4. SQL Modeler

20、:SQL Modeler可以幫助開發(fā)人員很容易的寫出各種復(fù)雜的SQL語句,只需通過簡單的拖動鼠標(biāo),就能夠?qū)懗鰪?fù)雜的 SQL語句來。打開 SQL Modeler 的幾個途徑:i. 菜單欄 Database -> SQL Modeler ,打開窗口ii. 單擊工具欄第四個按鈕,打開 SQL Modeler 窗口 窗口由三個主要部分組成:表選擇區(qū)域:最右邊的那個部分,用來選擇From子句中用到的表。拖動到左邊的區(qū)域或者雙擊就選擇了該表。表模型區(qū)域:用來圖形化的顯示選擇的表和表之間的關(guān)聯(lián)關(guān)系。生成SQL區(qū)域:這里顯示用圖形化方式創(chuàng)建的查詢對應(yīng)的SQL語句,在SQL Modeler里面,還支持對生

21、成的 SQL進行Explain Plan ,調(diào)試SQL的性能,運行 SQL 看是否得到了希望的結(jié)果,保存生成的語句,或者把語句粘貼到SQL Editor 里面。有了 SQL Modeler的幫助,即使是初級的程序員也能編寫出復(fù)雜而又高效的SQL查詢來。比如下面的例子;TOU - tL M&tislar for ICAD_BEM3Cl£JALES-Jdj_xl|g| xjEMiP+ EMP MD (PkQM_ihrEEiDEF_HOMJM土底+VAF<HAR2 (30MaNAS.IDNJM3ERnixn. 1UEPJ>JO IF 町MAtiAC.I H:zl|TQA

22、|> DEMOAles: IDEFEMPMANAGFfi-dFieldEMP NAMENA HEIf AMEEMP HOzlTableKMPUEVMANAGERKW2蟲TOAD DEMOTOAD DEMOTOAD DEMOTOAD DEMOSortCorirl i t i nn« 1OrA.qqFOqral 口FiteXd. Ha. !bldP_MAMB:HAKEEMP_JNOVisibleSKowShupwlTcinlr Sbuwn CfUESL匚CM PRODUC7SOUESCO M_Pfi ODUC7S _LSEC_BrSAFtLAFM201 I卜SME矗herdgd Q

23、uarp QusryResuhL Esp* Plarhim _n>pn-)s*ci?o|t »nir 11 i = /)*5嗣it 血 id; 實TEiMm C"銚*“ I gl K. Vl nf DBjl"宀站Lp嗥梟盞嚮國鶴殆曙毘n 費中訂乙占 囪I®生成步驟:1. 選出表 emp, dep, manager2. 用鼠標(biāo)拖住 emp的 emp_name和 emp_no, dep 的 name,manager 的 name3. 雙擊criteria 窗口的emp_no condition 列,彈出窗口,輸入查詢條件,比如emp_no=34. 由于

24、結(jié)果里面不希望 emp_no出現(xiàn),雙擊emp_no列的visible ,設(shè)置為false這樣就出來了需要的查詢,現(xiàn)在可以運行查詢得到結(jié)果,對查詢SQL進行分析,或者在 SQL Editor里面打開這個SQL或者保存為SQL Model文件,或者再進一步處理,比如加排序,匯總等。5. DBA方面的功能:Toad在DBA日常管理方面的能力是非常強大的,可以幫助 DBA安全快速地完成許多日常 工作,還有Toad特有的一些小工具能完成一些普通方法很難做到的功能。下面大概講述了各個常用模塊的主要功能:c) Database Monitor提供直觀的Oracle數(shù)據(jù)庫運行狀況,包括下面這些詳細信息:可以看

25、到邏輯IO,物理IO,各個狀態(tài)的session數(shù)目,SGA勺利用率,共享池的使用狀況, 各類事件的等待狀況,以及各類事件隨著時間的變化情況d) Instanee Monitori. 可以用來檢查本地tnsnames.ora文件里面定義的所有節(jié)點、Listener和數(shù)據(jù)庫的運行狀態(tài)和版本等相關(guān)信息。ii. 可以遠程啟動、關(guān)閉數(shù)據(jù)庫(如果設(shè)置了password驗證方式)e) Unix Monitori. 可以監(jiān)控Unix機器的運行狀況比如詳細的機器啟動時間,CPU利用率,主要的進程以及這些進程占用的資源,主要的磁盤IO等。f) Trace/Kill sessi oni. 方便的查看所有的連接用戶相

26、關(guān)信息:比如終端,程序,連接時間等ii. 對某個用戶進行跟蹤,查看用戶執(zhí)行的 SQL語句,查看語句的執(zhí)行計劃,iii. 方便的查閱系統(tǒng)的 Lock 對象,有沒有什么等待別的事務(wù)釋放鎖的情況,并能夠輕易查出等待什么用戶的什么事件結(jié)束,那個用戶執(zhí)行的是什么SQL。iv. 查看回滾段的使用狀態(tài),什么用戶,什么語句,使用的什么回滾段,多少讀寫量等g) Oracle Parameteri. 可以方便的查看 Oracle 系統(tǒng)的參數(shù):是否默認值,參數(shù)作用的簡要描述,是否可以用alter session/alter system 來動態(tài)改變,對于那些可以動態(tài)改變的參數(shù),可以雙擊 鼠標(biāo)來進行修改h) NLS_

27、PARAMETER:i. 方便的查看 session , instanee , database 一級的 NLS參數(shù)值,ii. 可以動態(tài)修改session的NLS參數(shù)值i) Extentsi.可以查看某個用戶下的表和索引的詳細的存儲情況,ii. 發(fā)現(xiàn)那些占用大量空間的表和索引,可以考慮使用相應(yīng)的對策,比如分區(qū)iii. 發(fā)現(xiàn)那些即將達到 max_extents 的表和索引并可以及時糾正iv. 發(fā)現(xiàn)那些索引和表處于同一個表空間的情況,并可以及時糾正。j) Tablespaeei.直觀的查看每個表空間的利用率, 總空間,已使用空間,剩余可是用空間以及默認存儲參數(shù),和表空間是否需要整理等信息ii. 查

28、看每個表空間的狀態(tài),組成的數(shù)據(jù)文件, 以及每個數(shù)據(jù)文件的詳細信息iii. 查看每個表空間里面存在的對象和這些對象的詳細存儲特性k) Tablespaee Map :i.圖形化的顯示表空間里面各個表/索引所占用的空間,各個 segment的大小,segment是否連續(xù)等信息,非常直觀ii.l) Server Statisties:i. 可以非常直觀的看到系統(tǒng)總體運行情況,迅速定位系統(tǒng)瓶頸所在ii.可以查看系統(tǒng)圍各類等待事件的狀況,查看每個連接會話的狀況,m) Pinned Code :i.我們知道,頻繁執(zhí)行的大的存儲過程最好 Pin 起來,這樣可以避免被 Oraele 在存不足的情況下?lián)Q出存,避

29、免動態(tài)加載,也避免 flush shared pool 的時候被清出存。ii.根據(jù)每個模塊的大小, 執(zhí)行次數(shù), 決定是否要把某個存儲過程 PIN 起來。 一個按鈕就搞定了。n) Control Files:可以查看當(dāng)前系統(tǒng)有哪幾個控制文件,以及控制文件部記錄的詳細信息。(實際上就是 V$CONTROLFILE, V$CONTROLFILE_RECORD_SEC)TIONo) Redo Log Manager:i.可以方便的查看LOG勺組,當(dāng)前日志,每個組里面的成員名字,大小,方便的增加、刪除 log 組,切換當(dāng)前日志,對日志歸檔進行具體的控制。ii. 可以在這個界面里完成幾乎所有的對 redo

30、 log 的操作。p) Repair chained rows:i. Chained rows 影響系統(tǒng)性能,處于系統(tǒng)性能的考慮,需要把 chained rows 修復(fù)成普通 的表的行。使用 repaie chained rows, 就可以比較容易的做到這一點。選擇需要分析 的表,然后分析一下,看有沒有 chained rows ,如果有,點擊 repair , Toad 就幫你把 那些 chained rows 給修復(fù)了。q) Identify Space Deficits如果系統(tǒng)出現(xiàn)1659,1653錯誤,就是一個不合格的DBA但是要即時預(yù)見這些錯誤,還是有一定的難度的。有了 Toad 的

31、這個小工具之后,一點某個表空間,就知道這個表空間里面的 剩余自由空間是否允許任何表能夠擴展到下一個 extent 。并能夠在發(fā)現(xiàn)問題之后,直接改 正問題。r) Estimate Table/Index Sizei. 數(shù)據(jù)庫的物理規(guī)劃中,表 / 索引的存儲子句的定義是非常重要的,影響系統(tǒng)。但是沒有 什么工具的話,要為表定義合理的存儲子句也不容易。ii.在Toad里面,專門有工具幫助你合理定義表/索引的存儲情況:1. 自己可以定義將來表中需要存儲的數(shù)據(jù)的數(shù)目2. 多種估計方式:a) 根據(jù)對已有的數(shù)據(jù)的分析來定義表的大小(最精確,但是比較慢)b) 根據(jù)表定義數(shù)據(jù)類型來定義表的大小c) 根據(jù)數(shù)據(jù)字典中

32、以前分析過的數(shù)據(jù)來估計大小(需要近期分析過該表)s) Analyze All Tablesi. 基于CBO的SQL需要CBC提供最優(yōu)化的執(zhí)行路徑來提高程序的執(zhí)行效率,但是假如對表進行大量的DML操作之后,不及時更新表的統(tǒng)計數(shù)據(jù),這時候CBC就不能選擇最為有效 的執(zhí)行路徑,導(dǎo)致程序執(zhí)行效率低。ii.手工分析表比較麻煩,一個一個做。iii. 用 Toad 的 Analyze Alltables 這個工具,可以一次分析整個模式下面的所有表,有豐富的控制選項,包括是采用估計還是完全,是否同時分析索引,估計的話,采用多大的 百分比等。t) Rebuild Tablei.當(dāng)表中的數(shù)據(jù)被反復(fù)大量的DML之后

33、,而且PCTFRE和PCTUSE定義的不合理的情況下,表可能會變得非常破碎,占用大量的 extent ,索引也會相當(dāng)破碎,導(dǎo)致效率相當(dāng) 低下。ii. 傳統(tǒng)的方式是通過 exp/imp 來解決這個問題, 但是步驟實在比較麻煩, 手工操作也有一 定的危險性。iii. 使用Rebuild Table工具,輕松搞定,而且可以手工修改一些通過EXP/IMP無法修改的參數(shù),比如 freelists ,freelists group, tablespace , initial 等,還能夠更改列的 名字。u)Relocate Indexi. 我們知道, 表和索引一般都需要分開存放到不同的表空間, 這樣比較便于

34、管理,性能上 也會有一定的提高,因為可以對表和索引同時存取。ii. 但是實際上很多時候,由于這樣那樣的原因,常常忽略了索引單獨存放這個基本概念,比如建立主鍵約束的時候沒有加USINGINDEX子句,后來disable/enable 了主鍵約束/唯一性約束等,都會導(dǎo)致把索引直接存放到和表同一個表空間里面。iii. 手工發(fā)現(xiàn)這些索引,再逐個移動非常麻煩,容易出錯,在Toad里面,就很容易根據(jù)用戶/表空間來發(fā)現(xiàn)那些不恰當(dāng)存放的索引,可以批量移動這些索引,并且允許重新定義 索引的存儲子句。v)Generate Schema Scripts :i.可以用來生成整個用戶下所有/部分對象的DDL語句??梢园?/p>

35、結(jié)果保存為 sql語句或者保存為TOAD勺自定義格式。ii.可以用來復(fù)制表結(jié)構(gòu),(EXP/IMP有非常嚴(yán)重的缺陷,就是從一個大的數(shù)據(jù)庫倒出的表結(jié)構(gòu), 無法導(dǎo)入到一個小的數(shù)據(jù)庫里面, 因為里面包含了原來表的存儲信息,即使選擇 rows=N,也要在導(dǎo)入數(shù)據(jù)庫里面占用相當(dāng)大的空間)w)Compare Schema:i. 在開發(fā)的時候,有時候同時在幾個開發(fā)庫上開發(fā),但是最后兩個庫的結(jié)構(gòu)不完全一樣, 很難比較ii. 用TOAD勺這個功能,可以對兩個數(shù)據(jù)庫的模式(用戶)下面的所有對象(包括存儲過 程)進行比較,可以選擇具體的比較容。iii. 可以通過直接打開兩個到各自數(shù)據(jù)庫的連接,或者根據(jù) Toad ge

36、nerate schame scripts 生成的文件進行對比??梢灾苯由赏絻蓚€數(shù)據(jù)庫的 sql 腳本,給出匯總的區(qū)別簡要和詳細報告等。6. 如何對存儲過程進行 Debug?需要Toad單獨的Debug Option(Standard Version沒有這個選項)要用Toad對存儲過程進行debug,必須安裝Oracle的系統(tǒng)包:dbms_debug而 且必須安裝 Oracle Probe API v2.0 或者更高的版本。集成在 Stored Precedure Editor 里面,可以一邊編寫一邊調(diào)試,大大提高開發(fā) 效率打開Procedure Editor 后,Debug菜單激活,可以

37、開始進行 Debug工作。 允許對存儲過程進行逐行調(diào)試、斷點調(diào)試 , 也支持對觸發(fā)器進行調(diào)試。 可以有斷點支持,支持 Watch變量,允許運行時改變變量的值 允許對多層調(diào)用的Debug支持調(diào)試步驟具體舉例:1 點擊菜單欄的第三個按鈕: ,打開 Procedure Editor2 點擊 Procedure Editor 的菜單欄的按鈕,調(diào)出需要調(diào)試的存儲過程3 單擊工具欄上的按鈕,輸入需要傳入的參數(shù),如果不需要傳入?yún)?shù),可以直接單擊工具欄上的按鈕:直接開始調(diào)試,如下圖輸入傳入?yún)?shù):Proceduie:Arguments:TESTNanw|hdodeTypeVjIljcLEMPNOINNUMBER

38、3*丨1 d£odeEEC; IHTOiD_&EKO.Test ( 7 ); END;Rebuld CodeCfipboacd廠 Output OUT aig OK|Can亡出1IHelp4.單擊菜單欄的按鈕:,可以單步跟蹤,也可以定義一個斷點,直接運行到斷點在單步執(zhí)行,在存儲過 程運行的過程中,當(dāng)前語句會高亮度顯示,并且把鼠標(biāo)指針定位到變量上,Toad自動顯示該變量的當(dāng)前值。5. 可以隨時中止程序的執(zhí)行,只要點 Debug ->Halt Execution,或者菜單欄上的按鈕,就可以中止程 序的執(zhí)行6. 當(dāng)碰到一個存儲過程調(diào)用另外一個存儲過程的時候,可以選擇跳過(St

39、ep Over),這樣就直接運行那個被調(diào)用的存儲過程,返回調(diào)用結(jié)果,繼續(xù)這個存儲過程的調(diào)試,也可以選擇Trace Into ,這樣就打開被調(diào)用的存儲過程,進一步深入調(diào)試那個被調(diào)用的子存儲過程。如果需要保持Debug信息,在編譯的時候應(yīng)該選擇 Compile Depe nden cies with Debug In formati on ,就是 Procedure Editor 工具欄最右邊的那個按鈕。7. 支持對變量實時追蹤:使用Watch:可以在運行前,或者運行過程中對某個變量進行實時跟蹤:Add Watch,把鼠標(biāo)定位到該變量上,然后點擊Debug ->Add Watch At Cu

40、rsor ,該變量就會出現(xiàn)在 Debug狀態(tài)窗口上,而且實時反應(yīng)該變 量的當(dāng)前值。如上圖中的變量 v_empname可以運行時刻修改8 斷點支持:單擊存儲過程需要加斷點的地方的行號,該行顏色變紅,輸入?yún)?shù),單擊執(zhí)行按鈕,可以直接運行到 斷點處,可以不必逐行追蹤,更加高效率的進行調(diào)試。Debug Option 還支持條件斷點,只有當(dāng)滿足條件的時候才會在那個地方停止,否則就好像不存在這 個斷點一樣繼續(xù)運行。注意DBMS_OUTPUT.PUT_LINE結(jié)果只有當(dāng)程序執(zhí)行完成以后才會出現(xiàn),在程序執(zhí)行過程中 是沒有結(jié)果的。7. 如何用SQLab Xpert對存儲過程進行調(diào)優(yōu)?我們知道,Oralce數(shù)據(jù)庫

41、的優(yōu)化,最主要的步驟就在于SQL的優(yōu)化。而在沒有專門的工具(如Toad)的幫助下,進行 SQL優(yōu)化是一件非常困難和乏味的事情,并且需要對Oracle的深入理解和高超的Oracle調(diào)優(yōu)技巧。使用 Toad的SQLab Xpert Tuning 模塊,可以使我們普通開發(fā)人員也能夠非 常快速,精確的對 SQL進行專家級的分析在SQL Editor和Procedure Editor 里面,選中需要調(diào)試的SQL語句(SQLab Xpert只能調(diào)試Selectnsert, Update,Delete語句),復(fù)制到SQL Editor里面,然后點擊工具欄上的調(diào)優(yōu)按鈕,Toad會自動打開 SQLab xper

42、t窗口,捕獲當(dāng)前的 SQL語句,并且把它轉(zhuǎn)化為符合explain plan 格式的語句。第一次打開Xpert的時候,Toad會提示你,需要安裝一些Server端的表、視圖和包等對象,可以把表存儲到某個指定的表空間(如Tools)里面??梢院唵蔚陌凑仗崾疽徊揭徊阶鼍涂梢粤?。如果系統(tǒng)設(shè)定不允許Job的話(Job_queue_process=0) ,Toad提示有些部件不會現(xiàn)在安裝,可以忽略。安 裝完成以后,可以選擇讓某些非DBA用戶也可以使用 Toad的SQLab Xpert調(diào)優(yōu)功能。安裝完成以后,Toad會提示你一些關(guān)于優(yōu)化目標(biāo)方面的問題,你可以選擇每次優(yōu)化都可以重新 設(shè)定,或者一次設(shè)定,以后一

43、直使用這個設(shè)定。當(dāng)然如果需要,還是可以更改的,在SQLabOption xpert的窗口的 Administration和Preferenee 下面重新設(shè)定。例子:下面這個SQL語句涉及到多表之間的關(guān)聯(lián),有一定的復(fù)雜性,我們可以借助Toad的SQLab XpertOption來幫助分析:select a . name b . name c . emp_namefrom dep a , manager b , emp c where a . dep_no=c. DEP_NO and b . manag_id=c. manag_id and c.emp_ no=3我們把這個 SQL復(fù)制到SQL E

44、ditor里面,單擊上面的調(diào)優(yōu)按鈕,Toad打開SQLab XpertOption 窗口。如下圖:* Fix* Qd.1%<11 traoTr mK&If3: Fi Ftow± Hti4. Olitfod -Hirit |Slljvlnrwcnl:CompMTiFf %<njJHIJSJims 一EyecnfB | iUtaTune1 | Ewpfaij | 吉thine Ltann |TDADJ3EklO| see Xai cfc : 'E*d C« 3MF_M1*1MS 更1rc DBD AxB-BE1 Cwtnsr b- A . t-Bl&

45、#163;! _Wo i. E t_N-Z'*nrl - 3>4AiQ 1D*C - HAtOA IDZaft® .3 .時 iLWTCAP.DEMD E KIP CSELECT STATEMENT CHOCSEHESTETi LOOPSIE MP Io DEF) k>FtNESTED LtJ jp: 匚K"忖二- I ABLE 2匚ESE FU LL T口 AD_C'E MD E MP!匕叵 UNIQUE IUDO(L>HliXiE SiZMMTQAE* IHMDR: OEP A i£F r-O = : CiE P kD上 UN

46、feU UL ItMt 匚猶 UHUL'L E F QAO.E-L MO hWMAt-LR B klAjJAQ I:-C MrJAEi ID:Ml伽廠1Nk-L 14 叩il |申UEqw|Aqg4iw-1”2忖丁NrLuLrrrc 11?沖1“丄叮$7?:.|?剛1侶 |ln Jen訓(xùn)(L®TM恤砂Fl EMPVMFbe4*tmp_runiQJVVjk*ij 時血 h.iwVHufrh"1LnEljck 事gg-fie- |crjhq |Crg冃嗨 | Typpc4na"»wdlmdn: hF-.bEk.Fn 弓予卜 o* ik -'

47、r t¥ - if 1 仆 :rn n2 *ww r"Id lind 豪 起內(nèi) ing - ”Rw# worn irinawdl ri«na U-ia- kinQHe*Rdea P應(yīng)頁MEHFor meI". rAh.M|T v« d3 IHb 口置&!* rri r xl«if- *|»rr unfad Id find * rrii=h.r<g : zHcm-s? rtv I卜勺ELjE匚=:sibM:Jd-tlSQL語句的執(zhí)行計劃分別是什么樣從上面的圖中我們可以方面的看到:在各種優(yōu)化模式下,該的,Toad給

48、出了每一種執(zhí)行計劃的具體每一個步驟,每個步驟的成本,該表涉及的相關(guān)的數(shù)據(jù)等, 如果SQL存取的表還沒有經(jīng)過分析,Toad會以紅色警告顯示,并且很方便的幫助你對該表進行分析,收集統(tǒng)計數(shù)據(jù),重建索引等,以有助于優(yōu)化器作出最好的選擇。可以把當(dāng)前的分析結(jié)果保存到它的 資料庫里邊,以備以后再次調(diào)用之需。我們還可以求助與 SQLab的自動優(yōu)化功能:點擊Original SQL下面的auto tune按鈕,Toad 會對執(zhí)行結(jié)果按照tkprof進行分析(當(dāng)然,這需要你在 initsid.ora 里面設(shè)置好utl_file_dir ,如 果服務(wù)器是在 Unix機器上的話,還需要通過 FTP方式得到Trace文

49、件,有一些小小的設(shè)置)。自動優(yōu)化非常高效的對所有執(zhí)行計劃進行實際運行比較,并且給出實際執(zhí)行的時間的對比, 如下圖:E.n.cculioiii Lalistiu GuiumiiwuhiFilis gdi t Ati on Mjj/nts J:- := TchjaIs ffindjAf HlpConiNTi 生 oiii ViewF friFnini * i=v"4 |JFUCUEE ajTQAD_DEMQ(3l-! x| I* x3fio專*皇|星撐戲匚0.瑩巴犧喈 9也Jssc岳ScrarDp dial ElapTed5 silt II n M$mSea*) L口ngIsc-an ShoitFirs Rew Elapt&c AS iSdtaTure Cf211 0: O:DD.D5DDL0D: 3 00LD5? Zq T ure ttBin C mos100nI 0 OC D52Hint| 0. .UJCE3000D 10LD6 Sto Ture tt1|1 a: CkDO.OG33c0D: 1010&J: FirsLH Hunt11 U: U:UD.O?JD00J J0C.D74 Orde-ed Tinti 1 : o:oa n>1?02D-3 00.D71:

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論