从大量数据库中获取信息的正确方法

时间:2019-03-18 08:10:34

标签: python multithreading multiprocessing python-multiprocessing python-multithreading

我们公司拥有许多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中使用多线程并不是很好。

0 个答案:

没有答案