Я ищу обновление для партии, когда все задания для этой партии завершены. Для этого я хочу сравнить общее количество рабочих мест и общее количество выполненных работ. Я делаю это с помощью запроса ниже, однако это довольно медленный запрос. Любые предложения по улучшению этого? Или альтернативные способы приблизиться к основному обновлению? Индекс только на JobID (PK)Подсчет итоговых записей по сравнению с статусом
SELECT DISTINCT j.BatchId,
j.JobStatusId,
COUNT(j.BatchId) OVER(PARTITION BY j.BatchID, j.JobStatusID),
COUNT(j.BatchId) OVER(PARTITION BY j.BatchID)
FROM [Job] j
ORDER BY j.BatchID
Какие индексы у вас есть на столе? Также как выглядит план выполнения? –
Сортировка занимает почти 65%. При обновлении вам не нужно упорядочивать и отличать. Таким образом, восстановление обоих является первым шагом. –
«Для этого я хочу сравнить общее количество заданий и общее количество завершенных». Зачем? Почему бы просто не запросить то, что вам нужно: партии, у которых нет неполных заданий? Кажется, пустая трата времени считать все. –