SQL Server – default trace FAQ
· Has someone deleted a table?
· Are you trying to track auto grow events? Problem scenarios such as Database auto grow and slow database recovery
· When did SQL memory usage change? Read SQL Server Performance, memory pressure and memory usage for SQL Server memory analysis
· SQL Server security changes?
The default trace has loads of information.
What is TRACE?
A Trace allows you to track the specific and particular actions and event that performed against a SQL Server databases. A TRACE provide vital and valuable information and details for troubleshooting and monitor database issues, problems and tuning database engine performance.
What type of data is available from the default trace?
Object creation, object deletion, error events, auditing events, full text events
What sort of events does the default trace file capture?
--returns full list of events
SELECT * FROM sys.trace_events
--returns a full list of categories
SELECT * FROM sys.trace_categories
--returns a full list of subclass values
SELECT * FROM sys.trace_subclass_values
How many types of TRACE categories?
3. Errors and Warnings
8. Security Audit
11. Stored Procedures
14. User configurable
17. Full text
19. Progress Report
21. Query Notifications
How do I check default trace is on?
SELECT * FROM sys.configurations WHERE configuration_id = 1568
How do I enable default trace?
sp_configure 'show advanced options', 1;
sp_configure 'default trace enabled', 1;
How do I find the default trace file?
SELECT * FROM ::fn_trace_getinfo(0)
How can I list objects deleted in the last 24 hrs from a specific database?
FROM ::fn_trace_gettable('C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Log\log_154.trc',0) tf
INNER JOIN sys.trace_events te
ON eventclass = trace_event_id
INNER JOIN sys.trace_categories AS tc
ON te.category_id = tc.category_id
WHERE databasename = 'AdventureWorks' AND
objectname IS NOT NULL AND
te.category_id = 5 AND
te.trace_event_id = 47
--SQL server- 47 trace event it is for Oject Deleted.
How to Create a Trace (SQL Server Profiler)
This topic describes how to use SQL Server Profiler to create a trace.
1. Profiler -> File menu, clicks New Trace, and connects to an instance of SQL Server.
2. In the Trace name box, type a name for the trace.
3. In the Use the template list, select a trace template on which to base the trace, or select Blank if you do not want to use a template.
4. To save the trace results, do one of the following:
o Click Save to file to capture the trace to a file. Specify a value for Set maximum file size. The default value is 5 megabytes (MB).
Optionally, select Enable file rollover to automatically create new files when the maximum file size is reached. You can also optionally select Server processes trace data, which causes the service that is running the trace to process trace data instead of the client application. When the server processes trace data, no events are skipped even under stress conditions, but server performance may be affected.
o Click Save to table to capture the trace to a database table.
Optionally, click Set maximum rows, and specify a value.
|When you do not save the trace results to a file or table, you can view the trace while SQL Server Profiler is open. However, you lose the trace results after you stop the trace and close SQL Server Profiler. To avoid losing the trace results in this way, click Save on the File menu to save the results before you close SQL Server Profiler.|
5. Optionally, select the Enable trace stop time check box, and specify a stop date and time.
6. To add or remove events, data columns or filters, click the Events Selection tab.
7. Click Run to start the trace.