나는 끔찍한 성능 쿼리가 있습니다24 시간마다 변수를 캐시하는 방법은 무엇입니까?
이select COUNT(distinct accession_id) count,MONTH(received_date) month,YEAR(received_date) year
into #tmpCounts
from F_ACCESSION_DAILY
where CLIENT_ID not in (select clientid from SalesDWH..TestPractices)
group by MONTH(received_date),YEAR(received_date)
대신이 쿼리를 기다리는, 내가 서버에 저장할 수있는 변수 또는 뷰 또는 다른 것을 만들고 싶습니다을 자동으로 계산하려면 서버가 24 시간마다.
그때 할 수있을 싶습니다 select * from #tmpCounts
어떻게 이것을 달성 할 수 ?
약간의 변형으로, 캐시 테이블은 요약을 얻을 때 기록하는'DATETIME' 열을 포함 할 수 있습니다. 예약 된 작업은 새 요약을 추가 한 다음 테이블에서 이전 데이터를 삭제할 수 있습니다. 그렇게하면 고객은 언제나 결과를 얻을 수 있습니다. 이 기술은 때로는 결과를 기다릴 때도 사용할 수 있습니다. 클라이언트는 저장 프로 시저를 통해 캐시에 액세스합니다. SP는 캐시 된 데이터의 수명을 확인하고 필요한 경우 데이터를 새로 고칩니다. 클라이언트는 경우에 따라 대기해야하지만, 아무도보고 있지 않을 때 캐시를 자주 업데이트하는 오버 헤드는 피할 수 있습니다. – HABO