Наша компания имеет множество баз данных 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.