ASP.NET의 Caching에 관하여
캐싱은 메모리에서 빈번히 액세스 되는 데이터의 경우 그 효율을 증가 시키기 위해 HTTP 요청을 통해 페이지와 데이터를 유지하는데 사용되며 재생 비용 없이도 재사용 가능 하다. ASP.NET에서는 3종류의 캐싱이 사용 된다.
출력캐싱(Putput Caching) : 요청(Request)에 의해 생성된 동적인 응답(Response)을 모두 캐싱 한다.
부분 캐싱(Fragment Caching) : 요청(Request)에 의해 생성된 응답(Response)의 일부를 캐싱 한다.
데이터 캐싱(Data Caching) : 프로그램적으로 임의의 객체를 캐싱 한다. 이를 지원하기 위해 ASP.NET은 요청을 통한 데이터를 쉽게 유지 하도록 프로그래머를 위한 캐시 엔진을 제공 한다.
촐력 캐싱은 전체 페이지의 내용을 캐싱 할 때 유용 하다. 엑세스가 심한 사이트에서는 캐싱이 1분정도의 단위로 자주 일어 난다. 출력 캐싱에 위한 페이지 캐싱을 사용 하면 그 페이지에 대한 후속 요청은 그것을 수행하는 코드의 수행 없이 출력 페이지에 제공 된다.
---------------------
출력 캐싱
---------------------
SQL Server 2000의 pubs 데이터베이스의 Author 테이블에 SQLDataAdapter로 질의 하고 데이터 셋을 통해 페이지에 캐싱한 후 60초 마다 MyData Control에 다시 표시하면서 시간을 기록하게 하는 예제를 작성 해 보도록 하자.
1. 프로젝트 이름을 OutputCaching 이라고 하여 C#, ASP.NET 웹 응용 프로젝트를 하나 생성 하자.
2 .웹폼의 이름을 Webform1.aspx에서 OutputCaching.aspx 라고 이름을 변경 하자.
3. 다음 소스코드를 HTML 영역에 붙여 넣기를 하자.
<%@ OutputCache Duration="60" VaryByParam="gbn1" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<HTML>
<script language="C#" runat="server">
void Page_Load(Object Src, EventArgs E ) {
String selectCmd;
String gbn1 = Request["gbn1"];
//수가구분에 따라 병원 수가 테이블에서 데이터 추출
if( gbn1 == null ) {
selectCmd = "select sname1, sbun, sjum, skum from HSuga";
}
else {
selectCmd = "select sname1, sbun, sjum, skum from HSuga where gbn1 = " + gbn1 ;
}
SqlConnection myConnection = new SqlConnection(
"data source=localhost; initial catalog=DentalDB;" +
"persist security info=True;user id=sa;password=osstem");
SqlDataAdapter myCommand = new SqlDataAdapter(selectCmd, myConnection);
DataSet ds = new DataSet();
myCommand.Fill(ds, "HSuga");
MyDataGrid.DataSource=new DataView(ds.Tables[0]);
MyDataGrid.DataBind();
TimeMsg.Text = DateTime.Now.ToString("G");
}
</script>
<body>
<h3>
<font face="Verdana">출력캐싱 사용하기:</font>
</h3>
<b>수가구분별로 수가 보기:<%=Request["gbn1"]%></b>
<table cellspacing="0" cellpadding="3" rules="all" style="BORDER-LEFT-COLOR:black;BORDER-BOTTOM-COLOR:black;WIDTH:700px;BORDER-TOP-COLOR:black;BORDER-COLLAPSE:collapse;BACKGROUND-COLOR:#aaaadd;BORDER-RIGHT-COLOR:black">
<tr>
<td>
<a href="OutputCaching.aspx?gbn1=1">진찰료</a>
</td>
<td>
<a href="OutputCaching.aspx?gbn1=5">처치 수술료</a>
</td>
<td>
<a href="OutputCaching.aspx?gbn1=8">검사료</a>
</td>
</tr>
</table>
<p>
<ASP:DataGrid id="MyDataGrid" runat="server" Width="700px" BackColor="#CCCCFF" BorderColor="Black"
CellPadding="3" Font-Name="Verdana" Font-Size="8pt" HeaderStyle-BackColor="#aaaadd" Height="153px"
Font-Names="Verdana" PageSize="5">
<HeaderStyle BackColor="#AAAADD"></HeaderStyle>
</ASP:DataGrid>
<p><i>마지막 생성 일시:</i>
<asp:label id="TimeMsg" runat="server" /></p>
</body>
</HTML>
[실행결과]
60초 동안에는 한번 가지고 온 데이터를 캐싱 한다. 화면 하단의 마지막 생성 일시를 확인 하면 된다.
캐싱은 메모리에서 빈번히 액세스 되는 데이터의 경우 그 효율을 증가 시키기 위해 HTTP 요청을 통해 페이지와 데이터를 유지하는데 사용되며 재생 비용 없이도 재사용 가능 하다. ASP.NET에서는 3종류의 캐싱이 사용 된다.
출력캐싱(Putput Caching) : 요청(Request)에 의해 생성된 동적인 응답(Response)을 모두 캐싱 한다.
부분 캐싱(Fragment Caching) : 요청(Request)에 의해 생성된 응답(Response)의 일부를 캐싱 한다.
데이터 캐싱(Data Caching) : 프로그램적으로 임의의 객체를 캐싱 한다. 이를 지원하기 위해 ASP.NET은 요청을 통한 데이터를 쉽게 유지 하도록 프로그래머를 위한 캐시 엔진을 제공 한다.
촐력 캐싱은 전체 페이지의 내용을 캐싱 할 때 유용 하다. 엑세스가 심한 사이트에서는 캐싱이 1분정도의 단위로 자주 일어 난다. 출력 캐싱에 위한 페이지 캐싱을 사용 하면 그 페이지에 대한 후속 요청은 그것을 수행하는 코드의 수행 없이 출력 페이지에 제공 된다.
---------------------
출력 캐싱
---------------------
SQL Server 2000의 pubs 데이터베이스의 Author 테이블에 SQLDataAdapter로 질의 하고 데이터 셋을 통해 페이지에 캐싱한 후 60초 마다 MyData Control에 다시 표시하면서 시간을 기록하게 하는 예제를 작성 해 보도록 하자.
1. 프로젝트 이름을 OutputCaching 이라고 하여 C#, ASP.NET 웹 응용 프로젝트를 하나 생성 하자.
2 .웹폼의 이름을 Webform1.aspx에서 OutputCaching.aspx 라고 이름을 변경 하자.
3. 다음 소스코드를 HTML 영역에 붙여 넣기를 하자.
<%@ OutputCache Duration="60" VaryByParam="gbn1" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<HTML>
<script language="C#" runat="server">
void Page_Load(Object Src, EventArgs E ) {
String selectCmd;
String gbn1 = Request["gbn1"];
//수가구분에 따라 병원 수가 테이블에서 데이터 추출
if( gbn1 == null ) {
selectCmd = "select sname1, sbun, sjum, skum from HSuga";
}
else {
selectCmd = "select sname1, sbun, sjum, skum from HSuga where gbn1 = " + gbn1 ;
}
SqlConnection myConnection = new SqlConnection(
"data source=localhost; initial catalog=DentalDB;" +
"persist security info=True;user id=sa;password=osstem");
SqlDataAdapter myCommand = new SqlDataAdapter(selectCmd, myConnection);
DataSet ds = new DataSet();
myCommand.Fill(ds, "HSuga");
MyDataGrid.DataSource=new DataView(ds.Tables[0]);
MyDataGrid.DataBind();
TimeMsg.Text = DateTime.Now.ToString("G");
}
</script>
<body>
<h3>
<font face="Verdana">출력캐싱 사용하기:</font>
</h3>
<b>수가구분별로 수가 보기:<%=Request["gbn1"]%></b>
<table cellspacing="0" cellpadding="3" rules="all" style="BORDER-LEFT-COLOR:black;BORDER-BOTTOM-COLOR:black;WIDTH:700px;BORDER-TOP-COLOR:black;BORDER-COLLAPSE:collapse;BACKGROUND-COLOR:#aaaadd;BORDER-RIGHT-COLOR:black">
<tr>
<td>
<a href="OutputCaching.aspx?gbn1=1">진찰료</a>
</td>
<td>
<a href="OutputCaching.aspx?gbn1=5">처치 수술료</a>
</td>
<td>
<a href="OutputCaching.aspx?gbn1=8">검사료</a>
</td>
</tr>
</table>
<p>
<ASP:DataGrid id="MyDataGrid" runat="server" Width="700px" BackColor="#CCCCFF" BorderColor="Black"
CellPadding="3" Font-Name="Verdana" Font-Size="8pt" HeaderStyle-BackColor="#aaaadd" Height="153px"
Font-Names="Verdana" PageSize="5">
<HeaderStyle BackColor="#AAAADD"></HeaderStyle>
</ASP:DataGrid>
<p><i>마지막 생성 일시:</i>
<asp:label id="TimeMsg" runat="server" /></p>
</body>
</HTML>
[실행결과]
60초 동안에는 한번 가지고 온 데이터를 캐싱 한다. 화면 하단의 마지막 생성 일시를 확인 하면 된다.
오라클자바커뮤니티교육센터, 개발자전문교육, 개인80%환급
www.oraclejavacommunity.com
평일주간(9:30~18:10) 개강
(7/14)[기업100%환급]C#4.0,WinForm,ADO.NET프로그래밍
(7/14)[기업100%환급]SQL기초에서 Schema Object까지
(7/14)[기업100%환급]안드로이드개발자과정
(7/21)[기업100%환급]자바기초에서 JDBC, Servlet/JSP까지
(7/21)[기업100%환급]Spring ,MyBatis,Hibernate실무과정
(7/21)[기업100%환급]PL/SQL,ORACLE HINT,TUNING
(7/21)[채용예정교육]오라클자바개발잘하는신입뽑기프로젝트,교육전취업확정
평일야간(19:00~21:50) 개강
(7/09)닷넷(C#,Network,ADO.NET,ASP.NET)마스터과정
(7/15)SQL기초에서실무까지
(7/15)안드로이드개발자과정
(7/16)Spring3.X, MyBatis, Hibernate실무과정
(7/21)웹퍼블리싱 마스터
(7/22)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
(8/05)MyBatis3.X, Hibernate4.X ORM실무과정
주말(10:00~17:50) 개강
(7/12)SQL초보에서 Schema Object까지
(7/12)개발자를위한PLSQL,SQL튜닝,힌트
(7/13)C#,ASP.NET마스터
(7/19)JAVA,Network&WEB&Framework(자바기초에서웹스프링까지)
(7/19)Spring3.X, MyBatis, Hibernate실무과정
(7/19)웹퍼블리싱 마스터
(7/19)안드로이드개발자과정
(8/02)MyBatis3.X, Hibernate4.X ORM실무과정
(8/09)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
주말저녁(18:30~22:20) 개강
(8/02)JAVA,Network&WEB&Framework
(8/09)SQL기초에서실무까지
www.oraclejavacommunity.com
평일주간(9:30~18:10) 개강
(7/14)[기업100%환급]C#4.0,WinForm,ADO.NET프로그래밍
(7/14)[기업100%환급]SQL기초에서 Schema Object까지
(7/14)[기업100%환급]안드로이드개발자과정
(7/21)[기업100%환급]자바기초에서 JDBC, Servlet/JSP까지
(7/21)[기업100%환급]Spring ,MyBatis,Hibernate실무과정
(7/21)[기업100%환급]PL/SQL,ORACLE HINT,TUNING
(7/21)[채용예정교육]오라클자바개발잘하는신입뽑기프로젝트,교육전취업확정
평일야간(19:00~21:50) 개강
(7/09)닷넷(C#,Network,ADO.NET,ASP.NET)마스터과정
(7/15)SQL기초에서실무까지
(7/15)안드로이드개발자과정
(7/16)Spring3.X, MyBatis, Hibernate실무과정
(7/21)웹퍼블리싱 마스터
(7/22)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
(8/05)MyBatis3.X, Hibernate4.X ORM실무과정
주말(10:00~17:50) 개강
(7/12)SQL초보에서 Schema Object까지
(7/12)개발자를위한PLSQL,SQL튜닝,힌트
(7/13)C#,ASP.NET마스터
(7/19)JAVA,Network&WEB&Framework(자바기초에서웹스프링까지)
(7/19)Spring3.X, MyBatis, Hibernate실무과정
(7/19)웹퍼블리싱 마스터
(7/19)안드로이드개발자과정
(8/02)MyBatis3.X, Hibernate4.X ORM실무과정
(8/09)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
주말저녁(18:30~22:20) 개강
(8/02)JAVA,Network&WEB&Framework
(8/09)SQL기초에서실무까지
댓글 없음:
댓글 쓰기