JDBC Oracle - Получение плана объяснения для запроса

Мне интересно, как я могу получить план объяснения с помощью 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));
        }
12
задан Vadzim 11 May 2018 в 09:30
поделиться