Python cx_ Oracle скорость запроса - PullRequest
0 голосов
/ 28 марта 2020

Проблема

Требуется много времени для запроса нашей базы данных Oracle с помощью python с использованием cx_ Oracle.

Метод

Я подключаюсь к oracle БД с использованием cx_ Oracle и запрос с использованием стандартной строки SQL, такой как:

select * from t1;

Результаты возвращаются в виде pandas кадра данных.

Наблюдения

  • Запросы из ноутбуков Spyder и Jupyter одинаково медленны.
  • Запросы от SQL клиента, такого как DBeaver, возвращают результаты в ~ 1/10 времени.

Caveat

Я не проверял, верно ли это, когда я включаю ограничения строк в запросы cx- Oracle.

Ответы [ 2 ]

1 голос
/ 29 марта 2020
0 голосов
/ 05 апреля 2020

@ Кристофер Джонс и @ Энтони Туининга указали на ответы следующего уровня в решении, почему запросы возвращались так медленно. В своем разделе #Caveat я отметил, что в моих запросах нет

WHERE rownum < 10

. Включение этого действительно уменьшило время запроса. Мой плохой.

Кроме того, такая команда, как

create table t1 as
select *
from table1

, приводит к мгновенной обратной связи, поскольку от БД ничего не получено. Это был просто вопрос запроса, который потребовал много данных обратно. * SQL клиент имеет встроенные ограничения строк, чтобы такие люди, как я, не задавали эти вопросы! :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...