Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
5.3k views
in Technique[技术] by (71.8m points)

python - fast_executemany=True equivalent for Oracle in SQLALCHEMY

I am using SQLALCHEMY to execute sql scripts in Oracle database. In past i have used fast_executemany for MSSQL/MYSQL related sql queries and it was very fast. I guess the same method doesn't works for Oracle.

My Query Below:

from sqlalchemy.engine import create_engine

DIALECT = 'oracle'
SQL_DRIVER = 'cx_oracle'
USERNAME = 'dbuser' #enter your username
PASSWORD = 'password'
HOST = 'hostname'
PORT = 1521
SERVICE = 'service' # db service name
ENGINE_PATH_WIN_AUTH = DIALECT + '+' + SQL_DRIVER + '://' + USERNAME + ':' + PASSWORD +'@' + HOST + ':' + str(PORT) + '/?service_name=' + SERVICE

Using the below query giving me error

engine = create_engine(ENGINE_PATH_WIN_AUTH, fast_executemany=True)

TypeError: Invalid argument(s) 'fast_executemany' sent to create_engine(), using configuration OracleDialect_cx_oracle/QueuePool/Engine.  Please check that the keyword arguments are appropriate for this combination of components.

If i do not use fast_executemany, i won't get any error. However the execution of the script is slow.

engine = create_engine(ENGINE_PATH_WIN_AUTH)    

sql_query = """SELECT col1, col2, col3
FROM Table
WHERE  date >= add_months(sysdate, -3)"""

df = pd.read_sql_query(sql_query, engine)

Do let me know if there are other alternative ways to execute sql queries faster in Oracle.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
等待大神答复

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...