Home > SQL Performance Tuning > การตั้ง Lock Timeout

การตั้ง Lock Timeout


ปกติแล้วในการทำงานแบบ multi-user ที่มีการใช้ข้อมูลพร้อมๆ กันหลายๆ คนนั้น มักจะมีการแก้ไขข้อมูลพร้อมๆ กันด้วย ซึ่งแน่นอนครับ คนที่เข้ามาแก้ไขข้อมูลก่อนก็จะทำการ lock table หรือ record ที่กำลังแก้ไขอยู่ ผลก็คือทำให้ user คนที่เข้ามาทีหลังไม่สามารถที่จะแก้ไขข้อมูลเดียวกันกับที่ user คนแรกเข้ามาแก้ไขอยู่ได้ จะต้องรอ รอจนกว่า user คนแรกทำการแก้ไขเสร็จแล้วปลด lock table หรือ record นั้นก่อน ซึ่งในบางครั้งก็อาจจะรอนานเป็น ชม.หรือเป็นวันก็ได้ครับ ถ้าเป็นการ lock table

คำสั่งต่อไปนี้เป็นวิธีการกำหนด lock timeout ไม่ใช่ query timeout นะครับ

    set lock_timeout 3000

โดยตัวเลข 3000 คือเวลาที่เรากำหนด หน่วยเป็น milli-second ซึ่งก็หมายความว่าถ้าเรารอจนถึงเวลา time out แล้ว ทาง user คนแรกยังแก้ไขไม่เสร็จหรือไม่ยอมปลด lock เราก็จะตัดสินใจ kill ตัวเองทันที หลังจากนั้นก็หาเวลา รัน stored procedure ที่เราต้องการใหม่อีกครั้งครับ

หลักสูตรอบรม SQL Tuning (click)

  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: