Я бы хотел выполнить 3 SQL-запроса одновременно, используя Pandas.
Каждый из 3 моих SQL-запросов занимает 1 минуту. Запуск их последовательно занимает в общей сложности 3 минуты. Запросы:
pd.read_sql(Query_1 , DB_Connection)
pd.read_sql(Query_2 , DB_Connection)
pd.read_sql(Query_3 , DB_Connection)
Обходной путь для сокращения времени выполнения - открыть 3 отдельных записных книжки IPython Jupyter, разместить по одному запросу в каждом и выполнить команду «Выполнить» на всех трех из них более или менее одновременно. Учитывая, что они работают одновременно в этом случае, общее время выполнения для всех 3 составляет 1 минуту.
Как добиться того же результата, сократив общее время выполнения до 1 минуты на одном ноутбуке IPython?
Что вы думаете об этом потенциальном решении с использованием потоков?
SQL_Queries = ["Query 1" , "Query 2" , "Query 3"]
SQL_Results = []
def myfunct(i):
SQL_Results.append(pd.read_sql(SQL_Queries[i]))
for i in range(3):
t = Thread(target=myfunct, args=(i,))
t.start()