2013년 12월 26일 목요일

[예제]Oracle을 이용한 DataCaching [재직자무료교육/프로그래머교육/구로디지털IT교육,오라클/자바/닷넷/C#/iOS/안드로이드/아이폰교육]

[예제]Oracle을 이용한 DataCaching [재직자무료교육/프로그래머교육/구로디지털IT교육,오라클/자바/닷넷/C#/iOS/안드로이드/아이폰교육] 


자주 바뀌지 않는 데이터는 매번 DB에 가서 질의할 필요 없겠죠^^

아래는 SCOTT계정의 EMP Table을 읽어 웹브라우저에 뿌리는 예제인데

60초이내에서는 캐쉬에서 데이터를 가지고 옴으로서 페이지의 로딩 속도를

빠르게 할 수 있습니다.

================================================
DataCaching.aspx
================================================

<%@ Import Namespace="System.Data.OleDb" %>
<%@ Import Namespace="System.Data" %>
<HTML>
        <script language="C#" runat="server">

    void Page_Load(Object Src, EventArgs E) {

      DataView Source;

      // 캐시에서 아이템MyDataSet을 체크하여
      // 만일 없으면,MyDataSet을 만들어 캐시에 추가한다.

      Source = (DataView)Cache["MyDataSet"]; //캐시에서 아이템 체크하기

      if (Source == null) {
        string ConStr = ("Provider=MSDAORA;data source=wink;User ID=scott;Password=tiger");
        OleDbConnection Conn = new OleDbConnection(ConStr);

        OleDbDataAdapter myCommand = new OleDbDataAdapter(
        "select ename, sal, job from emp", Conn);

        DataSet ds = new DataSet();    //데이터셋 생성
        myCommand.Fill(ds, "emp");  //데이터셋 채우기

        Source = new DataView(ds.Tables["emp"]); //데이터뷰 생성
        //Cache["MyDataSet"] = Source;              //뷰를 캐시에 저장한다.
       
        // 매개변수는 다음과 같습니다.
        // key  : 항목을 참조하는 데 사용되는 캐시 키입니다.
                // value : 캐시에 추가되는 항목입니다.
                // dependencies : 항목에 대한 파일 또는 캐시 키 종속성입니다. 종속성이 변경되면 해당 개체는 사용할 수 없게 되어 캐시에서 제거됩니다. 종속성이 없는 경우 이 매개 변수에는 null 참조(Visual Basic의 Nothing)가 포함됩니다.
                // absoluteExpiration : 추가된 개체가 만료되고 캐시에서 제거되는 시간입니다.
                // slidingExpiration : 추가된 개체에 마지막으로 액세스한 시간과 해당 개체가 만료되는 시간 사이의 간격입니다. 이 값이 20분인 경우 해당 개체에 마지막으로 액세스한 후 20분이 경과되면 개체가 만료되고 캐시에서 제거됩니다.
                // priority : CacheItemPriority 열거형으로 표현되는, 개체에 대한 상대 비용입니다. 캐시에서는 개체를 제거할 때 이 값을 사용합니다. 비용이 저렴한 개체가 비용이 많이 드는 개체보다 캐시에서 먼저 제거됩니다.
                // onRemoveCallback  : 대리자가 제공된 경우에는 캐시에서 개체가 제거될 때 이 대리자가 호출됩니다. 캐시에서 개체가 삭제될 때 이 대리자를 사용하여 응용 프로그램에 알릴 수 있습니다.               
               
                //아래의 경우 60초가 지나면 캐시는 지워 진다.
        Cache.Add("MyDataSet", Source,  null, DateTime.Now.AddSeconds(60), TimeSpan.Zero, CacheItemPriority.High, null);

        CacheMsg.Text = "데이터셋이 오라클DB에서 직접 읽어옴";
      }
      else {
        CacheMsg.Text = "데이터셋이 캐시에서 검색되었음";
      }

      MyDataGrid.DataSource=Source;
      MyDataGrid.DataBind();
    }

        </script>
        <body>
                <form method="get" runat="server" ID="Form1">
                        <h3>
                                <font face="Verdana">데이터 캐싱</font>
                        </h3>
                        <i>
                                <asp:label id="CacheMsg" runat="server" />
                        </i>
                        <br>
                        <ASP:DataGrid id="MyDataGrid" runat="server" Width="500" BackColor="#ccccff" BorderColor="black" ShowFooter="false" CellPadding="3" CellSpacing="0" Font-Name="Verdana" Font-Size="8pt" HeaderStyle-BackColor="#aaaad" />
                </form>
        </body>
</HTML>


========================================================================================
[오프라인 개강예정강좌, 오프라인교육장에 오시면 보다 자세히 배울 수 있습니다.]

오라클자바커뮤니티에서 운영하는 개발자 전문교육 ,개인80%환급(
www.onjprogramming.co.kr)

[주간]
  [01/06][기업100%환급]Spring ,MyBatis,Hibernate실무과정
  [01/06][기업100%환급]SQL기초에서 Schema Object까지
  [01/06]C#,ASP.NET마스터
  [01/13]iPhone 하이브리드 앱 개발 실무과정
  [01/13][기업100%환급]PL/SQL,ORACLE HINT,TUNING
  [01/13][기업100%환급]자바기초에서 JDBC, Servlet/JSP까지
  [01/13][기업100%환급]HTML5,JavaScript,Ajax,jQUERY,JSON
  [01/16][채용확정]오라클자바실무개발자신입과정

[평일야간]
  [01/07]자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
  [01/07]안드로이드개발자과정
  [01/08]C#,ASP.NET마스터
  [01/09]iPhone하이브리드앱개발실무과정
  [01/09]웹퍼블리싱 마스터
  [01/09]Spring3.X, MyBatis, Hibernate실무과정
  [01/24]SQL초보에서실전전문가까지

[주말]
  [01/04]닷넷실무자를위한WPF개발자과정
  [01/04]Spring3.X,MyBatis,Hibernate실무과정
  [01/11]C#,ASP.NET마스터
  [01/11]JAVA&WEB프레임워크실무과정
  [01/11]안드로이드개발자과정
  [01/11]SQL초보에서전문가까지
  [01/18]웹퍼블리싱 마스터

홈페이지 바로가기 : http://www.oraclejavanew.kr/

댓글 없음:

댓글 쓰기