NOLOCK (คำใบ้เซิร์ฟเวอร์ Sql) เป็นการปฏิบัติที่ไม่ดีหรือไม่?
ฉันอยู่ในธุรกิจการทำเว็บไซต์และแอพพลิเคชั่นที่ไม่สำคัญ -> เช่น ซอฟต์แวร์การธนาคารการบินอวกาศแอปพลิเคชันการตรวจสอบผู้ป่วยหนัก ฯลฯ คุณจะได้รับแนวคิด ดังนั้นด้วยข้อจำกัดความรับผิดชอบจำนวนมากการใช้คำใบ้ NOLOCK ในคำสั่ง Sql บางอย่างไม่ดีหรือไม่? เมื่อหลายปีก่อนมีผู้ดูแล Sql คนหนึ่งแนะนำว่าฉันควรใช้ NOLOCK ถ้าฉันพอใจกับ "การอ่านสกปรก" ซึ่งจะทำให้ฉันมีประสิทธิภาพมากขึ้นเล็กน้อยจากระบบของฉันเนื่องจากการอ่านแต่ละครั้งไม่ได้ล็อก ตาราง / แถว / สิ่ง ฉันยังบอกด้วยว่านี่เป็นวิธีแก้ปัญหาที่ยอดเยี่ยมหากฉันประสบปัญหาล็อคตาย ดังนั้นฉันจึงเริ่มทำตามความคิดนั้นเป็นเวลาสองสามปีจนกระทั่งผู้เชี่ยวชาญด้าน Sql ช่วยฉันด้วยโค้ดแบบสุ่มและสังเกตเห็น NOLOCKS ทั้งหมดในโค้ด sql ของฉัน ฉันถูกดุอย่างสุภาพและเขาพยายามอธิบายให้ฉันฟัง (ทำไมมันถึงไม่ใช่เรื่องดี) และฉันก็หลงทาง ฉันรู้สึกว่าแก่นแท้ของคำอธิบายของเขาคือ 'มันเป็นวิธีแก้ปัญหาแบบวงดนตรีสำหรับปัญหาที่ร้ายแรงกว่า .. โดยเฉพาะอย่างยิ่งถ้าคุณกำลังประสบกับภาวะชะงักงัน ดังนั้นแก้ไขต้นตอของปัญหา ' เมื่อเร็ว ๆ นี้ฉันได้ทำ googling เกี่ยวกับเรื่องนี้และเจอโพสต์นี้ ดังนั้นอาจารย์ sql db guru อาจารย์ช่วยสอนหน่อยได้ไหม