为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:03134284132-20231226-213242-20081
【操作系统】:win10
【CPU】:x86
【问题描述】*:JDBC如何查询执行计划?希望查到和用disql执行explain ...一样的结果。我尝试了以下方法,但是不知道怎么取结果;尝试用官方文档给出的getExplainInfo方法,但是编译报错没有这个方法。
package test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Test {
public static void main(String[] args) {
try {
Class.forName("dm.jdbc.driver.DmDriver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try {
Connection connection=DriverManager.getConnection("jdbc:dm://localhost:5236","SYSDBA","SYSDBA");
//connection.getExplainInfo("select * from other.account");
Statement statement=connection.createStatement();
ResultSet resultSet=statement.executeQuery("explain select * from other.account");
while (resultSet.next()) {
String execPlan=resultSet.getString(1);
System.out.println(execPlan);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
//获取执行计划
String getExplan = connection.getExplainInfo("select * from T1;");
//打印执行计划
System.out.println(getExplan);
你看看这篇文档是否能用得上
获取执行计划