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)

Advertisements
  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: