나는 모든 한 페이지에라는 기능이 있습니다ASP.net은 이런 식으로 캐시 할 수 있습니까?
/// <summary>
/// Gets the date of the latest blog entry
/// </summary>
public static DateTime GetNewestBlogDate()
{
DateTime ReturnDate = DateTime.Now.AddDays(30);
using (var db = new DataClassesDataContext())
{
var q = (from d in db.tblBlogEntries orderby d.date descending select new {d.date}).FirstOrDefault();
if (q != null)
ReturnDate = q.date;
}
return ReturnDate;
}
그것이 최신 블로그 항목의 날짜를 가져 와서는 사용자의 쿠키 값보다 큰의 경우는 블로그 옆에 new
아이콘을 표시,이 웹 사이트처럼 작동 링크.
페이지 요청 당 1 : 1이라는 페이지 요청 당이 기능을 계속 호출하는 것이 다소 낭비되는 것처럼 보입니다. 하루에 30,000 페이지 뷰, 즉 시간당 1,250 개의 데이터베이스 쿼리가 있다고 가정 해보십시오.
이 결과를 캐싱 할 수있는 방법이 있습니까? 매 시간마다 만료가 발생합니까?
마이크로 최적화라고 생각하지만, 페이지 당 10 개 정도 비슷한 기능이 있으면 가치있는 것을 추가 할 수 있습니다. 하나의 테이블로 그것을 비정규 화하여 한 번에 모두 되돌릴 수는 있지만 가능하면 관리하기가 쉽기 때문에 캐시하는 것이 좋습니다.
당신은 표준 [SQL 캐시 종속성] (http://www.dotnetcurry.com/ShowArticle.aspx?ID=263) 이외의 의미 : 여기 당신이 이것을 구현하는 방법의 예? – R0MANARMY