Медленная обработка данных при выполнении запроса с использованием cx_Oracle.Cursor - PullRequest
0 голосов
/ 01 октября 2018

В Python я выполняю SQL-запрос ORACLE, используя:

cursor = conn.execute(TEMPLATE, {'var1':'value1', 'var2':'value2'})

, где

conn - соединение оракула. ​​

Вышеприведенный оператор возвращает в пределах 1,2 секундыЗатем я делаю:

fields = [d[0] for d in cursor.description]
[dict(izip(fields, row)) for row in cursor]

, чтобы преобразовать результаты в список словарей.И 2-й оператор («для строки в курсоре ...») застревает, как будто он выполняется на неопределенный срок.

Теперь он выполняется на нашем сервере на удаленном компьютере, если я запускаю тот жезапрос на моем локальном ящике, к той же базе данных, все возвращается менее чем за 30 секунд, и от курсора есть только 200 строк.Как это может так долго выполняться в другом окне только для 200 строк в результатах (заметьте, оператор conn.execute () тоже быстро возвращает в поле)?

Что еще можно сделать для дальнейшего изучения

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