Как увеличить размер выборки по умолчанию для запросов (Oracle DB)

#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; in oracle.jbdc.OracleConnection , но это не имеет никакого отношения к ORMLite. Итак, как я могу получить доступ к базовому соединению и задать специфические для базы данных параметры, такие как arraysize для Oracle DB?

К сожалению, сейчас это немного взлом.

При запуске с JDBC то, DatabaseConnection что вы получаете от, на самом JdbcConnectionSource деле JdbcDatabaseConnection . Это соединение имеет открытый getInternalConnection() метод, который возвращает базовый java.sql.Connection (см. Источник). Это должно быть (надеюсь) a oracle.jbdc.OracleConnection .

Я внес изменения в источник, чтобы официально представить этот метод (переименованный в getUnderlyingConnection() ), который будет в версии 5.3 ORMLite. Смотрите Запрос на извлечение.