13

Javaを使用してExplainプランを取得するにはどうすればよいのでしょうか。これが必要な理由は、特別なユーザーがレポートを作成できるフレームワークがあるためです。これらのレポートは、その場で説明し、コストを保存したいという巨大なクエリを作成することがあります。このようにして、後で高コストのクエリを分析して最適化することができます。

不正な列の例外を与えるサンプルコード:

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));
        }
4

2 に答える 2

18

これを使って:

Oracle = ConnectionManager.getConnection(ConnectionManager.Test);
stmt = oracle.createStatement()
stmt.execute("Dual からの SELECT 1 の計画の説明");
rs = stmt.executeQuery("select plan_table_output from table(dbms_xplan.display())");
while (rs.next())
{
  System.out.println(rs.getString(1));
}
于 2010-12-07T12:36:22.843 に答える