У меня есть простой параметризованный запрос выбора, попадающий в базу данных Oracle через соединение pyodbc и извлекающий данные в кадре данных через pandas.read_sql.Код очень эффективен и быстр в ядре Python 2, тогда как в Python 3 он очень медленный.
Ниже приведен код:
import pandas
import pyodbc
import time
connection = pyodbc.connect('dsn=oracle;userid=userid;pwd=password')
sql = """
select * from order_table
where
order_key = ?
"""
start_time = time.time()
dataframe = pandas.read_sql(sql=sql, con=connection, params=['key-1'])
print(time.time()-start_time)
Время выполнения Python 2: 0.193000078201
Python 3 время выполнения: 53.687000036239624