Speed up Python executemany
<p>I'm inserting data from one database to another, so I have 2 connections (Conn1 and Conn2). Below is the code (using pypyodbc).</p>

<pre><code> import pypyodbc

 Conn1_Query = "SELECT column FROM Table"

 Conn1_Cursor.execute(Conn1_Query)
 Conn1_Data = Conn1_Cursor.fetchall()

 Conn1_array = []

 for row in Conn1_Data:
      Conn1_array.append(row)
</code></pre>

<p>The above part runs very quickly.</p>

<pre><code> stmt = "INSERT INTO TABLE(column) values (?)"
 Conn2_Cursor.executemany(stmt, Conn1_array)
 Conn2.commit()
</code></pre>

<p>This part is extremely slow. I've also tried to do a for loop to insert each row at a time using cursor.execute, but that is also very slow. What am I doing wrong and is there anything I can do to speed it up? Thanks for taking a look.</p>

<p>Thought I should also add that the Conn1 data is only ~50k rows. I also have some more setup code at the beginning that I didn't include because it's not pertinent to the question. It takes about 15 minutes to insert. As a comparison, it takes about 25 seconds to write the output to a csv file.</p>