..


ลิงก์ผู้สนับสนุน

ข้อมูลการใช้แคช

แคชข้อมูลเป็นเครื่องมือที่มีประโยชน์สำหรับการปรับปรุงประสิทธิภาพของระบบซอฟต์แวร์ใด ๆ ความคิดคือการที่จะนำข้อมูลที่ใช้บ่อยในอุปกรณ์ที่มีประสิทธิภาพมาก ในความเป็นจริงถึงแม้ว่าเวลาในการเข้าถึงอุปกรณ์จัดเก็บข้อมูลจำนวนมากอย่างต่อเนื่องเพื่อปรับปรุงตัวอย่างเช่นการเข้าถึงข้อมูลที่อาศัยอยู่ในฮาร์ดไดรฟ์ยังคงเป็นมากช้ากว่าที่เข้าถึงพวกเขาในขณะที่พวกเขาอยู่ในหน่วยความจำ ดังนั้นจึงทำให้มีข้อมูลที่ใช้งานได้รวดเร็วขึ้นอย่างมีนัยสำคัญในการปรับปรุงประสิทธิภาพของการใช้งานของเรา

ในแคชของ ASP.NET จะขนานไปกับการใช้งานของเราและสามารถใช้ได้ผ่าน HttpContext และ System.Web.UI.Page ใช้แคชจะคล้ายกันมากกับสิ่งที่เห็นสำหรับวัตถุ Session ที่คุณสามารถได้รับการเข้าถึงวัตถุในมันผ่านดัชนี นอกจากนี้คุณยังสามารถควบคุมระยะเวลาของการตั้งค่าของวัตถุและการเชื่อมต่อระหว่างวัตถุที่อยู่ในแคชและแหล่งข้อมูลทางกายภาพ

การจัดการแคชใน ASP.NET เป็นเรื่องง่ายมากที่จะเห็นวิธีการดำเนินการกับตัวอย่าง สมมติว่าคุณมี GetData () วิธีการที่ทำให้การเชื่อมต่อกับฐานข้อมูลและส่งกลับ DataTable






 ป้องกัน DataTable GetData ()







 {



  



 DataTable dt = null;



  



 dt = new DataTable ();



  



 strConnection String ="สตริงการเชื่อมต่อไปยัง DB";



  



 DbProviderFactory f =



  



 DbProviderFactories.GetFactory ("System.Data.SqlClient");



  



 ใช้ (DbConnection f.CreateConnection conn = ())



  



 {



    



 conn.ConnectionString strConnection =;



    



 conn.Open ();



    



 DbCommand คำสั่ง = f.CreateCommand ();



    



 command.CommandText ="* เลือกจาก tablename";



    



 command.Connection = conn;



    



 IDataReader อ่าน = Command.ExecuteReader ();



    



 dt.Load (Reader);



    



 reader.Close ();



    



 conn.Close ();



  



 }



  



 กลับ dt;







 }



เรายังมีวิธีอื่น B​​indData () ที่ร่วมข้อมูลที่ส่งกลับโดย GetData () ที่จะนำเสนอ DataList ในหนึ่งในแบบฟอร์มบนเว็บของเรา






 BindData ป้องกัน DataTable ()







 {



  



 DataTable dt;



  



 this.GetData dt = ();



  



 this.DataList1.DataSource dt =;



  



 this.DataBind ();



  



 กลับ dt;







 }



วิธีการที่เราต้องการสำหรับตัวอย่างของเราก็คือ CreaTabella ที่ส่งกลับโครงสร้างของตารางให้เป็นไปตามรูปแบบบาง






 CreaTabella ป้องกัน DataTable (DataTable tableSchema)







 {



  



 DataTable table = ใหม่ DataTable ();



  



 foreach (DataColumn dc tableSchema.Columns)



  



 {



    



 tabella.Columns.Add (dc.ColumnName,



    



 dc.DataType);



  



 }



  



 กลับตาราง;







 }



วิธีการ GetData () และ BindData () จะเรียกว่าในการ Page_Load เหตุการณ์ดังต่อไปนี้






 การป้องกันถือเป็นโมฆะ Page_Load (ผู้ส่งวัตถุ, EventArgs e)







 {



  



 ถ้า (IsPostBack)



  



 {



    



 DataTable dt = BindData ();



    



 DataTable elementiTabella this.CreaTabella = (dt);



    



 session ["elementiTabella"] = elementiTabella;



  



 }







 }



แล้วครั้งหน้าจะมีการสร้างแต่ละครั้งที่คุณเชื่อมต่อกับฐานข้อมูลและโหลดข้อมูลที่ ในบริบทที่การร้องขอมาจากภายในของลูกค้าสิ่งที่อาจจะเป็นที่ยอมรับสำหรับการใช้งานขนาดใหญ่เพื่อตอบสนองความต้องการของลูกค้าหลายพันรายที่นี้ไม่ยอมรับ ในความเป็นจริงของการดำเนินงานการเข้าถึงฐานข้อมูลของที่ระลึกมีราคาแพงมากในเวลาและควรจะลดลง

ณ จุดนี้เราสามารถทำประมาณการบางส่วนของลักษณะของข้อมูลที่จัดการโดยโปรแกรมประยุกต์ของเรา เพียงแค่สงสัยว่าถ้าคุณจำเป็นต้องโหลดข้อมูลทุกครั้งที่หากพวกเขาไม่เปลี่ยนแปลงบ่อย หากมีดังกล่าวต้องมีที่เราสามารถคิดของการจัดเก็บข้อมูลดังกล่าวในสื่อที่ช่วยให้การเข้าถึงเดียวกันอย่างรวดเร็วและโดยไม่ต้องเชื่อมต่อไปยังฐานข้อมูล (ตัวอย่างเช่นคอมพิวเตอร์ของหน่วยความจำภายใน) เป็น ในวิธีนี้โปรแกรมจะตอบสนองการร้องขอพร้อมกันมากขึ้นจากลูกค้า เห็นได้ชัดว่าหากข้อมูลที่ประมวลผลโดยโปรแกรมของเราจะเปลี่ยนบ่อยมากวิธีการนี​​้จะไม่เหมาะสม

ขั้นตอนในการทำแคชข้อมูลมีดังนี้ :

  1. ตรวจสอบว่ามีข้อมูลที่กำหนดอยู่ในแคช
  2. หากมีการใช้แคช
  3. หากมีแคชจะได้รับมันเพื่อเชื่อมต่อกับฐานข้อมูลไม่เป็น
  4. การจัดเก็บองค์ประกอบของการโหลดในแคชเพียงสำหรับการใช้งานในอนาคต

ณ จุดนี้เรากำลังจะเปลี่ยนวิธีการที่เราเห็นที่จุดเริ่มต้นของบทนี้สำหรับการจัดการข้อมูลแคช ที่นี่วิธีการ GetData () ที่ถูกปรับเปลี่ยนเป็น






 ป้องกัน DataTable GetData ()







 {



  



 DataTable dt = null;

  

  



 แคช dt = (DataTable) ["TabellaInCache"];

  

  



 ถ้า (DT == null)



  



 {



    



 dt = new DataTable ();



    



 strConnection String ="สตริงการเชื่อมต่อไปยัง DB";



    



 DbProviderFactory DbProviderFactories.GetFactory = f ("System.Data.SqlClient");



    



 ใช้ (DbConnection f.CreateConnection conn = ())



    



 {



      



 conn.ConnectionString strConnection =;



      



 conn.Open ();



      



 DbCommand คำสั่ง = f.CreateCommand ();



      



 command.CommandText ="* เลือกจาก tablename";



      



 command.Connection = conn;



      



 IDataReader อ่าน = Command.ExecuteReader ();



      



 dt.Load (Reader);



      



 reader.Close ();



      



 conn.Close ();



    



 }



  



 }



  



 แคช ["TabellaInCache"] = dt;



  



 กลับ dt;







 }



ใน GetData วิธีการใหม่ () มีการตรวจสอบก่อนการดำรงอยู่ของตารางที่อยู่ในแคช ถ้าตารางไม่ได้อยู่ถ้า (DT == null) มันถูกสร้างขึ้นดังที่ทำก่อนหน้านี้ แต่ถ้ามีเป็นส่วนหนึ่งของการเชื่อมต่อฐานข้อมูลและข้อมูลที่สกัดคือ bypassed สมบูรณ์ ในกรณีใด ๆ ก่อนที่จะกลับไปที่ตารางจะถูกเก็บไว้ในแคช (Cache ["TabellaInCache"] = dt;) เหล่านี้การเปลี่ยนแปลงเล็กอย่างมีนัยสำคัญสามารถลดต้นทุนการโหลดหน้าเว็บ (ถ้าคุณได้สร้างไว้แล้วเป็นช่วงเวลาที่ชัดเจน)

เห็นได้ชัดว่าบทเรียนนี้จะทำให้คุณมีความรู้สึกที่มีศักยภาพของแคชของข้อมูลและการสำรวจรูปแบบต่างๆเพื่อการจัดการแคช, วิธีการที่ใช้ได้และดูว่าคนที่อาจจะมีประโยชน์เวลาผมขอเชิญคุณเพื่อให้คำปรึกษาอย่างเป็นทางการของไมโครซอฟท์ .

ความช่วยเหลือเกี่ยวกับ Visual Studio ASP.Net
E - Learning
ASP (Advanced) ASP (Advanced)
หลักสูตรเต็มสำหรับการสร้างเว็บไซต์แบบไดนามิก จาก 39 €
ASP.NET (หลักสูตร) ASP.NET (หลักสูตร)
หลักสูตรเต็มสำหรับสร้างเว็บแอพพลิเคชันจาก 49 €
SQL และฐานข้อมูล (หลักสูตร) SQL และฐานข้อมูล (หลักสูตร)
การสร้างและจัดการฐานข้อมูลเชิงสัมพันธ์ จาก 39 €
ลิงก์ผู้สนับสนุน