2014년 8월 6일 수요일

[예제]Oracle을 이용한 DataCaching[닷넷C#교육/ADO.NET강좌/ASP.NET교육잘하는곳/C#,ASP.NET교육추천/닷넷실무교육/.NET,C#/ADO.NET교육/닷넷학원/ASP.NET실무교육]

자주 바뀌지 않는 데이터는 매번 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> 



평일주간[100%환급과정]
(8/08)Spring,MyBatis,Hibernate실무과정
(8/08)C#4.0,WinForm,ADO.NET
(8/11)SQL기초에서 Schema Object까지
(8/18)자바기초JDBC,Servlet/JSP까지
(8/18)안드로이드개발자과정
(8/18)PL/SQL,ORACLE HINT,TUNING
(8/25)오라클자바채용확정교육
평일야간[개인80%환급]
(8/11)SQL기초에서실무까지
(8/11)안드로이드개발자과정
(8/12)Spring, MyBatis, Hibernate
(8/13)C#,Network,ADO.NET,ASP.NET
(8/13)HTML5,CSS3,Ajax,jQuery마스터
(8/28)자바JSP,jQuery,Spring,MyBatis
주말주간[개인80%환급]
(8/09)SQL기초에서실무까지
(8/09)안드로이드개발자과정
(8/09)자바JSP,Ajax,jQuery,Spring,MyBatis
(8/16)C#,ASP.NET마스터(8/16)웹퍼블리싱 마스터
(8/16)Spring, MyBatis, Hibernate
(8/23)JAVA,Network&WEB&Framework
주말야간[개인80%환급]
(8/09)SQL기초에서실무까지
(8/23)JAVA,Network&WEB&Framework

댓글 없음:

댓글 쓰기