The Trace parser is an excellent tool for troubleshooting business functionality within Microsoft Dynamics AX 2012 and Dynamics 365 for Finance and Operations. Your Trace database can quickly grow large and it does affect the tools’ performance adversely.

Removing the old trace collections one-by-one is time consuming. You could utilize a stored procedure for cleaning up your AX trace database efficiently in SQL:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
-- Replace AXTrace with your database name
USE [AXTrace]
GO
-- Truncate transaction log to reduce size
DBCC SHRINKFILE (N'AXTrace_log' , 0, TRUNCATEONLY)
GO
-- Iterate through the list of traces in the database
DECLARE cur CURSOR FOR
SELECT [TraceId] FROM [dbo].[Traces]
DECLARE @Id AS int
OPEN cur;
FETCH NEXT FROM cur into @Id;
-- Remove all traces in the database with the DeleteTrace stored procedure
WHILE (@@FETCH_STATUS = 0)
BEGIN
EXEC [dbo].[DeleteTrace] @TraceId = @Id
FETCH NEXT FROM cur into @Id;
END
CLOSE cur;
DEALLOCATE cur;
-- Truncate transaction log to reduce size
DBCC SHRINKFILE (N'AXTrace_log' , 0, TRUNCATEONLY)
GO
-- Replace AXTrace with your database name USE [AXTrace] GO -- Truncate transaction log to reduce size DBCC SHRINKFILE (N'AXTrace_log' , 0, TRUNCATEONLY) GO -- Iterate through the list of traces in the database DECLARE cur CURSOR FOR SELECT [TraceId] FROM [dbo].[Traces] DECLARE @Id AS int OPEN cur; FETCH NEXT FROM cur into @Id; -- Remove all traces in the database with the DeleteTrace stored procedure WHILE (@@FETCH_STATUS = 0) BEGIN EXEC [dbo].[DeleteTrace] @TraceId = @Id FETCH NEXT FROM cur into @Id; END CLOSE cur; DEALLOCATE cur; -- Truncate transaction log to reduce size DBCC SHRINKFILE (N'AXTrace_log' , 0, TRUNCATEONLY) GO
-- Replace AXTrace with your database name
USE [AXTrace]
GO
 
-- Truncate transaction log to reduce size
DBCC SHRINKFILE (N'AXTrace_log' , 0, TRUNCATEONLY)
GO
 
-- Iterate through the list of traces in the database
DECLARE cur CURSOR FOR 
       SELECT [TraceId] FROM [dbo].[Traces]
 
DECLARE @Id AS int
 
OPEN cur;
FETCH NEXT FROM cur into @Id;
 
-- Remove all traces in the database with the DeleteTrace stored procedure
WHILE (@@FETCH_STATUS = 0)
BEGIN
       EXEC [dbo].[DeleteTrace] @TraceId = @Id
       FETCH NEXT FROM cur into @Id;
END
 
CLOSE cur;
DEALLOCATE cur;
 
-- Truncate transaction log to reduce size
DBCC SHRINKFILE (N'AXTrace_log' , 0, TRUNCATEONLY)
GO