Я использую метод 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()
занимает очень много времени.