“ Audit Logout” ใน SQL Server Profiler คืออะไร?


93

ฉันใช้การนำเข้าข้อมูล (โดยใช้ C # / Linq) และโดยปกติแล้วฉันพยายามเพิ่มประสิทธิภาพการสืบค้นของฉันให้มากที่สุด ด้วยเหตุนี้ฉันจึงเรียกใช้การติดตามบน DB โดยใช้ SQL Server Profiler โดยการติดตามของฉันถูกกรองด้วยชื่อล็อกอิน SQL ของฉัน (เป็นชื่อที่สามารถนำมาประกอบกับกระบวนการนำเข้าข้อมูลของฉันโดยไม่ซ้ำกัน)

น่าแปลกที่คำสั่ง SQL ส่วนใหญ่ของฉันรวดเร็วมาก :) - มีแบบสอบถามน้อยมากที่ทำลายเครื่องหมาย 1ms แต่เว้นระยะห่างระหว่างคำค้นหาทั้งหมดของฉันมีหลายแถวโดยที่ EventClass คือ "การเข้าสู่ระบบการตรวจสอบ" หรือ "การออกจากระบบการตรวจสอบ" และระยะเวลาของ "การออกจากระบบการตรวจสอบ" อาจนานถึงหนึ่งนาที!

สิ่งนี้เกี่ยวข้องกับการที่ฉันใช้ธุรกรรมในการนำเข้าหรือไม่ ถ้าเป็นเช่นนั้นมีวิธีใดบ้างในการค้นหาคำค้นหาที่มีคนจำนวนมากเพื่อที่ฉันจะได้ล้างข้อมูลเหล่านั้น


ที่เกี่ยวข้อง: stackoverflow.com/questions/279401/…
Ruben Bartelink

ที่เกี่ยวข้อง: stackoverflow.com/questions/44920375/…
Stefan

คำตอบ:


83

ถ้าจำไม่ผิดระยะเวลาของการล็อกเอาต์การตรวจสอบคือระยะเวลาที่เปิดการเชื่อมต่อ เช่นไม่ต้องทำอะไรกับความเร็วของคำสั่ง - เพียงระยะเวลาที่ 'ล็อกอิน' เข้าสู่ระบบ


9
น่าสนใจขอบคุณ! แต่เหตุใดจำนวนการอ่านจึงสูงมาก (~ 400,000) เมื่อจำนวนการอ่านสำหรับข้อความค้นหาระหว่าง "เข้าสู่ระบบ" และ "ออกจากระบบ" มีเพียง 56
Shaul Behr

เป็นจำนวนมิลลิวินาทีจากการเข้าสู่ระบบถึงออกจากระบบ ไม่ใช่จำนวนครั้งที่เกิดขึ้นจริงในการเชื่อมต่อที่ใช้ 400000ms ประมาณ 7 นาที ดูที่ CPU อ่านและเขียนคอลัมน์เพื่อพยายามค้นหาคำค้นหาที่มีการใช้งาน CPU และ / หรือดิสก์สูงซึ่งทั้งประสิทธิภาพการฆ่า
Thies

ฉันขอโทษคุณหมายความว่าReadsตอบสนองต่อการวัดเวลาใช่ไหม
Johnny_D

1
ค่า "การอ่าน" ออกจากระบบดูเหมือนสูงมากสำหรับฉันเนื่องจากมีการดำเนินการเพียงครั้งเดียวโดยมีการอ่าน 3 รายการระหว่างค่านี้และการเข้าสู่ระบบ
Triynko

1
ควรสังเกตว่าReadsคอลัมน์ไม่ได้แสดงถึงแถวที่ส่งกลับโดยคิวรี แต่ # ของโลจิคัลดิสก์อ่าน แบบสอบถามที่ไม่ส่งคืนข้อมูลใด ๆ เลยอาจสแกนทั้งตาราง 1 ล้านระเบียนโดยมองหาสิ่งที่จะส่งกลับซึ่งจะทำให้เกิดการอ่านจำนวนมาก ดังนั้นจำนวนการอ่านจึงไม่ได้มีความสัมพันธ์อย่างเป็นธรรมชาติกับ # ของข้อความค้นหา
Pace

12

เหตุการณ์การเข้าสู่ระบบ / ออกจากระบบเกี่ยวข้องกับการตั้งค่า / การยกเลิก IIRC เวลาคือ 'เข้าสู่ระบบเป็นเวลา' ซึ่งต่างจากระยะเวลาการประมวลผลเช่นเดียวกับเหตุการณ์บันทึกอื่น ๆ

โดยทั่วไปหนึ่งรายการจะซ่อนเหตุการณ์เหล่านี้เว้นแต่คุณจะสงสัยว่ามีปัญหากับการจัดการพูลการเชื่อมต่อเป็นต้น

เวลาดิบสำหรับแบทช์ควรเพียงพอที่จะวินิจฉัยเวลาที่กิจกรรมจริงกำลังดำเนินการรวมถึงผลกระทบของธุรกรรมใด ๆ เป็นต้น


เป็นไปได้หรือไม่ที่จะตรวจสอบรายละเอียดเพิ่มเติมว่า "การตั้งค่า / การฉีกขาด" โปรดดูคำถามที่เกี่ยวข้องต่อไปนี้: stackoverflow.com/questions/44920375/…
Stefan

3

คลาสเหตุการณ์ Audit Logout บ่งชี้ว่าผู้ใช้ออกจากระบบ (ล็อกออฟ) Microsoft SQL Server เหตุการณ์ในคลาสนี้เริ่มต้นโดยการเชื่อมต่อใหม่หรือโดยการเชื่อมต่อที่ใช้ซ้ำจากพูลการเชื่อมต่อ

เป็นเวลาทั้งหมดที่การเชื่อมต่อเข้าสู่ระบบรวมถึงเวลาว่างดังนั้นจึงไม่ได้บ่งบอกถึงปัญหาด้านประสิทธิภาพ นอกจากนี้การทำโปรไฟล์การเข้าสู่ระบบ / การออกจากระบบไม่น่าจะทำให้เกิดปัญหาด้านประสิทธิภาพ คุณควรมองหาคำค้นหาที่มีประสิทธิภาพต่ำซึ่งอาจเป็นไปได้ว่าการค้นหาที่ใช้งานได้ยาวนาน

สำหรับข้อมูลเพิ่มเติมขอแนะนำhttps://msdn.microsoft.com/en-us/library/ms175827.aspx :)


1
คุณแน่ใจหรือไม่ว่าเหตุการณ์การออกจากระบบการตรวจสอบจะเริ่มทำงานเมื่อมีการใช้การเชื่อมต่อซ้ำจากพูลการเชื่อมต่อ ฉันคิดว่าพูลการเชื่อมต่อเป็นตัวอย่างของสาเหตุที่คุณอาจเห็นระยะเวลาการล็อกการตรวจสอบสูงเนื่องจากการเชื่อมต่อเปิดอยู่ แต่ไม่ได้ใช้งานเกือบตลอดชีวิต
Adam Goodwin

2

นอกจากนี้ควรสังเกตด้วยว่าในคำตอบนี้การเข้าสู่ระบบการตรวจสอบ / ออกจากระบบอาจหมายถึงการเชื่อมต่อถูกนำกลับมาใช้ใหม่จาก / ส่งกลับไปยังพูลการเชื่อมต่อ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.