如何在数据库中查看实际优化的SQL查询

时间:2010-12-10 04:49:35

标签: sql database oracle optimization jdbc

数据库通常在执行查询之前优化查询。对于使用JDBC或命令行客户端发出的查询,可以查看数据库执行的实际优化查询。我正在使用Oracle数据库。

1 个答案:

答案 0 :(得分:1)

我认为您误解了 - EXPLAIN PLAN向您展示了优化程序看到的内容的摘要,而不是事实上的查询:

Rows      Execution Plan
--------  ----------------------------------------------------
      12  SORT AGGREGATE
       2   SORT GROUP BY
   76563    NESTED LOOPS
   76575     NESTED LOOPS
      19      TABLE ACCESS FULL CN_PAYRUNS_ALL
   76570      TABLE ACCESS BY INDEX ROWID CN_POSTING_DETAILS_ALL
   76570       INDEX RANGE SCAN (object id 178321)
   76563     TABLE ACCESS BY INDEX ROWID CN_PAYMENT_WORKSHEETS_ALL
11432983      INDEX RANGE SCAN (object id 186024)

优化程序做出的决策基于所涉及的表和任何索引的统计信息。如果事情发生了足够的变化,刷新的统计数据可能会发生巨大变化。