SQL Server Profiler - วิธีกรองการติดตามเพื่อแสดงเหตุการณ์จากฐานข้อมูลเดียวเท่านั้น


381

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

คำตอบ:


574

ภายใต้ติดตามคุณสมบัติ> แท็บการเลือกเหตุการณ์> เลือกแสดงคอลัมน์ทั้งหมด ตอนนี้ภายใต้ตัวกรองคอลัมน์คุณควรเห็นชื่อฐานข้อมูล ป้อนชื่อฐานข้อมูลสำหรับส่วน Like และคุณควรเห็นร่องรอยเฉพาะสำหรับฐานข้อมูลนั้น


8
ฉันไม่ทราบว่านี่เป็นปัญหาทั่วไปหรือไม่ แต่เมื่อฉันเรียกใช้ตัวสร้างโปรไฟล์ชื่อฐานข้อมูลจะว่างเปล่าสำหรับค่าต่างๆที่ฉันติดตาม ฉันต้องใช้คอลัมน์ DatabaseID และหาค่าที่ถูกต้องที่จะป้อนโดยสอบถามตาราง sysdatabases ในฐานข้อมูลหลัก
จิม Birchall

34
ในการค้นหา DatabaseID: SELECT [ชื่อ], [dbid] จาก [master]. [dbo]. [ฐานข้อมูล] สั่งซื้อโดย [ชื่อ]
Simon

1
ขึ้นอยู่กับเทมเพลตที่คุณเลือกด้วยถ้ามี +1
เบื่อ

2
และคุณต้องbeforeเริ่มต้นการติดตาม หากคุณทำหลังจาก - ฟิลด์จะไม่สามารถแก้ไขได้!
DarkWalker

2
อย่าลืมหยุดการติดตามหรือเริ่มต้นก่อนที่จะเรียกใช้
Fery

42

ใน SQL 2005 คุณต้องแสดงคอลัมน์ชื่อฐานข้อมูลในการติดตามของคุณก่อน สิ่งที่ง่ายที่สุดที่จะทำคือเลือกเทมเพลตการปรับซึ่งมีคอลัมน์นั้นเพิ่มไว้แล้ว

สมมติว่าคุณได้เลือกเทมเพลตการปรับแต่งแล้วเพื่อกรอง:

  • คลิกแท็บ "การเลือกกิจกรรม"
  • คลิกปุ่ม "ตัวกรองคอลัมน์"
  • เลือกแสดงคอลัมน์ทั้งหมด (ด้านขวาลง)
  • เลือก "DatabaseName" คลิกเครื่องหมายบวกถัดจากกด Like ในบานหน้าต่างด้านขวาแล้วพิมพ์ชื่อฐานข้อมูลของคุณ

ฉันบันทึกการติดตามลงในตารางด้วยเสมอดังนั้นฉันสามารถทำแบบสอบถาม LIKE บนข้อมูลการติดตามได้หลังจากข้อเท็จจริง


8

จากการทดลองฉันสามารถสังเกตสิ่งนี้ได้:

เมื่อ SQL Profiler 2005 หรือ SQL Profiler 2000 ใช้กับฐานข้อมูลที่อยู่ใน SQLServer 2000 - ปัญหาที่กล่าวถึงยังคงมีอยู่ แต่เมื่อใช้ SQL Profiler 2005 กับฐานข้อมูล SQLServer 2005 จะทำงานได้สมบูรณ์แบบ!

โดยสรุปปัญหาดูเหมือนจะแพร่หลายใน SQLServer 2000 & แก้ไขใน SQLServer 2005

ทางออกสำหรับปัญหาเมื่อจัดการกับ SQLServer 2000 คือ (ตามที่อธิบายโดย wearejimbo)

  1. ระบุ DatabaseID ของฐานข้อมูลที่คุณต้องการกรองโดยการสอบถามตาราง sysdatabase ดังนี้

    SELECT * 
    FROM master..sysdatabases 
    WHERE name like '%your_db_name%'   -- Remove this line to see all databases
    ORDER BY dbid
  2. ใช้ DatabaseID Filter (แทนที่จะเป็น DatabaseName) ในหน้าต่าง New Trace ของ SQL Profiler 2000


4

ในคุณสมบัติของการติดตามคลิกเหตุการณ์เลือกแท็บที่ด้านบนติดกับทั่วไป จากนั้นคลิกตัวกรองคอลัมน์ ...ที่ด้านล่างขวา จากนั้นคุณสามารถเลือกสิ่งที่จะกรองเช่นหรือTextDataDatabaseName

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

นอกจากนี้ตรวจสอบให้แน่ใจว่าได้ทำเครื่องหมายในช่องทำเครื่องหมายยกเว้นแถวที่ไม่มีค่า 'หากคุณไม่พบช่องที่คุณต้องการกรองเช่นDatabaseNameไปที่แท็บทั่วไปและเปลี่ยนแม่แบบของคุณช่องว่างควรมีฟิลด์ทั้งหมด


1

สร้างเทมเพลตใหม่และตรวจสอบ DBname ใช้เทมเพลตนั้นสำหรับไฟล์การติดตามของคุณ

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