-1

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))
4

1 に答える 1