#oracle #database-connection #ormlite
#Oracle #подключение к базе данных #ormlite
Вопрос:
Как я могу установить размер выборки для базы данных Oracle? Например, при запуске SQL * Plus я могу set arraysize 250
значительно повысить производительность своих запросов. Как я могу добиться того же с помощью ORMLite?
Единственное, что я нашел, чтобы сделать это программно, — это метод void setDefaultRowPrefetch(int var1) throws SQLException;
in oracle.jbdc.OracleConnection
, но это не имеет никакого отношения к ORMLite . Итак, как я могу получить доступ к базовому соединению и задать специфические для базы данных параметры, такие как arraysize для Oracle DB?
Ответ №1:
Единственное, что я нашел, чтобы сделать это программно, — это метод void
setDefaultRowPrefetch(int var1)
throws SQLException; inoracle.jbdc.OracleConnection
, но это не имеет никакого отношения к ORMLite. Итак, как я могу получить доступ к базовому соединению и задать специфические для базы данных параметры, такие как arraysize для Oracle DB?
К сожалению, сейчас это немного взлом.
При запуске с JDBC то, DatabaseConnection
что вы получаете от, на самом JdbcConnectionSource
деле JdbcDatabaseConnection
. Это соединение имеет открытый getInternalConnection()
метод, который возвращает базовый java.sql.Connection
(см. Источник). Это должно быть (надеюсь) a oracle.jbdc.OracleConnection
.
Я внес изменения в источник, чтобы официально представить этот метод (переименованный в getUnderlyingConnection()
), который будет в версии 5.3 ORMLite. Смотрите Запрос на извлечение.