我想知道如何使用 Java 获取解释计划。我需要这个的原因是因为我们有一个框架,特殊用户可以在其中制作报告。这些报告有时会构建巨大的查询,我们想在其中即时解释并存储成本。这样我们可以稍后分析高成本查询并进行优化。
给我非法列异常的示例代码:
ResultSet rs = null;
try {
oracle = ConnectionManager.getConnection(ConnectionManager.Test);
pstmt = oracle.prepareStatement("begin execute immediate
'explain plan for SELECT 1 from Dual'; end;");
rs = pstmt.executeQuery();
while (rs.next()) {
System.out.println(rs.getString(1));
}
最佳答案
使用这个:
oracle = ConnectionManager.getConnection(ConnectionManager.Test); stmt = oracle.createStatement() stmt.execute("explain plan for SELECT 1 from Dual"); rs = stmt.executeQuery("select plan_table_output from table(dbms_xplan.display())"); while (rs.next()) { System.out.println(rs.getString(1)); }
关于java - JDBC Oracle - 获取查询的解释计划,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4376329/