pandas.read_sql() НАМНОГО медленнее при использовании SQLAlchemy, чем pyodbc

Я пытаюсь прочитать небольшую таблицу из SQL, и я пытаюсь перейти на SQLAlchemy из pyodbc, чтобы иметь возможность использовать pd.to_sql()

Когда я сравниваю их, алхимия sql намного медленнее.

s_py = """\
import pandas as pd
import pyodbc
cxn = pyodbc.connect('DRIVER={SQL SERVER};SERVER=.\;DATABASE=PPIS;UID=sa;PWD=pwd')
"""

s_alch = """\
import pandas as pd
import sqlalchemy
cxn = sqlalchemy.create_engine("mssql+pyodbc://sa:pwd@./PPIS?driver=SQL+Server")
"""
timeit.timeit('pd.read_sql("SELECT * FROM Operators", cxn)',setup=s_py, number=100)

Выход[21]: 0,18496091418973037

timeit.timeit('pd.read_sql("SELECT * FROM Operators", cxn)',setup=s_alch, number=100)

Выход[23]: 4.407356934717654

Я видел this, в котором говорится о вставке строк. Но почему чтение будет настолько медленным?


person Faller    schedule 16.02.2018    source источник
comment
Пробовали ли вы использовать SQL Profiler и/или трассировки ODBC, чтобы увидеть, дают ли ваши два метода существенно разные результаты?   -  person Gord Thompson    schedule 16.02.2018