我有一個SQL需要7分鐘才能執行。它處理一年的數據,但即使如此,我覺得它需要很長時間。你有任何建議來優化它嗎?優化sql查詢
select count(s.numserviciomedico) AS total
from Actos a,
pacientes p,
Historias h,
serviciosmedicos s
where p.codigo=h.codpaciente
AND p.codigo=a.codPaciente
AND p.codigo = s.codPaciente
AND h.codPaciente = a.codPaciente
AND a.codpaciente=s.codPaciente
AND h.numHistoria = a.numHistoria
AND h.numHistoria = s.numHistoria
AND a.numHistoria = s.numHistoria
AND a.numActo = s.numActo
AND h.codSeccion=a.codSeccion
and p.codcompañia ='38'
and a.codseccion ='9'
and (CAST(FLOOR(CAST(a.fecAtencion AS float)) AS datetime) >='20090101')
and (CAST(FLOOR(CAST(a.fecAtencion AS float)) AS datetime) <='20091231')
and h.modo ='Urgente'
and datename(weekday,a.fecatencion)!= 'Sabado'
and datename(weekday,a.fecatencion)!= 'Domingo'
and CAST(FLOOR(CAST(a.fecAtencion AS float)) AS datetime) NOT IN (
select fechafestiva
from diasfestivos
)
你看過執行計劃了嗎? – 2010-01-29 08:21:12
請在您的項目中使用一些正確的代碼格式,例如SO和其他論壇。例如。就像我剛剛做的 – 2010-01-29 08:27:46
測試我已經看到了這部分中的問題繼電器: 和CAST(FLOOR(CAST(a.fecAtencion AS float))AS datetime)NOT IN(從diasfestivos選擇fechafestiva) 如果我評論它的查詢在1秒內執行... – VSP 2010-01-29 09:38:48