Python 使用pyodbc快速连接到SQL Server
我从消息总线获取json数据,并将该json转储到数据库中。我已经让psycopg2以每秒3000条的速度进入postgres了。由于一些原因,我们后来转向了SQL Server 2016,我的条目下降到每秒100条左右 我有一个名为insert_into()的函数,它将json插入数据库。我对insert_into()函数所做的全部工作就是将库更改为pyodbc和连接字符串。似乎每次调用我的函数(“conn”在下面的代码中)时,我的速度都会因为建立连接而减慢。如果我将设置连接的线路移到insert_into函数之外,我的速度就会恢复。我只是想知道两件事:Python 使用pyodbc快速连接到SQL Server,python,sql-server,pyodbc,Python,Sql Server,Pyodbc,我从消息总线获取json数据,并将该json转储到数据库中。我已经让psycopg2以每秒3000条的速度进入postgres了。由于一些原因,我们后来转向了SQL Server 2016,我的条目下降到每秒100条左右 我有一个名为insert_into()的函数,它将json插入数据库。我对insert_into()函数所做的全部工作就是将库更改为pyodbc和连接字符串。似乎每次调用我的函数(“conn”在下面的代码中)时,我的速度都会因为建立连接而减慢。如果我将设置连接的线路移到inse
def insert_into():
conn = None
try:
conn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER=server1;DATABASE=json;UID=user;PWD=pass')
cur = conn.cursor()
for i in buffer_list:
command = 'INSERT INTO jsonTable (data) VALUES (%s)' % ("'" + i + "'")
cur.execute(command)
cur.close()
conn.commit()
except (Exception, pyodbc.DatabaseError) as error:
print(error)
finally:
if conn is not None:
conn.close()
conn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER=server1;DATABASE=json;UID=user;PWD=pass')
def insert_into():
#conn = None
try:
cur = conn.cursor()
for i in buffer_list:
command = 'INSERT INTO jsonTable (data) VALUES (%s)' % ("'" + i + "'")
cur.execute(command)
cur.close()
conn.commit()
except (Exception, pyodbc.DatabaseError) as error:
print(error)
This daemon runs 24/7 and any advice on setting up a fast connection to MSSQL will be greatly appreciated.
SQL Server的Fast:
def insert_into():
conn = None
try:
conn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER=server1;DATABASE=json;UID=user;PWD=pass')
cur = conn.cursor()
for i in buffer_list:
command = 'INSERT INTO jsonTable (data) VALUES (%s)' % ("'" + i + "'")
cur.execute(command)
cur.close()
conn.commit()
except (Exception, pyodbc.DatabaseError) as error:
print(error)
finally:
if conn is not None:
conn.close()
conn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER=server1;DATABASE=json;UID=user;PWD=pass')
def insert_into():
#conn = None
try:
cur = conn.cursor()
for i in buffer_list:
command = 'INSERT INTO jsonTable (data) VALUES (%s)' % ("'" + i + "'")
cur.execute(command)
cur.close()
conn.commit()
except (Exception, pyodbc.DatabaseError) as error:
print(error)
This daemon runs 24/7 and any advice on setting up a fast connection to MSSQL will be greatly appreciated.
你的解决办法对我来说似乎是合法的。对于Postgres,您可能需要查看连接池。不过,我从来没有在SQLServer中使用过这个。您可以研究如何使用SSI,但我从在SQL Server的许多任务中使用SSI改为使用Python,因为SSI看起来非常敏感并且容易失败。