У меня есть следующий запрос, но он медленно запускается в моем sql editor
! Как улучшить его (написать мудрый), чтобы ускорить выполнение запроса.Как повысить производительность вложенного запроса?
SELECT year,main_code,name,father_code,main_code || '__' || year AS main_id,
(SELECT COUNT(*) FROM GK_main
WHERE father_code=sc.main_code AND
year= (SELECT MAX(year)FROM SS_job)) childcount
FROM GK_main sc WHERE year=(SELECT MAX(year)FROM SS_job)
Поскольку 'SELECT max (year) из SS_job' является статическим, сначала попробуйте сначала его перенести в локальную переменную, а затем просто обратитесь к ней. В противном случае вы выполняете 'SELECT max (год) из SS_job' дважды для каждой строки в GK_main – DeanOC
Не могли бы вы написать запрос, пожалуйста, –
, следуя логике DeanOC, вы можете поместить этот select ss_job в основное предложение FROM:' FROM gk_main sc, (выберите max (год) из ss_job), поскольку ss_job (year) ', будет иметь тот же эффект, используя внешнюю переменную, где этот макс будет выполняться только один раз. – ceinmart