Come si limita 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.SQL Server Profiler - Come filtrare la traccia per visualizzare solo gli eventi da un database?
risposta
In Proprietà di traccia> scheda Selezione eventi> selezionare Mostra tutte le colonne. Ora sotto i filtri delle colonne, dovresti vedere il nome del database. Inserisci il nome del database per la sezione Mi piace e dovresti vedere le tracce solo per quel database.
In SQL 2005, è necessario prima visualizzare la colonna Nome database nella traccia. La cosa più semplice da fare è selezionare il modello di ottimizzazione, che ha già aggiunto quella colonna.
Supponendo di avere il modello di sintonia selezionato, per filtrare:
- Fare clic sulla scheda "Selezione eventi"
- Clicca "Filtri di colonna" tasto
- Controllare mostra tutte le colonne (destro Side Down)
- Selezionare "DatabaseName", fare clic sul segno più accanto a Mi piace nel riquadro a destra e digitare il nome del database.
Ho sempre salvato la traccia su una tabella in modo da poter eseguire query LIKE sui dati di traccia dopo il fatto.
dall'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 - problema problema menzionato persiste, ma quando SQL Profiler 2005 viene utilizzato con SQL Server 2005 database , funziona perfettamente!
In sintesi, il problema sembra essere prevalente in SQLServer 2000 & rettificato in SQLServer 2005.
La soluzione per il problema quando si tratta di SQLServer 2000 (come spiegato da wearejimbo)
identificare il DatabaseID del database che si desidera filtrare interrogando la tabella sysdatabases come di seguito
SELECT * FROM master..sysdatabases WHERE name like '%your_db_name%' -- Remove this line to see all databases ORDER BY dbid
Utilizzare il Filtro DatabaseID (anziché DatabaseName) nella finestra New Trace di SQL Profiler 2000
Creare un nuovo modello e controllare DBname. Usa quel modello per il tuo tracefile.
Nelle proprietà Trace, fare clic sulla scheda Selezione eventi in alto accanto al generale. Quindi fai clic su Filtri colonne ... in basso a destra. È quindi possibile selezionare cosa filtrare, ad esempio TextData
o DatabaseName
.
Espandere l'Come nodo e inserire il filtro con le percentuali %
segni come %MyDatabaseName%
o %TextDataToFilter%
. Senza i segni %%
il filtro non funzionerà.
Inoltre, assicurati di controllare la casella di controllo escludere le righe che non contengono valori Se non è possibile trovare il campo si sta cercando di filtrare come DatabaseName
passare alla scheda Generale e cambiare la tua Template, uno vuoto dovrebbe contenere tutti i campi.
Non so se questo è un problema comune, ma quando eseguo il profiler il nome del database è vuoto per molti dei valori che ho tracciato. Devo usare la colonna DatabaseID e scoprire i valori corretti da inserire interrogando la tabella sysdatabases nel database master –
Per trovare il DatabaseID: SELECT [nome], [dbid] FROM [master]. [Dbo]. [Sysdatabases] ORDINA DA [nome] – Simon
Dipende anche dal modello selezionato, se presente. +1 – beaudetious