sybase 一時テーブルに挿入すると、パフォーマンスが非常に低下します - わずか 1000 行で数十秒程度です。1000 行の場合は 46 秒、10000 行の場合は数分かかります。約10万行になります。この挿入を高速化する方法はありますか? 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))