Выполните один запрос вместо всех циклов:
select *
from table
where sector in ('Healthcare', 'Basic Materials', 'Utilities',
'Financial Services', 'Technology', 'Consumer'
'Defensive', 'Industrials', 'Communication Services', 'Energy', 'Real Estate', 'Consumer Cyclical', 'NULL'
) and
marketcap in ('3 - Large', '2 - Mid', '1 - Small') and
date between '2014-01-01 and '2020-03-18';
Существует много накладных расходов при выполнении большого количества небольших запросов, обычно один лучше.
Тем не менее, кажется, вы перемещать много данных. Интересно, нужно ли все это перемещение данных.
Странно, что вы просматриваете тысячи дат, но не включаете дату в запрос.