ทำไมsp_reset_connectionขั้นตอนการจัดเก็บระบบจึงใช้เวลานานกว่าสองสามมิลลิวินาทีในการดำเนินการตามที่ดูผ่าน SQL Server Profiler
ฉันทำการสืบค้นกลับอย่างง่ายจากระบบการผลิตโดยใช้ SQL Server Profiler จากนั้นใช้ SqlNexus เพื่อวิเคราะห์ SqlNexus ระบุว่า sp_reset_connection มีระยะเวลาสะสมสูงสุด - 33% ของการติดตามโดยรวม ระยะเวลาที่สังเกตได้อยู่ในช่วง 0-7 วินาที (12 ถึง 6,833,270 ไมโครวินาที) แต่มีค่าเฉลี่ยที่ 0.956 วินาที
ฉันเข้าใจว่า sp_reset_connection กำลังถูกเรียกใช้เมื่อมีการใช้การเชื่อมต่อร่วมซ้ำอีกครั้ง ฉันได้เห็นข้อเสนอแนะว่าสิ่งนี้อาจเกิดขึ้นได้เนื่องจากมีร่องรอยจากภายนอกแต่ดูเหมือนจะไม่เป็นเช่นนั้น
ฉันได้อ่านสิ่งที่เซิร์ฟเวอร์ทำเมื่อเรียกว่า sproc แต่ฉันไม่เชื่อว่าสิ่งเหล่านี้จะเป็นปัญหาในกรณีนี้ - รหัสไม่ออกจากธุรกรรมเปิดหรือตารางชั่วคราวขนาดใหญ่ที่จะต้องทำความสะอาด
ฉันยังดูที่/server/199974/sp-reset-connection-taking-a-long-time-to-runแต่ก็ไม่ได้มีประโยชน์
แก้ไข (2013-12-23): ในทุกกรณีการอ่านและการเขียนคือ 0 และ CPU เกือบตลอดเวลาเป็น 0 (เพียงสองอินสแตนซ์ของ CPU ที่ไม่เป็นศูนย์เท่านั้นซึ่งทั้งสองอยู่ที่ 16ms)
RPC:Starting, RPC:Completedและรอชนิดในช่วงเวลาสั้นแล้วมองผ่านข้อมูลเพื่อดูสิ่งที่รอ SPIDs ประเภทที่มีการเผชิญหน้าในช่วงเวลานั้น