2016-07-15 5 views
0

Ich habe die folgende Java-Methode, die nur die Anweisung selbst zurückgibt. Wie kann ich den MSSQL-Abfrageausführungsplan mithilfe von JDBC abrufen?Abrufen von Ausführungsplan-Abfragetext von einem MSSQL-Server mithilfe von JDBC

public String explainStatementMssql(String sqlStatement) { 
    Connection connection = null; 
    Statement statement = null; 
    ResultSet rs = null; 
    StringBuilder output = new StringBuilder(); 
    try { 
     connection = Utilities.getConnection(); 
     connection.setAutoCommit(false); 
     statement = connection.createStatement(); 
     statement.execute("SET SHOWPLAN_TEXT ON"); 
     statement.executeQuery(sqlStatement); 
     rs = statement.getResultSet(); 
     while (rs.next()) { 
     output.append(rs.getString(1)).append("\n"); 
     } 
     statement.execute("SET SHOWPLAN_TEXT OFF"); 
     connection.commit(); 
    } 
    catch (Exception e) { 
     e.printStackTrace(); 
    } 
    finally { 
     Utilities.close(rs, statement, connection); 
    } 
    return output.toString(); 
    } 

Umwelt: java -version

java version "1.7.0_101" 
OpenJDK Runtime Environment (IcedTea 2.6.6) (7u101-2.6.6-0ubuntu0.14.04.1) 
OpenJDK 64-Bit Server VM (build 24.95-b01, mixed mode) 
jtds-1.2.6.jar 
Microsoft SQL Server 2012 

Antwort

Verwandte Themen