这是我的情况:
问题:如果我要向SQL视图联接传递太多记录,则可能会影响性能。我想避免python代码减慢SQL Server性能。还有其他解决方法吗?
谢谢。
答案 0 :(得分:0)
请考虑一次您从Pandas转储到的临时表。然后在视图中运行与帐号匹配的插入选择追加查询。所有匹配和附加过程都在服务器上运行。以下是带有sqlalchemy
的素描示例:
# PANDAS DUMP TO TABLE, REPLACING EACH TIME
my_df.to_sql(name="raw_df_tmp", con=engine, if_exists="replace", index=False)
# SQL INSERT-SELECT (VIA TRANSACTION)
with engine.begin() as conn:
sql = """INSERT INTO my_table (Col1, Col2, Col3, ...)
SELECT Col1, Col2, Col3, ...
FROM raw_df_tmp r
WHERE r.accountnumber IN
(SELECT accountnumber FROM my_view)
"""
conn.execute(sql)
engine.dispose()