Profiler di SQL Server: come filtrare la traccia per visualizzare solo gli eventi di un database?

StackOverflow https://stackoverflow.com/questions/272730

Domanda

Come posso limitare una traccia di SQL Server Profiler a un database specifico? Non riesco a vedere come filtrare la traccia per non vedere gli eventi per tutti i database sull'istanza a cui mi collego.

È stato utile?

Soluzione

In Proprietà di traccia > Scheda Selezione eventi > seleziona mostra tutte le colonne. Ora sotto i filtri di colonna, dovresti vedere il nome del database. Immettere il nome del database per la sezione Mi piace e dovresti vedere le tracce solo per quel database.

Altri suggerimenti

In SQL 2005, è innanzitutto necessario mostrare la colonna Nome database nella traccia. La cosa più semplice da fare è scegliere il modello di ottimizzazione, che ha già aggiunto quella colonna.

Supponendo che sia selezionato il modello di ottimizzazione, per filtrare:

  • Fai clic su " Selezione eventi " scheda
  • Fai clic su " Filtri colonna " pulsante
  • Seleziona Mostra tutte le colonne (lato destro in basso)
  • Seleziona " DatabaseName " ;, fai clic sul segno più accanto a Mi piace nel riquadro di destra e digita il nome del tuo database.

Salvo sempre anche la traccia su una tabella in modo da poter fare domande LIKE sui dati della traccia dopo il fatto.

Per esperimento sono stato in grado di osservare questo:

Quando SQL Profiler 2005 o SQL Profiler 2000 viene utilizzato con il database residente in SQLServer 2000 - il problema menzionato persiste, ma quando SQL Profiler 2005 viene utilizzato con il database SQLServer 2005, funziona perfettamente!

In Riepilogo, il problema sembra essere prevalente in SQL Server 2000 & amp; rettificato in SQLServer 2005.

La soluzione al problema quando si ha a che fare con SQLServer 2000 è (come spiegato da wearejimbo)

  1. Identifica l'ID database del database che desideri filtrare eseguendo una query sulla tabella dei database di sistema come di seguito

    SELECT * 
    FROM master..sysdatabases 
    WHERE name like '%your_db_name%'   -- Remove this line to see all databases
    ORDER BY dbid
    
  2. Utilizza il filtro DatabaseID (anziché DatabaseName) nella finestra Nuova traccia di SQL Profiler 2000

Nelle proprietà della traccia, fai clic sulla scheda Selezione eventi in alto accanto a Generale . Quindi fai clic su Filtri colonna ... in basso a destra. Puoi quindi selezionare cosa filtrare, ad esempio TextData o DatabaseName .

Espandi il nodo Mi piace e inserisci il filtro con i segni di percentuale % come % MyDatabaseName% o % TextDataToFilter% . Senza i segni %% il filtro non funzionerà.

Inoltre, assicurati di selezionare la casella Escludi righe che non contengono valori ' Se non riesci a trovare il campo che stai cercando di filtrare come DatabaseName vai al Generale e modifica il tuo modello , uno vuoto dovrebbe contenere tutti i campi.

Crea un nuovo modello e controlla DBname. Usa quel modello per il tuo file di traccia.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top