[MSSQL] มาปรับปรุง Query การตรวจสอบเรื่อง Lock ให้ดีขึ้น
จาก Blog ตอนที่แล้ว ผมได้เขียนไปเกี่ยวกับ [MSSQL] ตรวจสอบ Table ว่าถูก Lock หรือใช้งานโดย Application หรือไม่ ? จาก Query เดิม เรารู้แค่ว่า Table ไหน Lock เท่านั้น คราวนี้มาลองเพิ่มข้อมูลที่จำเป็น เพื่อให้ Dev หรือ DBA มาวิเคราะห์กันได้ง่ายขึ้นครีบ โดยข้อมูลที่มเพิ่มใน Query ได้แก่ ชื่อ Database SQL ที่มีปัญหา รูปแบบการ Lock เครื่องไหนที่ทำ DB Lock และใช้ Application อะไร ใช้ User อะไรเข้ามาทำรายการ และเข้า DB มาตอนเวลาไหน Let’ s Go – ลองมาปรับ Query กัน SELECT OBJECT_NAME(P.OBJECT_ID) AS TABLENAME , RESOURCE_TYPE , RESOURCE_DESCRIPTION FROM SYS.DM_TRAN_LOCKS L JOIN SYS.PARTITIONS P ON L.RESOURCE_ASSOCIATED_ENTITY_ID = P.HOBT_ID จากตัว Query เดิม เราพบว่าข้อมูลหลายๆส่วน ในตัว DMV ของ MS SQL Server ไม่มีให้นะครับ ต้องเอา DMV ตัวอื่นๆ เข้ามาช่วยครับ ดังนี้ SYS.DM_EXEC_SESSIONS SYS.DM_EXEC_CONNECTIONS SYS.DM_TRAN_SESSION_TRANSACTIONS SYS.DM_TRAN_ACTIVE_TRANSACTIONS SYS.DM_EXEC_SQL_TEXT หลังจากเอา DMV ต่างๆ เข้ามาปรับปรุง โดย Query Version ใหม่…