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

381

Bagaimana cara membatasi jejak SQL Server Profiler ke database tertentu? Saya tidak bisa melihat cara memfilter jejak untuk tidak melihat acara untuk semua database saat saya terhubung.

ConcernedOfTunbridgeWells
sumber

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.

Gulzar Nazim
sumber
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.

Harga Todd
sumber
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

Praveen
sumber
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.

6dev6il6
sumber
1

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


sumber