Toad 常用菜單
新版本 toad 軟件中, 比較有用的菜單 (toad10.6 版本)
下邊菜單, 在日常工作中出現過的, 顯示為 粉色 , 藍色 表示次一級的重要
session 菜單 new session, end session, session Information, DBMS flashback
Session Information: 顯示當前session的用戶的情況, 比如權限, 授權等
Database 菜單 (很多功能都是重復的)
administrator: 審計, 參數, redo, tablespace , prameters 等, 這里關於 redo 的內容十分好用.
monitor: 監控 可以與statspack 聯系使用.
~ database browser : database 的全部內容, 包括參數, 表空間, 數據文件等
~ database monitor : 動態監視, 包括 logical I/O, session, sga, physical IO, call rates, shared pool, waitevent 等等. (實時, 可能不用)
~ database probe : 也是用來實時監控系統運行情況 (實時, 不用)
注: database monitor, database probe 都是實時監控系統運行, 本身也很耗費資源, 個人感覺還是用快照的方式, 然后生成report, 分析report 比較好一定, 畢竟誰也不能在pc前一動不動的實時監測. 就算是臨時發現了問題, 也可以用快速的兩次快照, 找到問題的原因.
~ server statistics: 數據庫運行的統計信息, waits, latches, sessions 等等
~ Index Monitoring : 監控索引的使用情況
~ session browser : 可以用來 kill session, 另外還有針對 session 的 wait event 等.
~ SGA Trace : 針對 SGA 的使用情況, 詳細列出了所有的 sql list.
~ statspack Browser : statspack 的信息瀏覽
~ SQL Tracker : 打開這個, 你在toad中的所有操作, 都會有對應的SQL語句被輸出.
~ top session finder : 最耗費資源的 session
diagnose:
~ Alert log viewer: 查看 alert file 日志
~ CodeXpert : 看來只針對 pl/sql, 加載進來一個對象(procedure, function, package, trigger, view), 進行優化(自動).
~ Extents : 可以看到每個對象(例如 table)的存儲情況.
~ DB Health Check: DB健康檢查, 默認是所有項目都要運行, 運行需要很多時間.
~ Identify Space Deficits: 查看赤字的存儲空間.
~ Log Miner : 可以查看到日志文件中, redo log file 的具體 SQL 語句.
~ Log switch Frequency Map: 可以查看發生 Log switch 的時間點, 根據這個時間間隔判斷 redo log file 大小是否合適 (如果redo log file 大小不合適, 因為redo log 是循環工作, 很有可能發生等待)
~ Tablespace Map: 可以看到每個 block 存儲哪些內容.
optimize:
~ analyze all objects : 類似 SYS.DBMS_STATS.GATHER_TABLE_STATS 的作用.
~ Estimate Index Size : 估計索引所占存儲空間大小.
~ Estimate Table Size : 估計table所占存儲空間大小.
~ Explain plan : 執行計划, 一般是先選擇一個SQL語句, 然后點工具欄上的小救護車(其實就是這項), 就可以只執行plan.
~ Optimize Current SQL: 輸入一個SQL語句, 然后運行, 會出現 Explain Plan 和 Execution Statistics.
~ Pinned Code : 可以查看共享池 shared pool 中的對象(主要是 procedure, function, package, sequence). 貌似用處不大
~ Rebuild Multiple Objects : 重建對象, 比如重建索引, 重建表 等.
~ Rebulid table : 重建表, 很詳細的設置
補充
knowledge xpert for pl/sql (有專題, 例如 best practice)
CodeXpert (在pl/sql編輯版的下半部分) 可以對pl/sql語句進行有效的優化提示
培訓
1. 系統監控用戶設置
做系統級的監控只能用 sys 和 system 用戶, 在 toad 中使用 sys 要將中間部分的 sysdba, 用system用戶, 中間部分選擇 normal. sys 用戶只能用來做管理, system本質上是一個普通用戶, 被賦予了管理權限.
2. 創建新的連接方式
在 toad 登陸接界面, 點中下部的 TNSNames Editor 按鈕, 在彈出的窗口的上邊工具欄找到 Add Service按鈕, 根據提示, 添加新的連接
注: 雖然手動在 tnsnames.ora中添加也是可以的, 但是用這種方式添加更加穩妥, 添加完后, 你會看到添加后的代碼.
3. 使用 toad 緊急恢復數據(閃回)
用例: 在10分鍾前(注意這個時間, 因為閃回技術主要依賴於在undo表空間里的數據鏡像, undo表空間里的數據如果想不被覆蓋, 是有一個時間限制的, 有個參數, 一般是15分鍾, 所以這個用例使用的是10分鍾前, 如果是1年前, 那么你還想閃回么?) 某操作員不小心對表t的某列做了修改, 現在如何恢復10分鍾前的數據
解答:
如果未提交, 則直接 rollback, 如果已經提交了, 則按下面步驟進行恢復
(1) create table t_temp as select * from t as of timestamp sysdate – 1/144; -- 創建一個臨時表, 保存了包含10分鍾前被修改前的數據
(2) select * from t-1/144; -- 這個沒看出來有什么用, 個人感覺應該是 select * from t_temp 確認是否包括需要返回的數據
(3) merge into t as t using t_temp as tt on (t.primarykey = tt.primarykey) when matched then update set t.name = tt.name
4. Excel 文件導出
Excel File 與 Excel Instance 不同, 用 Excel File 導出時, 不同的查詢結果都導出到不同的Excel文件中, 而 Excel Instance 導出時, 不同查詢結果會導出到同一個 Excel 中的不同頁簽.
若導出的數據要導入到不同類型的數據庫, 則需要再下拉框中選中 Insert Statement, (在想選擇excel的地方), 這里注意, 如下圖:
5. 使用 toad 監控會話實時情況
查看最耗用資源的session ( database->monitor->Top Session Finder 路徑可能不同, 不過 Top Session Finder 找這個就可以了 ), 點執行(播放按鈕)
單擊餅狀圖, 會出現session信息, 這些信息里比較重要的是( sid, oracle user, os user, machine )
根據 sid, 在 Editor 窗口中輸入: select * from v$session where sid = ‘3232’ 執行, ( 這個sid就是剛剛查出來的那個sid), 通過這里, 可以查看這個session是什么時間登陸的, 如果登陸了很久, 那很可能是死進程, 這里也可以查到 process(進程號), ps-ef|grep 1232 查看該進程
6. 使用 toad 監控索引
database->monitor->index monitoring(路徑可能不一樣)
補充: 索引的特點是, 方便數據查詢, 不方便數據更新, 因此, 索引不能隨便建.
經驗: 一個索引若三個月沒有用到, 就可以刪除.
這里的監控索引, 主要是看索引是否被使用.
7. 使用 toad 查看sql執行計划
將要執行的sql粘貼到 sql editor中, 然后點工具欄中的小救護車圖標, 注意: 不用執行 sql, 只需要執行計划.
執行計划中的 table access Full 要關注 ( 全表掃描 )
cost 值越大表示耗用資源越多
還要關注最上層的 Cost 值, 在這里有個經驗, 以 10000 為界限, 超過 10000 就要予以關注
oracle規則是: 當查詢出的數據占記錄數的 60% 的時候就不會走索引.
8. 使用 toad 查看各個對象
在 schema browser 中查看.
表空間, 應該關注的是表空間的使用率, 這里也有一個經驗值, 當表空間超過 80% 的時候就應該予以關注.
9. 使用 toad 數據庫健康檢查
database->diagnose->DB Health Check( 路徑可能不對 )
10. 使用 toad 對比表結構
database->compare->schemas ( 路徑可能不對 )
這個可能很有用, 比如你想重新建立一個數據庫而使用以前的數據庫時, 可以使用這個功能將原數據庫的結構導出來, 再用exp之類的將數據導入.
另外, 可以在頁簽中使用同步腳本, 點開各個對象后, 可以看到詳細腳本
11. toad 秘密
如何知道 toad 在執行某項操作時, 執行了哪些 sql 語句
(1) 打開相應工具
也可以用以下方法打開工具:
(2) 選中 toad
(3) 執行某項操作
在上圖的工具中, 就會顯示剛剛執行的操作的后台的sql語句