У меня есть страница, на которой я запускаю исходный запрос SQL, чтобы получить список субъектов, затем я повторяю цикл над этим запросом и запускаю два дополнительных запроса для каждой записи, возвращенной из исходного запроса субъектов (я, случается, делаю это в ColdFusion, но не уверен, что это действительно имеет значение). Эти два дополнительных запроса выполняют СЧЕТЫ для этого конкретного субъекта, а затем выводят результаты (выведите имя субъекта, а затем два числа для этого субъекта). Я пытался улучшить производительность этой страницы и хотел узнать, смогу ли я как-нибудь объединить это в один запрос.
Начальный запрос:
SELECT subject_ID, subject_name
FROM Subjects
ORDER BY subject_name
Запросы внутри цикла исходного запроса:
SELECT COUNT(test_ID) as priority_count
FROM Test_Queue
WHERE priority_flag = 1 AND subject_ID = #SubjectQuery.subject_ID#
SELECT COUNT(test_ID) as locked_count
FROM Test_Queue
WHERE locked = 1 AND subject_ID = #SubjectQuery.subject_ID#
Предложения о том, как их можно оптимизировать? БД - это MS SQL 2008. Спасибо.