SQL Server Profiler - Bagaimana cara memfilter jejak untuk hanya menampilkan acara dari satu database?


Jawaban:


574

Di bawah properti Lacak> tab Pilihan Acara> pilih tampilkan semua kolom. Sekarang di bawah filter kolom, Anda akan melihat nama database. Masukkan nama database untuk bagian Suka dan Anda akan melihat jejak hanya untuk database itu.


8
Saya tidak tahu apakah ini masalah umum, tetapi ketika saya menjalankan profiler nama database kosong untuk banyak nilai yang saya telusuri. Saya harus menggunakan kolom DatabaseID dan mencari tahu nilai yang benar untuk masuk dengan menanyakan tabel sysdatabases di master database
Jim Birchall

34
Untuk menemukan DatabaseID: SELECT [name], [dbid] FROM [master]. [Dbo]. [Sysdatabases] ORDER BY [name]
Simon

1
Juga tergantung pada template yang Anda pilih, jika ada. +1
beaudetious

2
Dan Anda harus melakukannya beforememulai jejak. Jika Anda melakukannya setelah - bidang tidak akan dapat diedit!
DarkWalker

2
Jangan lupa untuk menghentikan pelacakan atau memulai sebelum menjalankannya.
Fery

42

Di SQL 2005, Anda harus terlebih dahulu menampilkan kolom Nama Database di jejak Anda. Hal termudah untuk dilakukan adalah memilih template Tuning, yang sudah ditambahkan kolom itu.

Dengan asumsi Anda telah memilih templat Templat, untuk memfilter:

  • Klik tab "Pemilihan Acara"
  • Klik tombol "Filter Kolom"
  • Periksa Tampilkan semua Kolom (Kanan Bawah)
  • Pilih "DatabaseName", klik plus di samping Suka di panel sebelah kanan, dan ketikkan nama basis data Anda.

Saya selalu menyimpan jejak ke tabel juga sehingga saya bisa melakukan SEPERTI pertanyaan pada data jejak setelah fakta.


8

Dengan percobaan saya dapat mengamati ini:

Ketika SQL Profiler 2005 atau SQL Profiler 2000 digunakan dengan database yang berada di SQLServer 2000 - masalah yang disebutkan tetap ada, tetapi ketika SQL Profiler 2005 digunakan dengan database SQLServer 2005, ia berfungsi dengan sempurna!

Dalam Ringkasan, masalah ini tampaknya lazim di SQLServer 2000 & diperbaiki di SQLServer 2005.

Solusi untuk masalah ini ketika berhadapan dengan SQLServer 2000 adalah (seperti yang dijelaskan oleh wearejimbo)

  1. Identifikasi DatabaseID dari database yang ingin Anda filter dengan menanyakan tabel sysdatabases seperti di bawah ini

    SELECT * 
    FROM master..sysdatabases 
    WHERE name like '%your_db_name%'   -- Remove this line to see all databases
    ORDER BY dbid
  2. Gunakan Filter DatabaseID (bukan DatabaseName) di jendela Jejak Baru dari SQL Profiler 2000


4

Di properti Lacak, klik tab Pilihan Acara di bagian atas di sebelah Umum . Kemudian klik Filter Kolom ... di kanan bawah. Anda kemudian dapat memilih apa yang akan difilter, seperti TextDataatau DatabaseName.

Luaskan simpul Suka dan masukkan filter Anda dengan %tanda persentase suka %MyDatabaseName%atau %TextDataToFilter%. Tanpa %%tanda - tanda filter tidak akan berfungsi.

Juga, pastikan untuk mencentang kotak centang Kecualikan baris yang tidak mengandung nilai ' Jika Anda tidak dapat menemukan bidang yang ingin Anda filter seperti DatabaseNamepergi ke tab Umum dan ubah Template Anda , kosong harus berisi semua bidang.


1

Buat template baru dan periksa DBname. Gunakan template itu untuk tracefile Anda.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.