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\temps目錄下)
ü 如果需要用Toad來查看執行計畫,必須運行指令碼PrepToad.sql或者notoad.sql
n 如果希望專門建立一個Toad 使用者來存放Toad需要使用的對象的話,就運行preptoad.sql。
n 如果希望在當前串連使用者模式下建立toad需要使用的對象的話,就運行notoad.sql。
n 注意,如果是選擇了專門建立toad這個使用者的話,需要先修改一下指令碼,指定使用者的預設資料表空間和暫存資料表空間。
ü 需要使用Oracle8i 的Profile analyzer,必須運行ToadProfiler.sql
ü 需要加強Toad的安全性,必須運行ToadSecurity.sql
四、Toad使用快速入門
1. Schema Browser:
Schema browser是Toad的極為有特色的模組。在schema browser的協助下,可以方便的瀏覽資料庫內部的各類資料庫物件,比如表,索引,序列,預存程序等,而且可以方便的倒出DDL語句和進行各種修改,重建工作。定位到某一類對象上,這列對象允許的操作都會自動列出來。
特色:
l 支援Oracle資料庫裡面所有對象的建立、查看、修改,整合了幾乎對所有資料庫物件的管理所需要的功能。
l 按照 模式->物件類別 ->對象->對象可操作屬性 -> 對象本身的詳細資料和對象相關的資訊 來組織,非常有條理,容易定位對象,也能夠看到所有你需要的對象的相關資訊。
l 對於表:
i. 完備的建表嚮導,不用輸入冗長的文法,更加全面地替你考慮。
ii. 可以修改表的各種邏輯和物理屬性,修改列的屬性,增加列,刪除列(在Oracle8i裡面),修改表的實體儲存體屬性,Truncate,Drop等。
iii. 可以產生建表的完整的DDl語句,包括儲存資訊,許可權資訊,約束,索引和觸發器等,而這些手工很難做到。
iv. 可以方便的對錶進行分析,查看錶地所有資訊,可以有條件的倒出表裡面的資料,並且儲存為sql語句。
v. 可以方便的對錶進行重組,可以完成exp/imp作不到的事情,而且更少地人工參與,更加安全。
l 對於視圖,預存程序:
i. 可以儲存建立視圖、預存程序的語句為文本,
ii. 重新編譯失效的視圖,預存程序,修改視圖的定義語句等。方便的查看預存程序的代碼,相互依賴關係,許可權資訊等儲存為文本等。
l 復原段,
i. 簡潔明了的online,offline狀態,方便地online/offline操作
ii. 詳細的復原段物理資訊和目前狀態。
iii. 可以方便的修改實體儲存體屬性
l 資料表空間:
i. Tablespace Map;直觀的顯示資料物理的在資料表空間上的分布
ii. 直觀的查看各個資料表空間的利用率、剩餘空間、破碎情況等資訊
iii. 可以進行各種alter操作:online, offline, 增加資料檔案,改變資料檔案大小,改變實體儲存體屬性等
l 對其他資料庫物件也有完備的操作支援。
2. SQL Editor:
a) 啟用SQL Editor的三種方式:
i. 串連到資料庫之後,Toad自動開啟SQL Editor這個視窗。
ii. 點擊總工具列上最左邊的那個按鈕
iii. 從功能表列:Database -> SQL Editor
b) 特點:
l 允許同時開啟多個編輯視窗,同時編輯多個SQL語句
l 支援同時串連到多個資料庫,同時對多個資料庫進行操作
l 允許編輯SQL,PLSQL,JAVA,HTML和文本
l 使用書籤功能,可以在大量SQL語句裡,快速定位某個語句所在位置
l SQL Editor本身具有強大的編輯功能,非常方便編輯SQL語句。
l 強大的快速鍵支援和工具列快速按鈕的支援,更加高效編寫(很多快速鍵可以自己定義,在View ->options ->SQL Editor裡面)
l 能夠根據前面的條件,智能推測需要輸入的代碼,可以做到某種程度的代碼智能填充
l 把滑鼠定位到表/視圖/預存程序名稱之上,按F4,可以開啟對象描述視窗,方便的查看錶和視圖的定義,預存程序的原始碼,
l 非常容易對SQL語句的分析其執行計畫:單擊工具列上的 按鈕就可以看到Explain Plan的結果
l 支援部分SQL*Plus命令,可以方便的執行大量的為SQL*Plus編寫的資料庫指令碼
l 可以通過SQLab xpert來對當前SQL語句進行全面的分析,給出各種合理的調優意見,只需要單擊工具列上的Tuning按鈕:
l 可以方便的儲存,開啟和運行SQL指令碼
l 支援對查詢結果進行修改,
l 可以把查詢結果以多種格式儲存起來,可以儲存為HTML,純文字,XLS等多種格式
l 很容易的得到SQL函數的列表和用法描述(Show SQL help Window 按鈕)
l 可以查看SQL語句的執行情況:通過下方的AutoTrace視窗 ,看到SQL語句的實際執行結果和執行效率。
l 支援曆史SQL(F8) :可以方便的查詢以前執行過的SQL,不用反覆重新輸入。
l 可以執行匿名塊,預存程序,從下方的視窗看到DBMS_OUTPUT的結果,如:
3. Stored Procedure Editor
a) 開啟預存程序編寫器的幾個途徑:
l 單擊總功能表列上的第三個按鈕:
l 點擊Database - > Procedure Editor ,
l 可以通過Schema browser來調用
b) 一些特點和優點:
1. 強大的自訂設定:從保留字的顯示方式,到自動替換,到各種快速鍵的定義等等,用得越熟越順手。
2.
3. 自動用不同顏色顯示SQL和PL/SQL關鍵字,文法清晰明了,可根據自己的習慣來具體定製各類關鍵字的具體顯示方式。可以自訂預存程序得模板,在建立預存程序的時候,自動產生程式的架構可以方便的調用Schema Browser,把滑鼠定位於某個對象上,F4,Schema Browser開啟該對象的詳細描述,協助順利快速開發程式。支援代碼自動校正,如輸入ndf,自動替換成NO_DATA_FOUND,輸入the自動替換成the,類似的自動替換還可以自己修改和添加。
7. 方便的左邊行號顯示,單擊左邊行號就可以實現調試斷點的增加/刪除
8. 對各種快速鍵的支援,不但包括常見的編輯操作,還可以有自己定義的PLSQL塊的支援(自己定義捷徑)。如可以定義CTRL+SHIFT+D:彈出所有PLSQL Block的類型,可以自己選擇。
9. 可以在一個整合式開發環境裡面,一邊編碼,一邊調試,不用多處切換
10. 方便的同時開啟多個預存程序,通過頁面快速切換
11. 快速編譯預存程序,快速定位錯誤所在,自己選擇是否同時編譯依賴的預存程序
12. 內建對PL/Formatter,可以用PL/Formatter對預存程序進行格式化,並且可以提供預存程序的概要分析和修改建議
PL/Formatter可以對現有的預存程序進行高速的格式化,使所有的預存程序都符合約樣的編寫標準,這樣既有利於提高程式的可讀性,避免不同人寫的模組的風格上的很差異。
PL/Formatter 還有助於提高程式的模組化,增強程式的結構清晰度,增強SQL的共用性。
PL/Formatter 還可以協助完成PL/SQL和Oracle版本之間的管理。
13. 內建RevealNet Knowledge Base,單擊滑鼠右鍵就可以開啟,快速得到技術上的支援,解決技術難題
nPL/SQL:
n包含整個開發過程中可能遇到問題的答案
nCode Library:大量的嚴謹的PL/SQL代碼例子和現成過程,完全原始碼提供
n各種錯誤處理模組可供參考,各類字元日期函數
n包含1400多個主題
nAdmin:
n解答DBA日常工作中80%的常見問題,覆蓋2400多個主題
n從網路到效能最佳化,從備份恢複到Error message,一應俱全
例子:遇到失效的預存程序怎麼辦?
4. 如何對預存程序進行Debug?
u 需要Toad單獨的Debug Option(Standard Version 沒有這個選項)
u 要用Toad對預存程序進行debug,必須安裝Oracle的系統包:dbms_debug,而且必須安裝Oracle Probe API v2.0 或者更高的版本。
u 整合在Stored Precedure Editor裡面,可以一邊編寫一邊調試,大大提高開發效率
u 開啟Procedure Editor後,Debug菜單啟用,可以開始進行Debug工作。
u 允許對預存程序進行逐行調試、斷點調試,也支援對觸發器進行調試。
u 可以有斷點支援,支援Watch變數,允許運行時改變變數的值
u 允許對多層調用的Debug支援
調試步驟具體舉例:
1. 點擊功能表列的第三個按鈕: ,開啟Procedure Editor
2. 點擊Procedure Editor的功能表列的 按鈕,調出需要調試的預存程序
3. 單擊工具列上的按鈕 ,輸入需要傳入的參數,如果不需要傳入參數,可以直接單擊工具列上的按鈕: ,直接開始調試,如下圖輸入傳入參數:
5. SQL Modeler:
SQL Modeler可以協助開發人員很容易的寫出各種複雜的SQL語句,只需通過簡單的拖動滑鼠,就能夠寫出複雜的SQL語句來。
開啟SQL Modeler的幾個途徑:
i. 功能表列 Database -> SQL Modeler ,開啟視窗
ii. 單擊工具列第四個按鈕 ,開啟SQL Modeler視窗
視窗由三個主要部分組成:
n 表選擇地區:最右邊的那個部分,用來選擇From子句中用到的表。拖動到左邊的地區或者雙擊就選擇了該表。
n 表模型地區:用來圖形化的顯示選擇的表和表之間的關聯關係。
n 產生SQL地區:這裡顯示用圖形化方式建立的查詢對應的SQL語句,
DBA方面的功能:
Toad在DBA日常管理方面的能力是非常強大的,可以協助DBA安全快速地完成許多日常工作,還有Toad特有的一些小工具能完成一些普通方法很難做到的功能。下面大概講述了各個常用模組的主要功能:
a) Database Monitor
提供直觀的Oracle資料庫健全狀態,包括下面這些詳細資料:
可以看到邏輯IO,物理IO,各個狀態的session數目,SGA的利用率,共用池的使用狀況,各類事件的等待狀況,以及各類事件隨著時間的變化情況
b) Instance Monitor
i. 可以用來檢查本地tnsnames.ora檔案裡面定義的所有節點、Listener和資料庫的運行狀態和版本等相關資訊。
ii. 可以遠程啟動、關閉資料庫(如果設定了password驗證方式)
c) Unix Monitor:
i. 可以監控Unix機器的健全狀態比如詳細的機器啟動時間,CPU利用率,主要的進程以及這些進程佔用的資源,主要的磁碟IO等。
d) Trace/Kill session
i. 方便的查看所有的串連使用者相關資訊:比如終端,程式,連線時間等
ii. 對某個使用者進行跟蹤,查看使用者執行的SQL語句,查看語句的執行計畫,
iii. 方便的查閱系統的Lock對象,有沒有什麼等待別的事務釋放鎖的情況,並能夠輕易查出等待什麼使用者的什麼事件結束,那個使用者執行的是什麼SQL。
iv. 查看復原段的使用狀態,什麼使用者,什麼語句,使用的什麼復原段,多少讀寫量等
e) Oracle Parameter
i. 可以方便的查看Oracle系統的參數:是否預設值,參數作用的簡要描述,是否可以用alter session/alter system來動態改變,對於那些可以動態改變的參數,可以雙擊滑鼠來進行修改
f) NLS_PARAMETER:
i. 方便的查看session,instance,database一級的NLS參數值,
ii. 可以動態修改session的NLS參數值
g) Extents
i. 可以查看某個使用者下的表和索引的詳細的儲存情況,
ii. 發現那些佔用大量空間的表和索引,可以考慮使用相應的對策,比如分區
iii. 發現那些即將達到max_extents的表和索引並可以及時糾正
iv. 發現那些索引和表處於同一個資料表空間的情況,並可以及時糾正。
h) Tablespace
i. 直觀的查看每個資料表空間的利用率,總空間,已使用空間,剩餘可是用空間以及預設儲存參數,和資料表空間是否需要整理等資訊
ii. 查看每個資料表空間的狀態,組成的資料檔案, 以及每個資料檔案的詳細資料
iii. 查看每個資料表空間裡面存在的對象和這些對象的詳細儲存特性
i) Tablespace Map:
i. 圖形化的顯示資料表空間裡面各個表/索引所佔用的空間,各個segment的大小,segment是否連續等資訊,非常直觀
ii.
j) Server Statistics:
i. 可以非常直觀的看到系統總體運行情況,迅速定位系統瓶頸所在
ii. 可以查看系統範圍內各類等待事件的狀況,查看每個串連會話的狀況,
k) Pinned Code:
i. 我們知道,頻繁執行的大的預存程序最好Pin起來,這樣可以避免被Oracle在記憶體不足的情況下換出記憶體,避免動態載入,也避免flush shared pool的時候被清出記憶體。
ii. 根據每個模組的大小,執行次數,決定是否要把某個預存程序PIN起來。一個按鈕就搞定了。
l) Control Files:
可以查看當前系統有哪幾個控制檔案,以及控制檔案內部記錄的詳細資料。
(實際上就是V$CONTROLFILE, V$CONTROLFILE_RECORD_SECTION)
m) Redo Log Manager:
i. 可以方便的查看LOG的組,當前日誌,每個組裡面的成員名字,大小,方便的增加、刪除log組,切換當前日誌,對日誌歸檔進行具體的控制。
ii. 可以在這個介面裡完成幾乎所有的對redo log的操作。
n) Repair chained rows:
i. 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
i. 資料庫的物理規劃中,表/索引的儲存子句的定義是非常重要的,影響系統。但是沒有什麼工具的話,要為表定義合理的儲存子句也不容易。
ii. 在Toad裡面,專門有工具協助你合理定義表/索引的儲存情況:
1. 自己可以定義將來表中需要儲存的資料的數目
2. 多種估計方式:
a) 根據對已有的資料的分析來定義表的大小(最精確,但是比較慢)
b) 根據表定義資料類型來定義表的大小
c) 根據資料字典中以前分析過的資料來估計大小(需要近期分析過該表)
q) Analyze All Tables
i. 基於CBO的SQL需要CBO提供最佳化的執行路徑來提高程式的執行效率,但是假如對錶進行大量的DML操作之後,不及時更新表的統計資料,這時候CBO就不能選擇最為有效執行路徑,導致程式執行效率低。
ii. 手工分析表比較麻煩,一個一個做。
iii. 用Toad的Analyze Alltables這個工具,可以一次分析整個模式下面的所有表,有豐富的控制選項,包括是採用估計還是完全,是否同時分析索引,估計的話,採用多大的百分比等。
r) Rebuild Table
i. 當表中的資料被反覆大量的DML之後,而且PCTFREE和PCTUSED定義的不合理的情況下,表可能會變得非常破碎,佔用大量的extent,索引也會相當破碎,導致效率相當低下。
ii. 傳統的方式是通過exp/imp來解決這個問題,但是步驟實在比較麻煩,手工操作也有一定的危險性。
iii. 使用Rebuild Table工具,輕鬆搞定,而且可以手工修改一些通過EXP/IMP無法修改的參數,比如freelists ,freelists group, tablespace,initial等,還能夠更改列的名字。
s) Relocate Index
i. 我們知道,表和索引一般都需要分開存放到不同的資料表空間,這樣比較便於管理,效能上也會有一定的提高,因為可以對錶和索引同時存取。
ii. 但是實際上很多時候,由於這樣那樣的原因,常常忽略了索引單獨存放這個基本概念,比如建立主鍵約束的時候沒有加USING INDEX子句,後來disable/enable了主鍵約束/唯一性限制式等,都會導致把索引直接存放到和表同一個資料表空間裡面。
iii. 手工發現這些索引,再逐個移動非常麻煩,容易出錯,在Toad裡面,就很容易根據使用者/資料表空間來發現那些不恰當存放的索引,可以批量移動這些索引,並且允許重新定義索引的儲存子句。
t) Generate Schema Scripts:
i. 可以用來產生整個使用者下所有/部分對象的DDL語句。可以把結果儲存為sql語句或者儲存為TOAD的自訂格式。
ii. 可以用來複製表結構,(EXP/IMP有非常嚴重的缺陷,就是從一個大的資料庫倒出的表結構,無法匯入到一個小的資料庫裡面,因為裡麵包含了原來表的儲存資訊,即使選擇rows=N,也要在匯入資料庫裡面佔用相當大的空間)
u) Compare Schema:
i. 在開發的時候,有時候同時在幾個開發庫上開發,但是最後兩個庫的結構不完全一樣,很難比較
ii. 用TOAD的這個功能,可以對兩個資料庫的模式(使用者)下面的所有對象(包括預存程序)進行比較,可以選擇具體的比較內容。
iii. 可以通過直接開啟兩個到各自資料庫的串連,或者根據Toad generate schame scripts產生的檔案進行對比。
iv. 可以直接產生同步兩個資料庫的sql指令碼,給出匯總的區別簡要和詳細報告等。
--------------------------------------------------------------------------------