2009-08-21 118 views

回答

2
  1. 運行explain plan for select ....以查看Oracle在查詢中的操作。
  2. 在這裏張貼您的查詢,讓我們可以查看它並幫助您。
  3. 查看Oracle Performance Tuning FAQ的一些技巧的交易,如果你願意的話。
1

您可以通過V $ SQL或V $ SQLTEXT選擇捕捉查詢。 如果您不熟悉它,請查閱Oracle 文檔中的'解釋計劃'。在性能調整 指南中應該有很多。

查看Quest Software的Toad for第三方工具,該工具也可幫助 。

K

0

不幸的是你的問題沒有明確表達。其他答案已經解決了調整已知錯誤查詢的問題,但另一種解釋是您想要監視數據庫以查找效果不佳的查詢。

如果您沒有Enterprise診斷軟件包的企業版 - 而且我們中的許多人不這麼做 - 您最好的選擇是在預定的基礎上運行statspack快照。這會爲您提供很多有關係統的信息,包括哪些查詢需要很長時間才能完成,哪些查詢會消耗大量系統資源。你可以找到更多關於statspack here

0

如果你不想使用OEM,那麼你可以查詢和找出。

  1. 首先找到長時間運行的查詢。如果它當前正在執行,您可以加入gv $ session來查找哪個會話很久以來正在運行。然後轉到gv $ sql來查找SQL詳細信息。您需要查看last_call_et列。如果SQL執行一段時間,可以使用dba_hist_snapshot,dba_hist_sqlstat和DBA_HIST_SQLTEXT表來查找有問題的SQL。

  2. 一旦你得到查詢,你可以檢查它從dba_hist_sql_plan表中選擇了什麼樣的計劃,如果這個SQL在過去執行,或者從gv $ sql_plan執行,如果它正在執行。

  3. 現在你分析執行計劃,看看它是否使用正確的索引,加入等。 如果不調諧那些。

讓我知道哪一步你有問題。我可以幫你回答這些問題。