如何使用pyodbc加快向MS SQL Server进行批量插入的速度

7 浏览
0 Comments

如何使用pyodbc加快向MS SQL Server进行批量插入的速度

以下是我需要帮助的代码。

我需要运行它超过130万行,这意味着插入大约30万行需要40分钟。

我想通过使用批量插入来加快速度,是否可行?

或者是因为我通过for data in reader:迭代行部分导致的?

#打开准备好的csv文件
with open (os.path.join(newpath,outfile), 'r') as f:
    #将csv读取器链接到文件
    reader = csv.reader(f)
    #提取列名(与SQL表匹配)
    columns = next(reader)
    #去除额外的空格
    columns = [x.strip(' ') for x in columns]
    #开始SQL语句
    query = 'bulk insert into SpikeData123({0}) values ({1})'
    #将列名放入SQL查询 'query'
    query = query.format(','.join(columns), ','.join('?' * len(columns)))
    print '查询语句为:%s' % query
    #从cnxn开始游标(有效)
    cursor = cnxn.cursor()
    #逐行上传数据
    for data in reader:
        cursor.execute(query, data)
        cursor.commit()

我有意动态选择列标题(因为我想创建最具Python风格的代码)。

SpikeData123是表名。

0