Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python SQL Server更新查询花费的时间太长_Python_Sql_Sql Server - Fatal编程技术网

Python SQL Server更新查询花费的时间太长

Python SQL Server更新查询花费的时间太长,python,sql,sql-server,Python,Sql,Sql Server,我从一列中提取数据,对其进行排序,并使用每个记录对应的排序结果更新同一表中的另一列。对170000条记录进行排序需要12分钟,但更新需要5小时。有没有办法加快更新?下面是我的代码: connection = pyodbc.connect('DRIVER={SQL Server};SERVER=server_name;DATABASE=db_name) cursor = connection.cursor() query = """update tbl set sorted_data= (?)

我从一列中提取数据,对其进行排序,并使用每个记录对应的排序结果更新同一表中的另一列。对170000条记录进行排序需要12分钟,但更新需要5小时。有没有办法加快更新?下面是我的代码:

connection = pyodbc.connect('DRIVER={SQL 
Server};SERVER=server_name;DATABASE=db_name)
cursor = connection.cursor()
query = """update tbl set sorted_data= (?) where Id= (?)"""
for row1 in rows1:  
     srow1 = re.split(';|,|\s', row1[0])
     sortrow1 = ';'.join(sorted(srow1, key=str.lower))
     values.append((sortrow1,row1[1]))
     count=count+1
cursor.executemany(query,values)
connection.commit()
connection.close()

使用这段代码,您将执行170000条单独的更新语句。开始时,SQL Server要做的第一件事就是编译整批UPDATE语句。而且更新速度非常慢!有关更多详细信息,请参阅本讨论:我看到讨论中提到的“turbodbc”,它进行批量更新。我将使用它进行测试。谢谢大家!@笑维吉尔