Toad快速入門
??????????www.InnovateDigital.com 整理
??一、 Toad功能綜述
?????在Oracle 應用程序的開發過程中,訪問數據庫對象和編寫SQL程序是一件乏味且耗費時間的工作,對數據庫進行日常管理也是需要很多SQL腳本才能完成的。Quest Software為此提供了高效的Oracle應用開發工具-Toad(Tools of Oracle Application Developers)。在Toad的新版本中,還加入了DBA模塊,可以幫助DBA完成許多日常管理工作。它最大的特點就是簡單易用,訪問速度快。使用 Toad,我們可以通過一個圖形化的用戶界面快速訪問數據庫,完成復雜的SQL和PL/SQL代碼編輯和測試工作。Toad由Oracle開發專家專門為開發人員而設計,是一個功能強大、結構緊湊的專業化PL/SQL開發環境。
?????Toad 主要具有如下特點:
??模式瀏覽:
?????模式瀏覽功能可以讓我們快速訪問數據字典,瀏覽數據庫中的表、索引、存儲過程。Toad 提供對數據庫的快速訪問,使用極為方便,用戶界面簡潔,結構安排合理。當我們點擊一個單獨的數據庫對象,Toad立即顯示此對象的詳細信息。例如,當我們點一個數據庫的表,所有和此表相關的索引、約束、存儲過程、SQL語句以及和其他表的相互引用關系都在同一界面顯示出來。為了簡化操作,用戶可以在瀏覽窗口操作數據庫對象。
??SQL 編輯器:
?????SQL 編輯器的主要功能是編輯、運行和調整SQL語句。TOAD 的高級編輯窗口包括眾多的特性來提高開發人員編寫SQL語句的產品化程度。例如,簡單地生成代碼模板,在編寫SQL前自動發現包的內容和列的名字等等。
?????SQL 編輯器包括一個編輯窗口和運行結果窗口,允許開發人員在編輯的過程中測試運行結果。SQL編輯器中不僅包括標準的編輯命令,也包括一些增強的功能,如快速查詢表中的字段、將SQL語句的內容格式化等等。這個窗口可以處理大到4GB 的內容,對大的開發項目來說非常有用。便捷的書簽可以讓開發人員非常容易地找到相關位置。在運行結果窗口可提供用戶定義的配置功能,支持LONG 和LONG RAW列,可以將數據卸出到磁盤、打印數據、編輯數據等等。
??存儲過程編輯器:
?????存儲過程編輯器的主要功能是編輯、編譯、測試、調試存儲過程和觸發器。TOAD提供語法標識、錯誤標識和其他很多易于使用的功能,如在彈出窗口顯示表名、列名和Oracle函數。和其他的 PL/SQL 編輯工具不同,TOAD 允許在一個文件中操作多個數據庫對象,可以編譯一個對象、編譯多個對象、編譯到當前光標、從光標開始編譯。在運行出現錯誤時,存儲過程停止到有問題的語句。用戶可以使用快捷方式或模板來快速編寫PL/SQL,也可以根據需要生成自己的模板。使用Toad可以非常方便地進行編輯工作,可如設置書簽、取消注釋、格式化SQL語句等等。
??PL/SQL Debugger選項:
?????Toad 提供簡單易用的PL/SQL 調試功能,可以節省開發人員在大型項目中用于開發和測試的寶貴時間,提高應用開發的質量。在存儲過程開發的過程中,Toad可以逐行編輯、調試和運行代碼。運行時可以根據需要輸入參數,觀察相關參數的變化來檢查存儲過程的正確性。在調式過程中,Toad 可以通過窗口顯示所有的斷點、參數, 調用堆棧和輸出參數。使用Toad,非常容易檢測到存儲過程的錯誤,開發人員可以一步一步運行PL/SQL語句來識別問題。調試會話可以和其他程序會話同時進行。
??SQLab Xpert Option:
?????幫助開發人員優化SQL,為他們提供各種優化模式下SQL執行計劃,并且能夠給出優化的建議,能夠比較各種模式下實際的SQL運行結果,幫助開發人員真正高速地開發高效地代碼。
?????Toad 還可以外掛一些別的產品,比如PL/Formatter, RevealNet Knowledge Base , SQL Impact等,這些都能夠和Toad緊密集成,共同提供了一個完美的集成開發環境。新版本還新增加了DBA模塊,更加拓廣了Toad這個產品的適用范圍。
??二、系統要求:
?????客戶端:
?????服務器端:
??三.安裝:
?????1. 三種安裝方式的選擇:
?????a) TOAD and Personal Configuration Files to PC 默認安裝選擇,完成一個完整的Client端的安裝,把所有需要的文件拷貝到本地Toad目錄。絕大多數用戶應該選擇使用這個安裝方式。
?????b) Personal Config Files to PC, read TOAD from Network Server 從網絡服務器讀取Toad程序,在本地計算機安裝一些自定義的文件,并且創建到服務器文件的快捷方式,一般不推薦使用這個方式,而且要求網絡服務器已經配置。
?????c) TOAD to Network Server
?????把Toad安裝到網絡服務器上,以便這樣別的用戶能夠進行Personal Config Files to PC, read TOAD from Network Server這種方式的安裝。
?????2. 根據需要使用到的特性,需要運行一些腳本(都在Toad\temps目錄下)
??四、Toad使用快速入門
??1. Schema Browser:
?????Schema browser是Toad的極為有特色的模塊。在schema browser的幫助下,可以方便的瀏覽數據庫內部的各類數據庫對象,比如表,索引,序列,存儲過程等,而且可以方便的倒出DDL語句和進行各種修改,重建工作。定位到某一類對象上,這列對象允許的操作都會自動列出來。
?????特色:
??2. SQL Editor:
??3. Stored Procedure Editor
?????調試步驟具體舉例:
?????1. 點擊菜單欄的第三個按鈕: 打開Procedure Editor
?????2. 點擊Procedure Editor的菜單欄的 按鈕,調出需要調試的存儲過程
?????3. 單擊工具欄上的按鈕 ,輸入需要傳入的參數,如果不需要傳入參數,可以直接單擊工具欄上的按鈕: ,直接開始調試,如下圖輸入傳入參數:
?????4. 單擊菜單欄的按鈕: ,可以單步跟蹤,也可以定義一個斷點,直接運行到斷點在單步執行,在存儲過程運行的過程中,當前語句會高亮度顯示,并且把鼠標指針定位到變量上,Toad自動顯示該變量的當前值。
?????5. 可以隨時中止程序的執行,只要點Debug ->Halt Execution,或者菜單欄上的按鈕 ,就可以中止程序的執行
?????6. 當碰到一個存儲過程調用另外一個存儲過程的時候,可以選擇跳過(Step Over) ,這樣就直接運行那個被調用的存儲過程,返回調用結果,繼續這個存儲過程的調試,也可以選擇Trace Into ,這樣就打開被調用的存儲過程,進一步深入調試那個被調用的子存儲過程。如果需要保持Debug信息,在編譯的時候應該選擇Compile Dependencies with Debug Information,就是Procedure Editor工具欄最右邊的那個按鈕 。
?????7. 支持對變量實時追蹤:使用Watch:可以在運行前,或者運行過程中對某個變量進行實時跟蹤:Add Watch,把鼠標定位到該變量上,然后點擊Debug ->Add Watch At Cursor,該變量就會出現在Debug狀態窗口上,而且實時反應該變量的當前值。如上圖中的變量v_empname。可以運行時刻修改
?????8. 斷點支持:單擊存儲過程需要加斷點的地方的行號,該行顏色變紅,輸入參數,單擊執行按鈕 ,可以直接運行到斷點處,可以不必逐行追蹤,更加高效率的進行調試。
?????Debug Option還支持條件斷點,只有當滿足條件的時候才會在那個地方停止,否則就好像不存在這個斷點一樣繼續運行。
?????注意DBMS_OUTPUT.PUT_LINE的結果只有當程序執行完成以后才會出現,在程序執行過程中是沒有結果的。
??4. SQLab Xpert
?????我們知道,Oralce數據庫的優化,最主要的步驟就在于SQL的優化。而在沒有專門的工具(如Toad)的幫助下,進行SQL優化是一件非常困難和乏味的事情,并且需要對Oracle的深入理解和高超的Oracle調優技巧。使用Toad的SQLab Xpert Tuning模塊,可以使我們普通開發人員也能夠非常快速,精確的對SQL進行專家級的分析
?????在SQL Editor和Procedure Editor里面,選中需要調試的SQL語句(SQLab Xpert只能調試Select,Insert, Update,Delete語句),復制到SQL Editor里面,然后點擊工具欄上的調優按鈕 ,Toad會自動打開SQLab xpert 窗口,捕獲當前的SQL語句,并且把它轉化為符合explain plan格式的語句。
?????第一次打開Xpert的時候,Toad會提示你,需要安裝一些Server端的表、視圖和包等對象,可以把表存儲到某個指定的表空間(如Tools)里面。可以簡單的按照提示一步一步做就可以了。如果系統設定不允許Job的話(Job_queue_process=0),Toad提示有些部件不會現在安裝,可以忽略。安裝完成以后,可以選擇讓某些非DBA用戶也可以使用Toad的SQLab Xpert調優功能。
?????安裝完成以后,Toad會提示你一些關于優化目標方面的問題,你可以選擇每次優化都可以重新設定,或者一次設定,以后一直使用這個設定。當然如果需要,還是可以更改的,在SQLab Option xpert的窗口的Administration和Preference下面重新設定。
?????例子:
?????下面這個SQL語句涉及到多表之間的關聯,有一定的復雜性,我們可以借助Toad的SQLab Xpert Option來幫助分析:
?????select a.name. b.name, c.emp_name from 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復制到SQL Editor里面,單擊上面的調優按鈕,Toad打開SQLab Xpert Option窗口。
?????從上面的圖中我們可以方面的看到:在各種優化模式下,該SQL語句的執行計劃分別是什么樣的,Toad給出了每一種執行計劃的具體每一個步驟,每個步驟的成本,該表涉及的相關的數據等,如果SQL存取的表還沒有經過分析,Toad會以紅色警告顯示,并且很方便的幫助你對該表進行分析,收集統計數據,重建索引等,以有助于優化器作出最好的選擇。可以把當前的分析結果保存到它的資料庫里邊,以備以后再次調用之需。
?????我們還可以求助與SQLab 的自動優化功能:點擊Original SQL下面的auto tune按鈕,Toad會對執行結果按照tkprof進行分析(當然,這需要你在initsid.ora里面設置好utl_file_dir,如果服務器是在Unix機器上的話,還需要通過FTP方式得到Trace文件,有一些小小的設置)。
?????自動優化非常高效的對所有執行計劃進行實際運行比較,并且給出實際執行的時間的對比,如下圖:
????? 我們還可以讓Toad給出實際的優化建議:點擊Original SQL,單擊下面的Advice按鈕,Toad根據對SQL的分析和執行結果給出合理的建議:
?????1. 把表和索引分別放到兩個不同的表空間,因為我們在創建表,加上約束的時候沒有指定USING INDEX子句,所以表和索引都建立在了用戶的默認表空間上了。
?????2. 對表EMP,DEP和MANAGER進行分析,收集最新的統計數據,有利于CBO得到最優的執行計劃
?????3. 在合適的列上創建索引:EMP的manag_id和dep_no。當表中存在大量的數據的時候,這樣可以大大減少由于全表掃描帶來的成本。
??5. SQL Modeler:
?????SQL Modeler可以幫助開發人員很容易的寫出各種復雜的SQL語句,只需通過簡單的拖動鼠標,就能夠寫出復雜的SQL語句來。
?????打開SQL Modeler的幾個途徑:
?????窗口由三個主要部分組成: ?????在SQL Modeler里面,還支持對生成的SQL進行Explain Plan,調試SQL的性能,運行SQL,看是否得到了希望的結果,保存生成的語句,或者把語句粘貼到SQL Editor里面。 ?????有了SQL Modeler的幫助,即使是初級的程序員也能編寫出復雜而又高效的SQL查詢來。比如下面的例子 ?????生成步驟: ?????1. 選出表emp, dep, manager ?????2. 用鼠標拖住emp的emp_name和emp_no, dep的name,manager的name ?????3. 雙擊criteria窗口的emp_no condition列,彈出窗口,輸入查詢條件,比如emp_no=3 ?????4. 由于結果里面不希望emp_no出現,雙擊emp_no列的visible,設置為false ?????5. 這樣就出來了需要的查詢,現在可以運行查詢得到結果,對查詢SQL進行分析,或者在SQL Editor里面打開這個SQL,或者保存為SQL Model文件,或者再進一步處理,比如加排序, 匯總等。 ?????DBA方面的功能: ?????Toad在DBA日常管理方面的能力是非常強大的,可以幫助DBA安全快速地完成許多日常工作,還有Toad特有的一些小工具能完成一些普通方法很難做到的功能。下面大概講述了各個常用模塊的主要功能: ?????a) Database Monitor ?????提供直觀的Oracle數據庫運行狀況,包括下面這些詳細信息:可以看到邏輯IO,物理IO,各個狀態的session數目,SGA的利用率,共享池的使用狀況,各類事件的等待狀況,以及各類事件隨著時間的變化情況 ?????b) Instance Monitor ?????c) Unix Monitor: ?????d) Trace/Kill session ?????e) Oracle Parameter ?????f) NLS_PARAMETER: ?????g) Extents ?????h) Tablespace ?????i) Tablespace Map: ?????j) Server Statistics: ?????k) Pinned Code: ?????l) Control Files: ?????可以查看當前系統有哪幾個控制文件,以及控制文件內部記錄的詳細信息。(實際上就是V$CONTROLFILE, V$CONTROLFILE_RECORD_SECTION) ?????m) Redo Log Manager: ?????n) Repair chained rows: ?????o) Identify Space Deficits ?????如果系統出現1659,1653錯誤,就是一個不合格的DBA。但是要即時預見這些錯誤,還是有一定的難度的。有了Toad的這個小工具之后,一點某個表空間,就知道這個表空間里面的剩余自由空間是否允許任何表能夠擴展到下一個extent。并能夠在發現問題之后,直接改正問題。 ?????p) Estimate Table/Index Size ?????1. 自己可以定義將來表中需要存儲的數據的數目 ?????2. 多種估計方式: ?????q) Analyze All Tables ?????r) Rebuild Table ?????s) Relocate Index ?????t) Generate Schema Scripts: ?????u) Compare Schema:


文章來源:http://21958978.spaces.live.com/Blog/cns!A7DF246804AD47BB!210.entry