回答
對於Oracle數據庫提供以下信息:
描述問題
的症狀描述導致問題的行爲。查詢的行爲是否穩定或僅在有時會發生問題,具有特定參數或簡單隨機。您可以在IDE(例如SQL Developer)中重現此行爲嗎?
描述環境
定義甲骨文
select * from v$version
的確切版本描述你如何連接到數據庫:驅動程序,ORM,編程語言。提供名稱和/或版本號。
描述查詢
郵政查詢文本。嘗試簡化 - 顯示最小可重複的示例。
示例 - 有問題的查詢連接10個表。檢查是否在具有9或8個連接的查詢中看到相同的症狀。 退出,直到看到問題並只顯示簡化的查詢。
是的,這是昂貴的,但它極大地增加了您獲得支持的機會!查詢越小,吸引的支持者數越高。
描述執行計劃
要獲得執行計劃運行該語句(替換您的查詢文本)
EXPLAIN PLAN SET STATEMENT_ID = '<some_id>' into plan_table FOR
select * from .... -- your query here
;
執行計劃存儲在PLAN_TABLE
,看到它運行此查詢
SELECT * FROM table(DBMS_XPLAN.DISPLAY('plan_table', '<some_id>','ALL'));
顯示完整結果(不僅是帶執行計劃的表)。 極端重要的可能是謂詞部分和下面的註釋。
舉例select * from dual where dummy = :1;
Plan hash value: 272002086
--------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 2 | 2 (0)| 00:00:01 |
|* 1 | TABLE ACCESS FULL| DUAL | 1 | 2 | 2 (0)| 00:00:01 |
--------------------------------------------------------------------------
Query Block Name/Object Alias (identified by operation id):
-------------------------------------------------------------
1 - SEL$1/[email protected]$1
Predicate Information (identified by operation id):
---------------------------------------------------
1 - filter("DUMMY"=:1)
Column Projection Information (identified by operation id):
-----------------------------------------------------------
1 - "DUMMY"[VARCHAR2,1]
不要剪切和粘貼你的IDE的圖形結果解釋計劃。
這個執行計劃是真正執行的嗎?
不幸的是並不總是如此。 解釋執行計劃可能有differ from the real one有幾個原因。
如果您有疑問(特別是當您看到一個好的計劃,但查詢運行不良時),您可能從 提取計劃從DB緩存提供SQL_ID
。
select sql_id, sql_fulltext from v$sql a where
lower(sql_text) like lower('%<some identifying part of the query text>%')
and parsing_schema_name = '<user running the query>';
如果您有:
SELECT t.* FROM table(DBMS_XPLAN.DISPLAY_CURSOR('<SQL_ID>',null,'ALL')) t;
對於當前正在運行(或在短期內運行,仍緩存)查詢該SQL_ID可以 文本匹配和/或數據庫用戶可以找到AWR許可證,您甚至可以從那裏獲得執行計劃,即使是在歷史記錄中運行的查詢。
SELECT t.*
FROM table(DBMS_XPLAN.DISPLAY_AWR('10u2rj016s96k' )) t;
的SQL_ID可使用
select sql_id, sql_text
from dba_hist_sqltext a
where lower(sql_text) like lower('%<some identifying part of the query text>%')
描述數據
顯示於這些表中的表和索引的DDL被發現。
提及最近收集的優化器統計信息並顯示使用的收集語句dbms_stats
。
對於臨界表(一個或多個)提供關於分段大小,行號,分區信息...
對於訪問中使用或列加入提供關於不同值的數目的信息。 這些值是均勻分佈還是傾斜的(例如,經常發生的少量值,以及罕見值的大數值 )。 你是否定義了直方圖?
還有什麼?
當然,這只是基礎知識,還可能需要其他信息,例如系統統計信息或優化器參數。 但是,再次嘗試提供(你)能夠識別問題的最少信息。 根據要求發佈其他信息。
祝你好運!
- 1. 用於描述關係數據庫模式的標準數據庫中立XSD
- 2. MySql |關係數據庫vs非關係數據庫的性能
- 3. 數據庫關係問題
- 4. 關於MySQL數據庫性能問題
- 5. 性能問題MySQL數據庫中的全索引掃描
- 6. 數據庫不相交的關係描述
- 7. 問題根據XML描述
- 8. 數據庫性能問題
- 9. 數據庫性能問題
- 10. 如何描述負載下的性能?
- 11. app.config組織中的數據庫描述
- 12. python關閉文件描述符問題
- 13. 如何在ERwin建模器中表示關係的描述性屬性?
- 14. 描述ruby中的類關係
- 15. 關係數據庫規範化問題
- 16. 關係數據庫設計問題
- 17. 關係數據庫問題與PHP
- 18. 關係數據庫映射問題
- 19. Rails數據庫表關係問題
- 20. 數據庫表關係問題
- 21. 與外部數據依賴關係的性能問題
- 22. 使用BRISK檢測器/描述符的性能問題OpenCV
- 23. 從數據庫中獲取CheckBoxList描述
- 24. Quartus項目中ieee和floatfixlib vhdl庫之間關係的描述
- 25. 爲什麼關係數據庫存在可伸縮性問題?
- 26. 如何解決「不能描述對象」的TORA問題
- 27. 關於數據庫性能和更多的問題
- 28. 關於Mongo數據庫的性能問題
- 29. DynamoDB掃描性能問題
- 30. 關係數據庫設計 - 關係問題
發佈此問題的動機是,我沒有找到關係數據庫的頁面類似於 [this](http://stackoverflow.com/questions/5963269/how-to-make-a-偉大的 - 可重現的例子)一個'[r]'。 我自己爲Oracle數據庫回答了這個問題,希望其他人擴展/更正信息併爲其他數據庫添加答案。 –
這不是博客。將是一個很好的開始,以決定用戶的期望。 (吞吐量,例如響應) –