Toad使用操作手冊(cè)_第1頁(yè)
Toad使用操作手冊(cè)_第2頁(yè)
Toad使用操作手冊(cè)_第3頁(yè)
Toad使用操作手冊(cè)_第4頁(yè)
Toad使用操作手冊(cè)_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、Toad 使用操作手冊(cè)目錄一Toad功能綜述二系統(tǒng)需求三安裝指南四快速入門(mén)1 Schema browser的用法簡(jiǎn)介2 SQL Editor的使用介紹3 Procedure Editor的用法介紹4 如何進(jìn)行PLSQL的debug5 如何使用SQLab Xpert優(yōu)化SQL6 如何使用SQL Modeler來(lái)編寫(xiě)查詢(xún)7 如何使用Toad的DBA方面的功能一、 Toad功能綜述在Oracle應(yīng)用程序的開(kāi)發(fā)過(guò)程中,訪問(wèn)數(shù)據(jù)庫(kù)對(duì)象和編寫(xiě)SQL程序是一件乏味且耗費(fèi)時(shí)間的工作,對(duì)數(shù)據(jù)庫(kù)進(jìn)行日常管理也是需要很多SQL腳本才能完成的。Quest Software為此提供了高效的Oracle應(yīng)用開(kāi)發(fā)工具-To

2、ad(Tools of Oracle Application Developers)。在Toad的新版本中,還加入了DBA模塊,可以幫助DBA完成許多日常管理工作。它最大的特點(diǎn)就是簡(jiǎn)單易用,訪問(wèn)速度快。使用Toad,我們可以通過(guò)一個(gè)圖形化的用戶(hù)界面快速訪問(wèn)數(shù)據(jù)庫(kù),完成復(fù)雜的SQL和PL/SQL代碼編輯和測(cè)試工作。Toad由Oracle開(kāi)發(fā)專(zhuān)家專(zhuān)門(mén)為開(kāi)發(fā)人員而設(shè)計(jì),是一個(gè)功能強(qiáng)大、結(jié)構(gòu)緊湊的專(zhuān)業(yè)化PL/SQL開(kāi)發(fā)環(huán)境。Toad 主要具有如下特點(diǎn):模式瀏覽:模式瀏覽功能可以讓我們快速訪問(wèn)數(shù)據(jù)字典,瀏覽數(shù)據(jù)庫(kù)中的表、索引、存儲(chǔ)過(guò)程。Toad 提供對(duì)數(shù)據(jù)庫(kù)的快速訪問(wèn),使用極為方便,用戶(hù)界面簡(jiǎn)潔,結(jié)構(gòu)安

3、排合理。當(dāng)我們點(diǎn)擊一個(gè)單獨(dú)的數(shù)據(jù)庫(kù)對(duì)象,Toad立即顯示此對(duì)象的詳細(xì)信息。例如,當(dāng)我們點(diǎn)一個(gè)數(shù)據(jù)庫(kù)的表,所有和此表相關(guān)的索引、約束、存儲(chǔ)過(guò)程、SQL語(yǔ)句以及和其他表的相互引用關(guān)系都在同一界面顯示出來(lái)。為了簡(jiǎn)化操作,用戶(hù)可以在瀏覽窗口操作數(shù)據(jù)庫(kù)對(duì)象。SQL 編輯器:SQL 編輯器的主要功能是編輯、運(yùn)行和調(diào)整SQL語(yǔ)句。TOAD 的高級(jí)編輯窗口包括眾多的特性來(lái)提高開(kāi)發(fā)人員編寫(xiě)SQL語(yǔ)句的產(chǎn)品化程度。例如,簡(jiǎn)單地生成代碼模板,在編寫(xiě)SQL前自動(dòng)發(fā)現(xiàn)包的內(nèi)容和列的名字等等。SQL編輯器包括一個(gè)編輯窗口和運(yùn)行結(jié)果窗口,允許開(kāi)發(fā)人員在編輯的過(guò)程中測(cè)試運(yùn)行結(jié)果。SQL編輯器中不僅包括標(biāo)準(zhǔn)的編輯命令,也包括一

4、些增強(qiáng)的功能,如快速查詢(xún)表中的字段、將SQL語(yǔ)句的內(nèi)容格式化等等。這個(gè)窗口可以處理大到4GB 的內(nèi)容,對(duì)大的開(kāi)發(fā)項(xiàng)目來(lái)說(shuō)非常有用。便捷的書(shū)簽可以讓開(kāi)發(fā)人員非常容易地找到相關(guān)位置。在運(yùn)行結(jié)果窗口可提供用戶(hù)定義的配置功能,支持LONG 和LONG RAW列,可以將數(shù)據(jù)卸出到磁盤(pán)、打印數(shù)據(jù)、編輯數(shù)據(jù)等等。存儲(chǔ)過(guò)程編輯器: 存儲(chǔ)過(guò)程編輯器的主要功能是編輯、編譯、測(cè)試、調(diào)試存儲(chǔ)過(guò)程和觸發(fā)器。TOAD提供語(yǔ)法標(biāo)識(shí)、錯(cuò)誤標(biāo)識(shí)和其他很多易于使用的功能,如在彈出窗口顯示表名、列名和Oracle函數(shù)。和其他的 PL/SQL 編輯工具不同,TOAD 允許在一個(gè)文件中操作多個(gè)數(shù)據(jù)庫(kù)對(duì)象,可以編譯一個(gè)對(duì)象、編譯多個(gè)對(duì)象

5、、編譯到當(dāng)前光標(biāo)、從光標(biāo)開(kāi)始編譯。在運(yùn)行出現(xiàn)錯(cuò)誤時(shí),存儲(chǔ)過(guò)程停止到有問(wèn)題的語(yǔ)句。用戶(hù)可以使用快捷方式或模板來(lái)快速編寫(xiě)PL/SQL,也可以根據(jù)需要生成自己的模板。使用Toad可以非常方便地進(jìn)行編輯工作,可如設(shè)置書(shū)簽、取消注釋、格式化SQL語(yǔ)句等等。PL/SQL Debugger選項(xiàng):Toad 提供簡(jiǎn)單易用的PL/SQL 調(diào)試功能,可以節(jié)省開(kāi)發(fā)人員在大型項(xiàng)目中用于開(kāi)發(fā)和測(cè)試的寶貴時(shí)間,提高應(yīng)用開(kāi)發(fā)的質(zhì)量。在存儲(chǔ)過(guò)程開(kāi)發(fā)的過(guò)程中,Toad可以逐行編輯、調(diào)試和運(yùn)行代碼。運(yùn)行時(shí)可以根據(jù)需要輸入?yún)?shù),觀察相關(guān)參數(shù)的變化來(lái)檢查存儲(chǔ)過(guò)程的正確性。在調(diào)式過(guò)程中,Toad 可以通過(guò)窗口顯示所有的斷點(diǎn)、參數(shù), 調(diào)用

6、堆棧和輸出參數(shù)。使用Toad,非常容易檢測(cè)到存儲(chǔ)過(guò)程的錯(cuò)誤,開(kāi)發(fā)人員可以一步一步運(yùn)行PL/SQL語(yǔ)句來(lái)識(shí)別問(wèn)題。調(diào)試會(huì)話可以和其他程序會(huì)話同時(shí)進(jìn)行。SQLab Xpert Option:幫助開(kāi)發(fā)人員優(yōu)化SQL,為他們提供各種優(yōu)化模式下SQL執(zhí)行計(jì)劃,并且能夠給出優(yōu)化的建議,能夠比較各種模式下實(shí)際的SQL運(yùn)行結(jié)果,幫助開(kāi)發(fā)人員真正高速地開(kāi)發(fā)高效地代碼。Toad還可以外掛一些別的產(chǎn)品,比如PL/Formatter, RevealNet Knowledge Base , SQL Impact等,這些都能夠和Toad緊密集成,共同提供了一個(gè)完美的集成開(kāi)發(fā)環(huán)境。新版本還新增加了DBA模塊,更加拓廣了To

7、ad這個(gè)產(chǎn)品的適用范圍。二、系統(tǒng)要求:客戶(hù)端:ü Windows 95 / 98 / NT/2000中英文均可ü 完整安裝的SQL*Net 2.0或者Net8ü 磁盤(pán):一般安裝需要20M左右的空間,根據(jù)所選擇模塊的不同和安裝方式的不同,最少也要5M的磁盤(pán)空間(從網(wǎng)絡(luò)服務(wù)器讀取)ü 內(nèi)存:Windows 9x/Me:16M 內(nèi)存;Windows NT/2000: Min 32Mü Tuning模塊需要額外的25M空間服務(wù)器端:ü Oracle 7.3 或者更高,在任何硬件平臺(tái)上。ü 需要一個(gè)DBA用戶(hù)帳號(hào)三安裝:1 三種安裝方

8、式的選擇:a) TOAD and Personal Configuration Files to PC默認(rèn)安裝選擇,完成一個(gè)完整的Client端的安裝,把所有需要的文件拷貝到本地Toad目錄。絕大多數(shù)用戶(hù)應(yīng)該選擇使用這個(gè)安裝方式。b) Personal Config Files to PC, read TOAD from Network Server從網(wǎng)絡(luò)服務(wù)器讀取Toad程序,在本地計(jì)算機(jī)安裝一些自定義的文件,并且創(chuàng)建到服務(wù)器文件的快捷方式,一般不推薦使用這個(gè)方式,而且要求網(wǎng)絡(luò)服務(wù)器已經(jīng)配置。c) TOAD to Network Server把Toad安裝到網(wǎng)絡(luò)服務(wù)器上,以便這樣別的用戶(hù)能夠

9、進(jìn)行Personal Config Files to PC, read TOAD from Network Server這種方式的安裝。2 根據(jù)需要使用到的特性,需要運(yùn)行一些腳本(都在Toadtemps目錄下)ü 如果需要用Toad來(lái)查看執(zhí)行計(jì)劃,必須運(yùn)行腳本PrepToad.sql或者notoad.sqln 如果希望專(zhuān)門(mén)建立一個(gè)Toad 用戶(hù)來(lái)存放Toad需要使用的對(duì)象的話,就運(yùn)行preptoad.sql。n 如果希望在當(dāng)前連接用戶(hù)模式下建立toad需要使用的對(duì)象的話,就運(yùn)行notoad.sql。n 注意,如果是選擇了專(zhuān)門(mén)建立toad這個(gè)用戶(hù)的話,需要先修改一下腳本,指定用戶(hù)的默認(rèn)

10、表空間和臨時(shí)表空間。ü 需要使用Oracle8i 的Profile analyzer,必須運(yùn)行ToadProfiler.sqlü 需要加強(qiáng)Toad的安全性,必須運(yùn)行ToadSecurity.sql四、Toad使用快速入門(mén)1 Schema Browser:Schema browser是Toad的極為有特色的模塊。在schema browser的幫助下,可以方便的瀏覽數(shù)據(jù)庫(kù)內(nèi)部的各類(lèi)數(shù)據(jù)庫(kù)對(duì)象,比如表,索引,序列,存儲(chǔ)過(guò)程等,而且可以方便的倒出DDL語(yǔ)句和進(jìn)行各種修改,重建工作。定位到某一類(lèi)對(duì)象上,這列對(duì)象允許的操作都會(huì)自動(dòng)列出來(lái)。特色:l 支持Oracle數(shù)據(jù)庫(kù)里面所有對(duì)象的

11、新建、查看、修改,集成了幾乎對(duì)所有數(shù)據(jù)庫(kù)對(duì)象的管理所需要的功能。l 按照 模式->對(duì)象類(lèi)別 ->對(duì)象->對(duì)象可操作屬性 -> 對(duì)象本身的詳細(xì)信息和對(duì)象相關(guān)的信息 來(lái)組織,非常有條理,容易定位對(duì)象,也能夠看到所有你需要的對(duì)象的相關(guān)信息。l 對(duì)于表:i. 完備的建表向?qū)?,不用輸入冗長(zhǎng)的語(yǔ)法,更加全面地替你考慮。ii. 可以修改表的各種邏輯和物理屬性,修改列的屬性,增加列,刪除列(在Oracle8i里面),修改表的物理存儲(chǔ)屬性,Truncate,Drop等。iii. 可以生成建表的完整的DDl語(yǔ)句,包括存儲(chǔ)信息,權(quán)限信息,約束,索引和觸發(fā)器等,而這些手工很難做到。iv. 可以

12、方便的對(duì)表進(jìn)行分析,查看表地所有信息,可以有條件的倒出表里面的數(shù)據(jù),并且保存為sql語(yǔ)句。v. 可以方便的對(duì)表進(jìn)行重組,可以完成exp/imp作不到的事情,而且更少地人工參與,更加安全。l 對(duì)于視圖,存儲(chǔ)過(guò)程:i. 可以保存建立視圖、存儲(chǔ)過(guò)程的語(yǔ)句為文本,ii. 重新編譯失效的視圖,存儲(chǔ)過(guò)程,修改視圖的定義語(yǔ)句等。方便的查看存儲(chǔ)過(guò)程的代碼,相互依賴(lài)關(guān)系,權(quán)限信息等保存為文本等。l 回滾段,i. 簡(jiǎn)潔明了的online,offline狀態(tài),方便地online/offline操作ii. 詳細(xì)的回滾段物理信息和當(dāng)前狀態(tài)。iii. 可以方便的修改物理存儲(chǔ)屬性l 表空間: i. Tablespace M

13、ap;直觀的顯示數(shù)據(jù)物理的在表空間上的分布ii. 直觀的查看各個(gè)表空間的利用率、剩余空間、破碎情況等信息iii. 可以進(jìn)行各種alter操作:online, offline, 增加數(shù)據(jù)文件,改變數(shù)據(jù)文件大小,改變物理存儲(chǔ)屬性等l 對(duì)其他數(shù)據(jù)庫(kù)對(duì)象也有完備的操作支持。2 SQL Editor:a) 激活SQL Editor的三種方式:i. 連接到數(shù)據(jù)庫(kù)之后,Toad自動(dòng)打開(kāi)SQL Editor這個(gè)窗口。ii. 點(diǎn)擊總工具欄上最左邊的那個(gè)按鈕iii. 從菜單欄:Database -> SQL Editorb) 特點(diǎn):l 允許同時(shí)打開(kāi)多個(gè)編輯窗口,同時(shí)編輯多個(gè)SQL語(yǔ)句l 支持同時(shí)連接到多個(gè)數(shù)

14、據(jù)庫(kù),同時(shí)對(duì)多個(gè)數(shù)據(jù)庫(kù)進(jìn)行操作l 允許編輯SQL,PLSQL,JAVA,HTML和文本l 使用書(shū)簽功能,可以在大量SQL語(yǔ)句里,快速定位某個(gè)語(yǔ)句所在位置l SQL Editor本身具有強(qiáng)大的編輯功能,非常方便編輯SQL語(yǔ)句。l 強(qiáng)大的快捷鍵支持和工具欄快速按鈕的支持,更加高效編寫(xiě)(很多快捷鍵可以自己定義,在View ->options ->SQL Editor里面)l 能夠根據(jù)前面的條件,智能推測(cè)需要輸入的代碼,可以做到某種程度的代碼智能填充l 把鼠標(biāo)定位到表/視圖/存儲(chǔ)過(guò)程名稱(chēng)之上,按F4,可以打開(kāi)對(duì)象描述窗口,方便的查看表和視圖的定義,存儲(chǔ)過(guò)程的源代碼,l 非常容易對(duì)SQL語(yǔ)句

15、的分析其執(zhí)行計(jì)劃:?jiǎn)螕艄ぞ邫谏系陌粹o就可以看到Explain Plan的結(jié)果l 支持部分SQL*Plus命令,可以方便的執(zhí)行大量的為SQL*Plus編寫(xiě)的數(shù)據(jù)庫(kù)腳本l 可以通過(guò)SQLab xpert來(lái)對(duì)當(dāng)前SQL語(yǔ)句進(jìn)行全面的分析,給出各種合理的調(diào)優(yōu)意見(jiàn),只需要單擊工具欄上的Tuning按鈕:l 可以方便的保存,打開(kāi)和運(yùn)行SQL腳本l 支持對(duì)查詢(xún)結(jié)果進(jìn)行修改,l 可以把查詢(xún)結(jié)果以多種格式保存起來(lái),可以保存為HTML,純文本,XLS等多種格式l 很容易的得到SQL函數(shù)的列表和用法描述(Show SQL help Window 按鈕)l 可以查看SQL語(yǔ)句的執(zhí)行情況:通過(guò)下方的AutoTrace窗

16、口,看到SQL語(yǔ)句的實(shí)際執(zhí)行結(jié)果和執(zhí)行效率。l 支持歷史SQL(F8) :可以方便的查詢(xún)以前執(zhí)行過(guò)的SQL,不用反復(fù)重新輸入。l 可以執(zhí)行匿名塊,存儲(chǔ)過(guò)程,從下方的窗口看到DBMS_OUTPUT的結(jié)果,如:過(guò)程:begintest(1);end;3 Stored Procedure Editora) 打開(kāi)存儲(chǔ)過(guò)程編寫(xiě)器的幾個(gè)途徑:l 單擊總菜單欄上的第三個(gè)按鈕: l 點(diǎn)擊Database - > Procedure Editor ,l 可以通過(guò)Schema browser來(lái)調(diào)用b) 一些特點(diǎn)和優(yōu)點(diǎn):1 強(qiáng)大的自定義設(shè)置:從保留字的顯示方式,到自動(dòng)替換,到各種快捷鍵的定義等等,用得越熟越順

17、手。2 自動(dòng)用不同顏色顯示SQL和PL/SQL關(guān)鍵字,語(yǔ)法清晰明了,可根據(jù)自己的習(xí)慣來(lái)具體定制各類(lèi)關(guān)鍵字的具體顯示方式。3 可以自定義存儲(chǔ)過(guò)程得模板,在新建存儲(chǔ)過(guò)程的時(shí)候,自動(dòng)生成程序的框架4 可以方便的調(diào)用Schema Browser,把鼠標(biāo)定位于某個(gè)對(duì)象上,F(xiàn)4,Schema Browser打開(kāi)該對(duì)象的詳細(xì)描述,幫助順利快速開(kāi)發(fā)程序。5 支持代碼自動(dòng)更正,如輸入ndf,自動(dòng)替換成NO_DATA_FOUND,輸入the自動(dòng)替換成the,類(lèi)似的自動(dòng)替換還可以自己修改和添加。6 方便的左邊行號(hào)顯示,單擊左邊行號(hào)就可以實(shí)現(xiàn)調(diào)試斷點(diǎn)的增加/刪除7 對(duì)各種快捷鍵的支持,不但包括常見(jiàn)的編輯操作,還可以有

18、自己定義的PLSQL塊的支持(自己定義快捷方式)。如可以定義CTRL+SHIFT+D:彈出所有PLSQL Block的類(lèi)型,可以自己選擇。8 可以在一個(gè)集成開(kāi)發(fā)環(huán)境里面,一邊編碼,一邊調(diào)試,不用多處切換9 方便的同時(shí)打開(kāi)多個(gè)存儲(chǔ)過(guò)程,通過(guò)頁(yè)面快速切換10 快速編譯存儲(chǔ)過(guò)程,快速定位錯(cuò)誤所在,自己選擇是否同時(shí)編譯依賴(lài)的存儲(chǔ)過(guò)程11 內(nèi)置對(duì)PL/Formatter,可以用PL/Formatter對(duì)存儲(chǔ)過(guò)程進(jìn)行格式化,并且可以提供存儲(chǔ)過(guò)程的概要分析和修改建議PL/Formatter可以對(duì)現(xiàn)有的存儲(chǔ)過(guò)程進(jìn)行高速的格式化,使所有的存儲(chǔ)過(guò)程都符合同樣的編寫(xiě)標(biāo)準(zhǔn),這樣既有利于提高程序的可讀性,避免不同人寫(xiě)的

19、模塊的風(fēng)格上的很差異。PL/Formatter 還有助于提高程序的模塊化,增強(qiáng)程序的結(jié)構(gòu)清晰度,增強(qiáng)SQL的共用性。PL/Formatter 還可以幫助完成PL/SQL和Oracle版本之間的管理。格式化后:IF i_table_name = 'ADDR' THEN SELECT addr_id_seq.NEXTVAL INTO o_max_id FROM DUAL; RETURN; ELSIF i_table_name = 'CUST' THEN SELECT cust_id_seq.NEXTVAL INTO o_max_id FROM DUAL; RETUR

20、N; ELSIF i_table_name = 'ACCT_NBR' THEN SELECT acct_nbr_seq.NEXTVAL INTO o_max_id FROM DUAL;RETURN;Hfdsjal 格式化前:IF I_TABLE_NAME = 'ADDR' THEN SELECT addr_id_seq.nextval INTO o_max_id FROM DUAL; RETURN; elsif I_TABLE_NAME= 'CUST' then SELECT cust_id_seq.nextval INTO o_max_id F

21、ROM DUAL; RETURN; elsif I_TABLE_NAME = 'ACCT_NBR' then SELECT acct_nbr_seq.nextval INTO o_max_id FROM DUAL;RETURN;12 內(nèi)置RevealNet Knowledge Base,單擊鼠標(biāo)右鍵就可以打開(kāi),快速得到技術(shù)上的支持,解決技術(shù)難題nPL/SQL:n包含整個(gè)開(kāi)發(fā)過(guò)程中可能遇到問(wèn)題的答案nCode Library:大量的嚴(yán)謹(jǐn)?shù)腜L/SQL代碼例子和現(xiàn)成過(guò)程,完全源代碼提供n各種錯(cuò)誤處理模塊可供參考,各類(lèi)字符日期函數(shù)n包含1400多個(gè)主題nAdmin:n解答DBA日常工

22、作中80%的常見(jiàn)問(wèn)題,覆蓋2400多個(gè)主題n從網(wǎng)絡(luò)到性能優(yōu)化,從備份恢復(fù)到Error message,一應(yīng)俱全可能的解決方案,以及詳細(xì)的解釋?zhuān)?DBMS_DDL.ALTER_COMPILE DBMS_UTILITY.COMPILE_SCHEMA 編譯失效對(duì)象的腳本 報(bào)告哪些對(duì)象已經(jīng)失效,需要編譯 給出編譯的腳本例子:遇到失效的存儲(chǔ)過(guò)程怎么辦?4. 如何對(duì)存儲(chǔ)過(guò)程進(jìn)行Debug?u 需要Toad單獨(dú)的Debug Option(Standard Version 沒(méi)有這個(gè)選項(xiàng))u 要用Toad對(duì)存儲(chǔ)過(guò)程進(jìn)行debug,必須安裝Oracle的系統(tǒng)包:dbms_debug,而且必須安裝Oracle Pr

23、obe API v2.0 或者更高的版本。u 集成在Stored Precedure Editor里面,可以一邊編寫(xiě)一邊調(diào)試,大大提高開(kāi)發(fā)效率u 打開(kāi)Procedure Editor后,Debug菜單激活,可以開(kāi)始進(jìn)行Debug工作。u 允許對(duì)存儲(chǔ)過(guò)程進(jìn)行逐行調(diào)試、斷點(diǎn)調(diào)試,也支持對(duì)觸發(fā)器進(jìn)行調(diào)試。u 可以有斷點(diǎn)支持,支持Watch變量,允許運(yùn)行時(shí)改變變量的值u 允許對(duì)多層調(diào)用的Debug支持調(diào)試步驟具體舉例:1 點(diǎn)擊菜單欄的第三個(gè)按鈕:,打開(kāi)Procedure Editor2 點(diǎn)擊Procedure Editor的菜單欄的按鈕,調(diào)出需要調(diào)試的存儲(chǔ)過(guò)程3 單擊工具欄上的按鈕,輸入需要傳入的參數(shù)

24、,如果不需要傳入?yún)?shù),可以直接單擊工具欄上的按鈕:,直接開(kāi)始調(diào)試,如下圖輸入傳入?yún)?shù):4 單擊菜單欄的按鈕:,可以單步跟蹤,也可以定義一個(gè)斷點(diǎn),直接運(yùn)行到斷點(diǎn)在單步執(zhí)行,在存儲(chǔ)過(guò)程運(yùn)行的過(guò)程中,當(dāng)前語(yǔ)句會(huì)高亮度顯示,并且把鼠標(biāo)指針定位到變量上,Toad自動(dòng)顯示該變量的當(dāng)前值。5 可以隨時(shí)中止程序的執(zhí)行,只要點(diǎn)Debug ->Halt Execution,或者菜單欄上的按鈕,就可以中止程序的執(zhí)行6 當(dāng)碰到一個(gè)存儲(chǔ)過(guò)程調(diào)用另外一個(gè)存儲(chǔ)過(guò)程的時(shí)候,可以選擇跳過(guò)(Step Over) ,這樣就直接運(yùn)行那個(gè)被調(diào)用的存儲(chǔ)過(guò)程,返回調(diào)用結(jié)果,繼續(xù)這個(gè)存儲(chǔ)過(guò)程的調(diào)試,也可以選擇Trace Into,這樣

25、就打開(kāi)被調(diào)用的存儲(chǔ)過(guò)程,進(jìn)一步深入調(diào)試那個(gè)被調(diào)用的子存儲(chǔ)過(guò)程。如果需要保持Debug信息,在編譯的時(shí)候應(yīng)該選擇Compile Dependencies with Debug Information,就是Procedure Editor工具欄最右邊的那個(gè)按鈕。7 支持對(duì)變量實(shí)時(shí)追蹤:使用Watch:可以在運(yùn)行前,或者運(yùn)行過(guò)程中對(duì)某個(gè)變量進(jìn)行實(shí)時(shí)跟蹤:Add Watch,把鼠標(biāo)定位到該變量上,然后點(diǎn)擊Debug ->Add Watch At Cursor,該變量就會(huì)出現(xiàn)在Debug狀態(tài)窗口上,而且實(shí)時(shí)反應(yīng)該變量的當(dāng)前值。如上圖中的變量v_empname。可以運(yùn)行時(shí)刻修改8 斷點(diǎn)支持:?jiǎn)螕舸鎯?chǔ)

26、過(guò)程需要加斷點(diǎn)的地方的行號(hào),該行顏色變紅,輸入?yún)?shù),單擊執(zhí)行按鈕,可以直接運(yùn)行到斷點(diǎn)處,可以不必逐行追蹤,更加高效率的進(jìn)行調(diào)試。Debug Option還支持條件斷點(diǎn),只有當(dāng)滿(mǎn)足條件的時(shí)候才會(huì)在那個(gè)地方停止,否則就好像不存在這個(gè)斷點(diǎn)一樣繼續(xù)運(yùn)行。Ë 注意DBMS_OUTPUT.PUT_LINE的結(jié)果只有當(dāng)程序執(zhí)行完成以后才會(huì)出現(xiàn),在程序執(zhí)行過(guò)程中是沒(méi)有結(jié)果的。4 如何用SQLab Xpert對(duì)存儲(chǔ)過(guò)程進(jìn)行調(diào)優(yōu)?我們知道,Oralce數(shù)據(jù)庫(kù)的優(yōu)化,最主要的步驟就在于SQL的優(yōu)化。而在沒(méi)有專(zhuān)門(mén)的工具(如Toad)的幫助下,進(jìn)行SQL優(yōu)化是一件非常困難和乏味的事情,并且需要對(duì)Oracle的

27、深入理解和高超的Oracle調(diào)優(yōu)技巧。使用Toad的SQLab Xpert Tuning模塊,可以使我們普通開(kāi)發(fā)人員也能夠非??焖?,精確的對(duì)SQL進(jìn)行專(zhuān)家級(jí)的分析在SQL Editor和Procedure Editor里面,選中需要調(diào)試的SQL語(yǔ)句(SQLab Xpert只能調(diào)試Select,Insert, Update,Delete語(yǔ)句),復(fù)制到SQL Editor里面,然后點(diǎn)擊工具欄上的調(diào)優(yōu)按鈕,Toad會(huì)自動(dòng)打開(kāi)SQLab xpert 窗口,捕獲當(dāng)前的SQL語(yǔ)句,并且把它轉(zhuǎn)化為符合explain plan格式的語(yǔ)句。第一次打開(kāi)Xpert的時(shí)候,Toad會(huì)提示你,需要安裝一些Server端

28、的表、視圖和包等對(duì)象,可以把表存儲(chǔ)到某個(gè)指定的表空間(如Tools)里面??梢院?jiǎn)單的按照提示一步一步做就可以了。如果系統(tǒng)設(shè)定不允許Job的話(Job_queue_process=0),Toad提示有些部件不會(huì)現(xiàn)在安裝,可以忽略。安裝完成以后,可以選擇讓某些非DBA用戶(hù)也可以使用Toad的SQLab Xpert調(diào)優(yōu)功能。安裝完成以后,Toad會(huì)提示你一些關(guān)于優(yōu)化目標(biāo)方面的問(wèn)題,你可以選擇每次優(yōu)化都可以重新設(shè)定,或者一次設(shè)定,以后一直使用這個(gè)設(shè)定。當(dāng)然如果需要,還是可以更改的,在SQLab Option xpert的窗口的Administration和Preference下面重新設(shè)定。例子:下面這

29、個(gè)SQL語(yǔ)句涉及到多表之間的關(guān)聯(lián),有一定的復(fù)雜性,我們可以借助Toad的SQLab Xpert Option來(lái)幫助分析:select . , c.emp_namefrom dep a, manager b,emp cwhere a.dep_no=c.DEP_NOand b.manag_id=c.manag_idand c.emp_no=3我們把這個(gè)SQL復(fù)制到SQL Editor里面,單擊上面的調(diào)優(yōu)按鈕,Toad打開(kāi)SQLab Xpert Option窗口。如下圖:從上面的圖中我們可以方面的看到:在各種優(yōu)化模式下,該SQL語(yǔ)句的執(zhí)行計(jì)劃分別是什么樣的,Toad給出了每一

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

31、動(dòng)優(yōu)化非常高效的對(duì)所有執(zhí)行計(jì)劃進(jìn)行實(shí)際運(yùn)行比較,并且給出實(shí)際執(zhí)行的時(shí)間的對(duì)比,如下圖:我們還可以讓Toad給出實(shí)際的優(yōu)化建議:點(diǎn)擊Original SQL,單擊下面的Advice按鈕,Toad根據(jù)對(duì)SQL的分析和執(zhí)行結(jié)果給出合理的建議:如:1 把表和索引分別放到兩個(gè)不同的表空間,因?yàn)槲覀冊(cè)趧?chuàng)建表,加上約束的時(shí)候沒(méi)有指定USING INDEX子句,所以表和索引都建立在了用戶(hù)的默認(rèn)表空間上了。2 對(duì)表EMP,DEP和MANAGER進(jìn)行分析,收集最新的統(tǒng)計(jì)數(shù)據(jù),有利于CBO得到最優(yōu)的執(zhí)行計(jì)劃3 在合適的列上創(chuàng)建索引:EMP的manag_id和dep_no。當(dāng)表中存在大量的數(shù)據(jù)的時(shí)候,這樣可以大大減少

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

33、QL語(yǔ)句,在SQL Modeler里面,還支持對(duì)生成的SQL進(jìn)行Explain Plan,調(diào)試SQL的性能,運(yùn)行SQL,看是否得到了希望的結(jié)果,保存生成的語(yǔ)句,或者把語(yǔ)句粘貼到SQL Editor里面。有了SQL Modeler的幫助,即使是初級(jí)的程序員也能編寫(xiě)出復(fù)雜而又高效的SQL查詢(xún)來(lái)。比如下面的例子;生成步驟:1 選出表emp, dep, manager2 用鼠標(biāo)拖住emp的emp_name和emp_no, dep的name,manager的name3 雙擊criteria窗口的emp_no condition列,彈出窗口,輸入查詢(xún)條件,比如emp_no=34 由于結(jié)果里面不希望emp_

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

35、態(tài)的session數(shù)目,SGA的利用率,共享池的使用狀況,各類(lèi)事件的等待狀況,以及各類(lèi)事件隨著時(shí)間的變化情況b) Instance Monitori. 可以用來(lái)檢查本地tnsnames.ora文件里面定義的所有節(jié)點(diǎn)、Listener和數(shù)據(jù)庫(kù)的運(yùn)行狀態(tài)和版本等相關(guān)信息。ii. 可以遠(yuǎn)程啟動(dòng)、關(guān)閉數(shù)據(jù)庫(kù)(如果設(shè)置了password驗(yàn)證方式)c) Unix Monitor:i. 可以監(jiān)控Unix機(jī)器的運(yùn)行狀況比如詳細(xì)的機(jī)器啟動(dòng)時(shí)間,CPU利用率,主要的進(jìn)程以及這些進(jìn)程占用的資源,主要的磁盤(pán)IO等。d) Trace/Kill sessioni. 方便的查看所有的連接用戶(hù)相關(guān)信息:比如終端,程序,連接時(shí)

36、間等ii. 對(duì)某個(gè)用戶(hù)進(jìn)行跟蹤,查看用戶(hù)執(zhí)行的SQL語(yǔ)句,查看語(yǔ)句的執(zhí)行計(jì)劃,iii. 方便的查閱系統(tǒng)的Lock對(duì)象,有沒(méi)有什么等待別的事務(wù)釋放鎖的情況,并能夠輕易查出等待什么用戶(hù)的什么事件結(jié)束,那個(gè)用戶(hù)執(zhí)行的是什么SQL。iv. 查看回滾段的使用狀態(tài),什么用戶(hù),什么語(yǔ)句,使用的什么回滾段,多少讀寫(xiě)量等e) Oracle Parameteri. 可以方便的查看Oracle系統(tǒng)的參數(shù):是否默認(rèn)值,參數(shù)作用的簡(jiǎn)要描述,是否可以用alter session/alter system來(lái)動(dòng)態(tài)改變,對(duì)于那些可以動(dòng)態(tài)改變的參數(shù),可以雙擊鼠標(biāo)來(lái)進(jìn)行修改f) NLS_PARAMETER:i. 方便的查看sess

37、ion,instance,database一級(jí)的NLS參數(shù)值,ii. 可以動(dòng)態(tài)修改session的NLS參數(shù)值g) Extentsi. 可以查看某個(gè)用戶(hù)下的表和索引的詳細(xì)的存儲(chǔ)情況,ii. 發(fā)現(xiàn)那些占用大量空間的表和索引,可以考慮使用相應(yīng)的對(duì)策,比如分區(qū)iii. 發(fā)現(xiàn)那些即將達(dá)到max_extents的表和索引并可以及時(shí)糾正iv. 發(fā)現(xiàn)那些索引和表處于同一個(gè)表空間的情況,并可以及時(shí)糾正。h) Tablespacei. 直觀的查看每個(gè)表空間的利用率,總空間,已使用空間,剩余可是用空間以及默認(rèn)存儲(chǔ)參數(shù),和表空間是否需要整理等信息ii. 查看每個(gè)表空間的狀態(tài),組成的數(shù)據(jù)文件, 以及每個(gè)數(shù)據(jù)文件的詳細(xì)

38、信息iii. 查看每個(gè)表空間里面存在的對(duì)象和這些對(duì)象的詳細(xì)存儲(chǔ)特性i) Tablespace Map:i. 圖形化的顯示表空間里面各個(gè)表/索引所占用的空間,各個(gè)segment的大小,segment是否連續(xù)等信息,非常直觀j) Server Statistics:i. 可以非常直觀的看到系統(tǒng)總體運(yùn)行情況,迅速定位系統(tǒng)瓶頸所在ii. 可以查看系統(tǒng)范圍內(nèi)各類(lèi)等待事件的狀況,查看每個(gè)連接會(huì)話的狀況,k) Pinned Code:i. 我們知道,頻繁執(zhí)行的大的存儲(chǔ)過(guò)程最好Pin起來(lái),這樣可以避免被Oracle在內(nèi)存不足的情況下?lián)Q出內(nèi)存,避免動(dòng)態(tài)加載,也避免flush shared pool的時(shí)候被清出內(nèi)

39、存。ii. 根據(jù)每個(gè)模塊的大小,執(zhí)行次數(shù),決定是否要把某個(gè)存儲(chǔ)過(guò)程PIN起來(lái)。一個(gè)按鈕就搞定了。l) Control Files:可以查看當(dāng)前系統(tǒng)有哪幾個(gè)控制文件,以及控制文件內(nèi)部記錄的詳細(xì)信息。(實(shí)際上就是V$CONTROLFILE, V$CONTROLFILE_RECORD_SECTION)m) Redo Log Manager:i. 可以方便的查看LOG的組,當(dāng)前日志,每個(gè)組里面的成員名字,大小,方便的增加、刪除log組,切換當(dāng)前日志,對(duì)日志歸檔進(jìn)行具體的控制。ii. 可以在這個(gè)界面里完成幾乎所有的對(duì)redo log的操作。n) Repair chained rows: i. Chain

40、ed rows影響系統(tǒng)性能,處于系統(tǒng)性能的考慮,需要把chained rows修復(fù)成普通的表的行。使用repaie chained rows,就可以比較容易的做到這一點(diǎn)。選擇需要分析的表,然后分析一下,看有沒(méi)有chained rows,如果有,點(diǎn)擊repair,Toad就幫你把那些chained rows給修復(fù)了。o) Identify Space Deficits如果系統(tǒng)出現(xiàn)1659,1653錯(cuò)誤,就是一個(gè)不合格的DBA。但是要即時(shí)預(yù)見(jiàn)這些錯(cuò)誤,還是有一定的難度的。有了Toad的這個(gè)小工具之后,一點(diǎn)某個(gè)表空間,就知道這個(gè)表空間里面的剩余自由空間是否允許任何表能夠擴(kuò)展到下一個(gè)extent。并能夠在發(fā)現(xiàn)問(wèn)題之后,直接改正問(wèn)題。p) Estimate Table/Index Sizei. 數(shù)據(jù)庫(kù)的物理規(guī)劃中,表/索引的存儲(chǔ)子句的定義是非常重要的,影響系統(tǒng)。但是沒(méi)有什么工具的話,要為表定義合理的存儲(chǔ)子句也不容易。ii. 在Toad里面,專(zhuān)門(mén)有工具幫助你合理定義表/索引的存

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論