การแก้ปัญหา Pooling ของ Applicationsใน ASP.NET
วันที่เขียน 17/9/2555 11:11:43     แก้ไขล่าสุดเมื่อ 24/10/2568 10:51:46
เปิดอ่าน: 13729 ครั้ง

การพัฒนาระบบงานที่มีการติดต่อกับฐานข้อมูลตลอดเวลา บางเวลา หรือแบบมีจำนวน Client เข้ามาติดต่อเป็นจำนวนมาก เมื่อทำการเปิดฐานข้อมูล โดยการเปิด Connection ไปยัง Database จะทำให้เกิดการใช้งานทรัพยากรของระบบในจำนวนมากและทำให้ Application ที่ทำการเปิด Connection นั้นทำงานช้าลงไปด้วย และเมื่อมีการเปิดการติดต่ออยู่กับ Database ตัวเดียว หรือหลายๆ ตัวในระบบ จะทำให้เกิดการเชื่อมต่อการทำงานตลอดเวลา

การพัฒนาระบบงานที่มีการติดต่อกับฐานข้อมูลตลอดเวลา บางเวลา หรือแบบมีจำนวน Client เข้ามาติดต่อเป็นจำนวนมาก เมื่อทำการเปิดฐานข้อมูล โดยการเปิด Connection ไปยัง Database จะทำให้เกิดการใช้งานทรัพยากรของระบบในจำนวนมากและทำให้ Application ที่ทำการเปิด Connection นั้นทำงานช้าลงไปด้วย และเมื่อมีการเปิดการติดต่ออยู่กับ Database ตัวเดียว หรือหลายๆ ตัวในระบบ จะทำให้เกิดการเชื่อมต่อการทำงานตลอดเวลา

โดย Connection Pool จะทำ Connection เป็นแบบ Idle หรือ Open หรือ Reuse ได้ แทนที่จะเปิด New connection ใหม่ทุกครั้งที่มีการ Request ขอติดต่อกับ Database เมื่อ Connection ถูกปิด หรือ ถูกเปิด มันจะส่งค่ากลับมายัง Pool และมีสถานะเป็น Idle จนกว่ามี Request เพื่อขอ Connection มาใหม่ ถ้าเราใช้ Connection Pool อย่างมีประสิทธิภาพ คือ เปิดและปิดทุกครั้งของการ Connect DB ก็จะทำให้มีการใช้ Resource ในปริมาณที่น้อย

 

เพื่อให้ Connection Pool ให้มีประสิทธิภาพที่ดีที่สุดและทำให้ Performance ของ Application ที่งานได้ดีที่สุด

 

1.วิธีการแก้ปัญหาที่ดีที่สุดโดย ทำการ Closing connections เมื่อมีการ Open Connection ต้องมีการ Close ทุกครั้ง ตัวอย่างเช่น

 

     SqlConnection conn = new SqlConnection(myConnectionString);

     conn.Open();

     doSomething();

     conn.Close();          

2.ใช้คำสั่ง Try Catch มาใช้ในการทำงาน

     SqlConnection conn = new SqlConnection(myConnectionString);

     try

     {

          conn.Open();

          doSomething(conn);

     }

     finally

{

          conn.Close();          

     }

3. เขียนในรูปแบบของการ Using

     using (SqlConnection conn = new SqlConnection(myConnectionString))

     {

          conn.Open();

          doSomething(conn);

     }

 

4. เมื่อมีการ connection ไปยัง  a class ต่างๆ ต้องแน่ใจว่ามีการปิดการเชื่อมต่อแล้ว

OleDbCommand cmd new OleDbCommand(myUpdateQuery, getConnection());

     intres = cmd.ExecuteNonQuery();

     getConnection().Close(); // The connection returned from the first call to getConnection() is not being closed. Instead of closing your connection, this line creates a new one and tries to close it.

 

หรือใช้รูปแบบง่ายๆ ทุกครั้งในการเชื่อมต่อ  ดังนี้

conn = new SqlConnection();

try

{

conn.ConnectionString = "integrated security=SSPI;SERVER=YOUR_SERVER;DATABASE=YOUR_DB_NAME;Min Pool Size=5;Max Pool Size=60;Connect Timeout=2;";// Notice Connection Timeout set to only two seconds!

conn.Open();

}

catch(Exception)

{

if (conn.State != ConnectionState.Closed) conn.Close();

conn.ConnectionString = "integrated security=SSPI;SERVER=YOUR_SERVER;DATABASE=YOUR_DB_NAME;Pooling=false;Connect Timeout=45;";

conn.Open();

เพียงเท่านี้ ก็จะแก้ไขปัญหา Pooling ของ Application  ได้

คำสำคัญ :
กลุ่มบทความ :
หมวดหมู่ :
แชร์ :
https://erp.mju.ac.th/acticleDetail.aspx?qid=217
ความคิดเห็นทั้งหมด (0)
ไม่มีข้อมูลตามเงื่อนไขที่ท่านกำหนด
รายการบทความการแลกเปลี่ยนเรียนรู้หมวดหมู่ : กลุ่มงานเทคโนโลยีสารสนเทศ
การใช้ AI ในการพัฒนางานวิจัย » การใช้ AI ในการพัฒนางานวิจัย
การประยุกต์ใช้ปัญญาประดิษฐ์ (Artificial Intelligence: AI) ในกระบวนการวิจัยมีบทบาทสำคัญในการเพิ่มประสิทธิภาพและความแม่นยำของงานวิจัยในหลากหลายสาขา AI สามารถช่วยสนับสนุนการเก็บ วิเคราะห์ และประมวลผลข...
ปัญญาประดิษฐ์     กลุ่มงานตามสมรรถนะบุคลากร   กลุ่มงานเทคโนโลยีสารสนเทศ
ผู้เขียน ศิรินภา อ้ายเสาร์  วันที่เขียน 11/8/2568 14:41:55  แก้ไขล่าสุดเมื่อ 24/10/2568 3:47:05   เปิดอ่าน 1066  ครั้ง | แสดงความคิดเห็น 0  ครั้ง
การพัฒนาระบบสารสนเทศ » Generative Ai และ Promt สำหรับการสรุปบทความวิจัย
การสรุปบทความวิจัยโดยใช้ Generative AI ต้องอาศัยแนวทางการทำงานที่เป็นระบบและการออกแบบ Prompt ที่ชัดเจนเพื่อให้ได้ผลลัพธ์ที่มีคุณภาพ ด้านล่างนี้คือแนวทางการทำงานและตัวอย่างการออกแบบ Prompt สำหรับการ...
Generative AI  Promt  การสรุป  บทความวิจัย     กลุ่มงานตามสมรรถนะบุคลากร   กลุ่มงานเทคโนโลยีสารสนเทศ
ผู้เขียน สมนึก สินธุปวน  วันที่เขียน 8/8/2568 22:21:28  แก้ไขล่าสุดเมื่อ 20/10/2568 16:52:15   เปิดอ่าน 326  ครั้ง | แสดงความคิดเห็น 0  ครั้ง