JDBC с Spring slow metadata fetch Oracle

Я использую метод Spring JdbcUtils.extractDatabaseMetaData() для анализа базы данных. Функция вызывает обратный вызов и передает объект DatabaseMetaData. Этот объект предоставляет getColumns(String catalog, String schemaPattern, String tableNamePattern, String columnNamePattern).

Я вызываю ее следующим образом getColumns("",TABLE_OWNER_USERNAME,null,null) и получаю в результате 400 колонок. Это именно те результаты, которые мне нужны, но запрос занимает более 1 минуты.

Могу ли я как-то оптимизировать этот запрос, чтобы он был быстрым? Вытаскивание 400 строк должно происходить за 1 секунду, а не за минуту.

EDIT: Я не подозреваю, что часть Spring работает медленно. Более тщательный анализ показал, что получение DatabaseMetaData занимает несколько секунд, но выполнение getColumns() занимает очень много времени.

5
задан Franz Kafka 9 January 2012 в 18:03
поделиться