【发布时间】:2020-09-10 08:41:45
【问题描述】:
在插入 sybase 临时表时性能极差 - 仅 1000 行大约需要 10 秒。 1000 行需要 46 秒,10000 行需要几分钟。我将有大约 100k 行。 有什么办法可以加快这个插入速度吗?可能是 Sybase 中的临时表配置不正确 - 如果是这样,我需要向我的 DBA 询问有关配置的什么信息?
Code :
engine = get_connection(db_constants.DB_RISK)
data = []
for i in range(1, 1000, 1):
values = ['AL' + str(i)]
data.append(values)
with engine.connect() as conn:
conn.execute("CREATE TABLE " + tmp_table_name + "(alias_id varchar(255));")
start = time.time()
for i in range(0, len(data), 1000):
loop_start = time.time()
with conn.begin():
stmt = "INSERT INTO #TMP (alias_id) VALUES (?)"
conn.execute(stmt, data[i:i + 1000])
loop_end = time.time()
print("batch " + str(i) + " time elapsed : " + str(loop_end - loop_start))
end = time.time()
print("total time elapsed : " + str(end - start))
【问题讨论】:
-
哪个 Sybase RDBMS(ASE?SQLAnywhere?IQ?Advantage?)和版本?
-
自适应服务器企业版
-
谁对此投了反对票,为什么?
标签: python sqlalchemy temp-tables sap-ase executemany