Toad教程(用法)

shwenwen發表於2007-09-27

[@more@]一、 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這個產品的適用範圍。

二、系統要求:

客戶端:

* Windows 95 / 98 / NT/2000中英文均可
* 完整安裝的SQL*Net 2.0或者Net8
* 磁碟:一般安裝需要20M左右的空間,根據所選擇模組的不同和安裝方式的不同,最少也要5M的磁碟空間(從網路伺服器讀取)
* 記憶體:Windows 9x/Me:16M 記憶體;Windows NT/2000: Min 32M]
* Tuning模組需要額外的25M空間

伺服器端:

* Oracle 7.3 或者更高,在任何硬體平臺上。
* 需要一個DBA使用者帳號

三.安裝:

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 emps目錄下)

* 如果需要用Toad來檢視執行計劃,必須執行指令碼PrepToad.sql或者notoad.sql
* 如果希望專門建立一個Toad 使用者來存放Toad需要使用的物件的話,就執行preptoad.sql。
* 如果希望在當前連線使用者模式下建立toad需要使用的物件的話,就執行notoad.sql。
* 注意,如果是選擇了專門建立toad這個使用者的話,需要先修改一下指令碼,指定使用者的預設表空間和臨時表空間。
* 需要使用Oracle8i 的Profile analyzer,必須執行ToadProfiler.sql
* 需要加強Toad的安全性,必須執行ToadSecurity.sql

四、Toad使用快速入門

1. Schema Browser:

Schema browser是Toad的極為有特色的模組。在schema browser的幫助下,可以方便的瀏覽資料庫內部的各類資料庫物件,比如表,索引,序列,儲存過程等,而且可以方便的倒出DDL語句和進行各種修改,重建工作。定位到某一類物件上,這列物件允許的操作都會自動列出來。

特色:

* 支援Oracle資料庫裡面所有物件的新建、檢視、修改,整合了幾乎對所有資料庫物件的管理所需要的功能。
* 按照 模式->物件類別 ->物件->物件可操作屬性 -> 物件本身的詳細資訊和物件相關的資訊 來組織,非常有條理,容易定位物件,也能夠看到所有你需要的物件的相關資訊。
* 對於表:

o 完備的建表嚮導,不用輸入冗長的語法,更加全面地替你考慮。
o 可以修改表的各種邏輯和物理屬性,修改列的屬性,增加列,刪除列(在Oracle8i裡面),修改表的物理儲存屬性,Truncate,Drop等。
o 可以生成建表的完整的DDl語句,包括儲存資訊,許可權資訊,約束,索引和觸發器等,而這些手工很難做到。
o 可以方便的對錶進行分析,檢視錶地所有資訊,可以有條件的倒出表裡面的資料,並且儲存為sql語句。
o 可以方便的對錶進行重組,可以完成exp/imp作不到的事情,而且更少地人工參與,更加安全。
* 對於檢視,儲存過程:

o 可以儲存建立檢視、儲存過程的語句為文字,
o 重新編譯失效的檢視,儲存過程,修改檢視的定義語句等。方便的檢視儲存過程的程式碼,相互依賴關係,許可權資訊等儲存為文字等。
* 回滾段

o 簡潔明瞭的online,offline狀態,方便地online/offline操作
o 詳細的回滾段物理資訊和當前狀態。
o 可以方便的修改物理儲存屬性
* 表空間:

o Tablespace Map;直觀的顯示資料物理的在表空間上的分佈
o 直觀的檢視各個表空間的利用率、剩餘空間、破碎情況等資訊
o 可以進行各種alter操作:online, offline, 增加資料檔案,改變資料檔案大小,改變物理儲存屬性等
* 對其他資料庫物件也有完備的操作支援。

2. SQL Editor:

* a) 啟用SQL Editor的三種方式:

o 連線到資料庫之後,Toad自動開啟SQL Editor這個視窗
o 點選總工具欄上最左邊的那個按鈕
o 從選單欄:Database -> SQL Editor
* b) 特點:

o 允許同時開啟多個編輯視窗,同時編輯多個SQL語句
o 支援同時連線到多個資料庫,同時對多個資料庫進行操作
o 允許編輯SQL,PLSQL,JAVA,HTML和文字
o 使用書籤功能,可以在大量SQL語句裡,快速定位某個語句所在位置
o SQL Editor本身具有強大的編輯功能,非常方便編輯SQL語句。
o 強大的快捷鍵支援和工具欄快速按鈕的支援,更加高效編寫(很多快捷鍵可以自己定義,在View ->options ->SQL Editor裡面)
o 能夠根據前面的條件,智慧推測需要輸入的程式碼,可以做到某種程度的程式碼智慧填充
o 把滑鼠定位到表/檢視/儲存過程名稱之上,按F4,可以開啟物件描述視窗,方便的檢視錶和檢視的定義,儲存過程的原始碼,
o 非常容易對SQL語句的分析其執行計劃:單擊工具欄上的 按鈕就可以看到Explain Plan的結果
o 支援部分SQL*Plus命令,可以方便的執行大量的為SQL*Plus編寫的資料庫指令碼
o 可以透過SQLab xpert來對當前SQL語句進行全面的分析,給出各種合理的調優意見,只需要單擊工具欄上的Tuning按鈕
o 可以方便的儲存,開啟和執行SQL指令碼
o 支援對查詢結果進行修改
o 可以把查詢結果以多種格式儲存起來,可以儲存為HTML,純文字,XLS等多種格式
o 很容易的得到SQL函式的列表和用法描述(Show SQL help Window 按鈕)
o 可以檢視SQL語句的執行情況:透過下方的AutoTrace視窗 ,看到SQL語句的實際執行結果和執行效率。
o 支援歷史SQL(F8) :可以方便的查詢以前執行過的SQL,不用反覆重新輸入。
o 可以執行匿名塊,儲存過程,從下方的視窗看到DBMS_OUTPUT的結果

3. Stored Procedure Editor

* a) 開啟儲存過程編寫器的幾個途徑:

o 單擊總選單欄上的第三個按鈕
o 點選Database - > Procedure Editor
o 可以透過Schema browser來呼叫
* b) 一些特點和優點:

o 強大的自定義設定:從保留字的顯示方式,到自動替換,到各種快捷鍵的定義等等,用得越熟越順手。
o 自動用不同顏色顯示SQL和PL/SQL關鍵字,語法清晰明瞭,可根據自己的習慣來具體定製各類關鍵字的具體顯示方式。可以自定義儲存過程得模板,在新建儲存過程的時候,自動生成程式的框架可以方便的呼叫Schema Browser,把滑鼠定位於某個物件上,F4,Schema Browser開啟該物件的詳細描述,幫助順利快速開發程式。支援程式碼自動更正,如輸入ndf,自動替換成NO_DATA_FOUND,輸入the自動替換成the,類似的自動替換還可以自己修改和新增。
o 方便的左邊行號顯示,單擊左邊行號就可以實現除錯斷點的增加/刪除
o 對各種快捷鍵的支援,不但包括常見的編輯操作,還可以有自己定義的PLSQL塊的支援(自己定義快捷方式)。如可以定義CTRL+SHIFT+D:彈出所有PLSQL Block的型別,可以自己選擇。
o 可以在一個整合開發環境裡面,一邊編碼,一邊除錯,不用多處切換
o 方便的同時開啟多個儲存過程,透過頁面快速切換
o 快速編譯儲存過程,快速定位錯誤所在,自己選擇是否同時編譯依賴的儲存過程
o 內建對PL/Formatter,可以用PL/Formatter對儲存過程進行格式化,並且可以提供儲存過程的概要分析和修改建議; PL/Formatter可以對現有的儲存過程進行高速的格式化,使所有的儲存過程都符合同樣的編寫標準,這樣既有利於提高程式的可讀性,避免不同人寫的模組的風格上的很差異;PL/Formatter 還有助於提高程式的模組化,增強程式的結構清晰度,增強SQL的共用性;PL/Formatter 還可以幫助完成PL/SQL和Oracle版本之間的管理。
o 內建RevealNet Knowledge Base,單擊滑鼠右鍵就可以開啟,快速得到技術上的支援,解決技術難題

+ PL/SQL
+ 包含整個開發過程中可能遇到問題的答案
+ Code Library:大量的嚴謹的PL/SQL程式碼例子和現成過程,完全原始碼提供
+ 各種錯誤處理模組可供參考,各類字元日期函式
+ 包含1400多個主題
+ Admin
+ 解答DBA日常工作中80%的常見問題,覆蓋2400多個主題
+ 從網路到效能最佳化,從備份恢復到Error message,一應俱全
* 如何用SQLab Xpert對儲存過程進行調優?

o 需要Toad單獨的Debug Option(Standard Version 沒有這個選項)
o 要用Toad對儲存過程進行debug,必須安裝Oracle的系統包:dbms_debug,而且必須安裝Oracle Probe API v2.0 或者更高的版本。
o 整合在Stored Precedure Editor裡面,可以一邊編寫一邊除錯,大大提高開發效率
o 開啟Procedure Editor後,Debug選單啟用,可以開始進行Debug工作。
o 允許對儲存過程進行逐行除錯、斷點除錯,也支援對觸發器進行除錯。
o 可以有斷點支援,支援Watch變數,允許執行時改變變數的值
o 允許對多層呼叫的Debug支援

除錯步驟具體舉例:

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的幾個途徑:

* a) 開啟儲存過程編寫器的幾個途徑:

o 選單欄 Database -> SQL Modeler ,開啟視窗
o 單擊工具欄第四個按鈕 ,開啟SQL Modeler視窗

視窗由三個主要部分組成:

o a) 開啟儲存過程編寫器的幾個途徑:

+ 表選擇區域:最右邊的那個部分,用來選擇From子句中用到的表。拖動到左邊的區域或者雙擊就選擇了該表。
+ 表模型區域:用來圖形化的顯示選擇的表和表之間的關聯關係。
+ 生成SQL區域:這裡顯示用圖形化方式建立的查詢對應的SQL語句

在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

+ 可以用來檢查本地tnsnames.ora檔案裡面定義的所有節點、Listener和資料庫的執行狀態和版本等相關資訊。
+ 可以遠端啟動、關閉資料庫(如果設定了password驗證方式)

o c) Unix Monitor: 可以監控Unix機器的執行狀況比如詳細的機器啟動時間,CPU利用率,主要的程式以及這些程式佔用的資源,主要的磁碟IO等。

d) Trace/Kill session

+ 方便的檢視所有的連線使用者相關資訊:比如終端,程式,連線時間等
+ 對某個使用者進行跟蹤,檢視使用者執行的SQL語句,檢視語句的執行計劃
+ 方便的查閱系統的Lock物件,有沒有什麼等待別的事務釋放鎖的情況,並能夠輕易查出等待什麼使用者的什麼事件結束,那個使用者執行的是什麼SQL。
+ 檢視回滾段的使用狀態,什麼使用者,什麼語句,使用的什麼回滾段,多少讀寫量等

o e) Oracle Parameter 可以方便的檢視Oracle系統的引數:是否預設值,引數作用的簡要描述,是否可以用alter session/alter system來動態改變,對於那些可以動態改變的引數,可以雙擊滑鼠來進行修改

f) NLS_PARAMETER:

+ 方便的檢視session,instance,database一級的NLS引數值
+ 可以動態修改session的NLS引數值

g) Extents

+ 可以檢視某個使用者下的表和索引的詳細的儲存情況
+ 發現那些佔用大量空間的表和索引,可以考慮使用相應的對策,比如分割槽
+ 發現那些即將達到max_extents的表和索引並可以及時糾正
+ 發現那些索引和表處於同一個表空間的情況,並可以及時糾正。

h) Tablespace

+ 直觀的檢視每個表空間的利用率,總空間,已使用空間,剩餘可是用空間以及預設儲存引數,和表空間是否需要整理等資訊
+ 檢視每個表空間的狀態,組成的資料檔案, 以及每個資料檔案的詳細資訊
+ 檢視每個表空間裡面存在的物件和這些物件的詳細儲存特性

o i) Tablespace Map: 圖形化的顯示錶空間裡面各個表/索引所佔用的空間,各個segment的大小,segment是否連續等資訊,非常直觀

j) Server Statistics:

+ 可以非常直觀的看到系統總體執行情況,迅速定位系統瓶頸所在
+ 可以檢視系統範圍內各類等待事件的狀況,檢視每個連線會話的狀況

k) Pinned Code:

+ 我們知道,頻繁執行的大的儲存過程最好Pin起來,這樣可以避免被Oracle在記憶體不足的情況下換出記憶體,避免動態載入,也避免flush shared pool的時候被清出記憶體。
+ 根據每個模組的大小,執行次數,決定是否要把某個儲存過程PIN起來。一個按鈕就搞定了。

l) Control Files:

可以檢視當前系統有哪幾個控制檔案,以及控制檔案內部記錄的詳細資訊。(實際上就是V$CONTROLFILE, V$CONTROLFILE_RECORD_SECTION)

m) Redo Log Manager:

+ 可以方便的檢視LOG的組,當前日誌,每個組裡面的成員名字,大小,方便的增加、刪除log組,切換當前日誌,對日誌歸檔進行具體的控制。
+ 可以在這個介面裡完成幾乎所有的對redo log的操作。

o n) Repair chained rows: Chained rows影響系統效能,處於系統效能的考慮,需要把chained rows修復成普通的表的行。使用repaie chained rows,就可以比較容易的做到這一點。選擇需要分析的表,然後分析一下,看有沒有chained rows,如果有,點選repair,Toad就幫你把那些chained rows給修復了。

o) Identify Space Deficits

如果系統出現1659,1653錯誤,就是一個不合格的DBA。但是要即時預見這些錯誤,還是有一定的難度的。有了Toad的這個小工具之後,一點某個表空間,就知道這個表空間裡面的剩餘自由空間是否允許任何表能夠擴充套件到下一個extent。並能夠在發現問題之後,直接改正問題。

p) Estimate Table/Index Size

+ 資料庫的物理規劃中,表/索引的儲存子句的定義是非常重要的,影響系統。但是沒有什麼工具的話,要為表定義合理的儲存子句也不容易。
+ 在Toad裡面,專門有工具幫助你合理定義表/索引的儲存情況:

1. 自己可以定義將來表中需要儲存的資料的數目

2. 多種估計方式:

# 根據對已有的資料的分析來定義表的大小(最精確,但是比較慢)
# 根據表定義資料型別來定義表的大小
# 根據資料字典中以前分析過的資料來估計大小(需要近期分析過該表)

q) Analyze All Tables

+ 基於CBO的SQL需要CBO提供最最佳化的執行路徑來提高程式的執行效率,但是假如對錶進行大量的DML操作之後,不及時更新表的統計資料,這時候CBO就不能選擇最為有效的執行路徑,導致程式執行效率低。
+ 手工分析表比較麻煩,一個一個做。
+ 用Toad的Analyze Alltables這個工具,可以一次分析整個模式下面的所有表,有豐富的控制選項,包括是採用估計還是完全,是否同時分析索引,估計的話,採用多大的百分比等。

r) Rebuild Table

+ 當表中的資料被反覆大量的DML之後,而且PCTFREE和PCTUSED定義的不合理的情況下,表可能會變得非常破碎,佔用大量的extent,索引也會相當破碎,導致效率相當低下。
+ 傳統的方式是透過exp/imp來解決這個問題,但是步驟實在比較麻煩,手工操作也有一定的危險性。
+ 使用Rebuild Table工具,輕鬆搞定,而且可以手工修改一些透過EXP/IMP無法修改的引數,比如freelists ,freelists group, tablespace,initial等,還能夠更改列的名字。

s) Relocate Index

+ 我們知道,表和索引一般都需要分開存放到不同的表空間,這樣比較便於管理,效能上也會有一定的提高,因為可以對錶和索引同時存取。
+ 但是實際上很多時候,由於這樣那樣的原因,常常忽略了索引單獨存放這個基本概念,比如建立主鍵約束的時候沒有加USING INDEX子句,後來disable/enable了主鍵約束/唯一性約束等,都會導致把索引直接存放到和表同一個表空間裡面。
+ 手工發現這些索引,再逐個移動非常麻煩,容易出錯,在Toad裡面,就很容易根據使用者/表空間來發現那些不恰當存放的索引,可以批次移動這些索引,並且允許重新定義索引的儲存子句。

t) Generate Schema Scripts:

+ 可以用來生成整個使用者下所有/部分物件的DDL語句。可以把結果儲存為sql語句或者儲存為TOAD的自定義格式。
+ 可以用來複製表結構,(EXP/IMP有非常嚴重的缺陷,就是從一個大的資料庫倒出的表結構,無法匯入到一個小的資料庫裡面,因為裡面包含了原來表的儲存資訊,即使選擇rows=N,也要在匯入資料庫裡面佔用相當大的空間)

u) Compare Schema:

+ 在開發的時候,有時候同時在幾個開發庫上開發,但是最後兩個庫的結構不完全一樣,很難比較
+ 用TOAD的這個功能,可以對兩個資料庫的模式(使用者)下面的所有物件(包括儲存過程)進行比較,可以選擇具體的比較內容。
+ 可以透過直接開啟兩個到各自資料庫的連線,或者根據Toad generate schame scripts生成的檔案進行對比。
+ 可以直接生成同步兩個資料庫的sql指令碼,給出彙總的區別簡要和詳細報告等。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/143526/viewspace-972626/,如需轉載,請註明出處,否則將追究法律責任。

相關文章