UPDATE nas_backup
SET fiber_serviceability_class = '0',
last_updated_ts = CURRENT_TIMESTAMP
WHERE location_id IN (
SELECT location_id
FROM (
WITH distinct_locs AS (
SELECT location_id, boundary_type
FROM (
SELECT location_id, boundary_type
FROM nc
WHERE technology_type = 'Fibre'
)
GROUP BY location_id, boundary_type
HAVING COUNT(*) = 1
)
SELECT nas.location_id
FROM distinct_locs, nas_backup nas
WHERE distinct_locs.location_id = nas.location_id
AND distinct_locs.boundary_type = 'FSA'
GROUP BY nas.location_id
)
);
Может кто-нибудь предложить способ оптимизации запроса. Это занимает более 5 минут.SQL Query Performance Tuning
В таблице nc содержится 16 миллионов записей, а таблица nas_backup имеет 2 миллиона записей.
Вы не указали какие-либо индексы, поэтому добавить их было бы хорошим местом для начала. –
Индексы для соответствующих столбцов. Я просто хочу получить более оптимизированную версию предоставленного запроса. –
Если вы можете предоставить фактический план выполнения, мы сможем определить, где узкие места? – sarin