สัปดาห์ที่แล้วมีสิ่งผิดปกติเกิดขึ้นในฐานข้อมูลของเรา ทั้งหมดในทันทีแอปพลิเคชันที่ถูกบล็อกสำหรับผู้ใช้ของเราที่ไม่สามารถบันทึกเอนทิตีใหม่ ฯลฯ หลังจากดูการตรวจสอบกิจกรรมของ SQL Server (2008 ด้วยโหมดความเข้ากันได้ 2005) ฉันเห็นสามรายการต่อไปนี้:
หลังจากระยะเวลาหนึ่งผู้ใช้จะได้รับการหมดเวลาเชื่อมต่อ เมื่อฉันฆ่ากระบวนการ 64 พวกเขาสามารถบันทึกได้ตามปกติอีกครั้ง
ปัญหาคือเอนทิตีที่พวกเขาพยายามบันทึกระหว่างบล็อกถูกแทรกลงในฐานข้อมูลมากกว่าหนึ่งครั้ง (สูงสุด 3 ครั้ง) แม้ว่าจะมีรหัสที่ควรป้องกันไม่ให้เกิดขึ้น (คอลัมน์หมายเลขที่ต้องไม่ซ้ำกัน แต่ไม่มีข้อ จำกัด ) ... การตรวจสอบเกิดขึ้นในรหัส)
เราใช้ Entity Framework 6.0
- มีใครบ้างที่รู้ว่าทำไมและเมื่อ ASYNC_NETWORK_IO รอประเภทเกิดขึ้นและจะหลีกเลี่ยงได้อย่างไร
- และพวกเขาหมายถึงอะไรกันแน่?