我们公司拥有许多MS SQL数据库(超过130个)。我的目标是从它们每个中获取一些简单数据(实际上这只是一个int值)。此任务需要每5分钟工作一次。到目前为止,我有以下代码:
values = {}
for server in serversList:
serverName = server.server_name
database = server.db_name
user = 'user'
password = 'password'
try:
conn = pyodbc.connect('DRIVER={SQL Server};SERVER='+serverName+';DATABASE='+database+';UID='+user+';PWD='+ password)
cursor = conn.cursor()
cursor.execute('SELECT value FROM table')
value = cursor.fetchval()
values['serverName'] = value
conn.close()
总处理时间约为2.5-3分钟。
我该如何优化?我试图使其异步,但是MS SQL不支持异步工作。也许我需要使用多线程?我听说在Python中使用多线程并不是很好。