Web
Site
Search
Home
Agenda
Links
Bloggers
Over PASS Nederland
User benefits
Geregistreerd... en dan?
Sponsoring
Artikelen
Cursussen en certificering
SQL Server 2000
SQL Server 2005
Examenrecensies
Archief nieuwsbrieven
2005
Nieuwsbrief 1 / 09-10-2005
2006
Nieuwsbrief 2 / 16-01-2006
Nieuwsbrief 3 / 11-03-2006
Nieuwsbrief 4 / 11-04-2006
Nieuwsbrief 5 / 08-05-2006
Nieuwsbrief 6 / 18-06-2006
Nieuwsbrief 7 / 27-08-2006
Nieuwsbrief 8 / 20-10-2006
Nieuwsbrief 9 / 22-12-2006
2007
Nieuwsbrief 10 / 04-02-2007
Nieuwsbrief 11 / 05-03-2007
Nieuwsbrief 12 / 02-04-2007
Nieuwsbrief 13 / 01-05-2007
Nieuwsbrief 14 / 01-06-2007
Nieuwsbrief 15 / 02-09-2007
Nieuwsbrief 16 / 04-10-2007
Nieuwsbrief 17 / 05-11-2007
Nieuwsbrief 18 / 06-12-2007
2008
Nieuwsbrief 19 / 12-01-2008
Nieuwsbrief 20 / 14-02-2008
Nieuwsbrief 21 / 02-05-2008
Nieuwsbrief 22 / 16-06-2008
Nieuwsbrief 23 / 01-08-2008
Nieuwsbrief 24 / 13-11-2008
Nieuwsbrief 25 / 01-12-2008
2009
Nieuwsbrief 26 / 07-02-2009
Nieuwsbrief 27 / 09-03-2009
Nieuwsbrief 28 / 01-04-2009
Nieuwsbrief 29 / 04-06-2009
Nieuwsbrief 30 / 02-09-2009
Nieuwsbrief 31 / 06-10-2009
Nieuwsbrief 32 / 07-11-2009
Nieuwsbrief 33 / 04-12-2009
Forum
onze sponsors
Forum
Login
|
Register
Forum
Unanswered
Active Topics
Forums
Search
Forums
>
Forums
>
Ontwikkelen
Subject: Serverside trace
Prev
Next
You are not authorized to post a reply.
Author
Messages
Oldest First
Newest First
A S
Posts:25
27-12-2007 13:39:38
Alert
Beste SQLérs,
Ik heb een aantal scripts geschreven om een serverside trace te draaien. Dit is mijn opzet:
1) Trace wordt gecreerd/gestart (met een jobje)
2) Trace wordt na 24 uur gestopt (met een jobje)
3) Trace file wordt ingelezen in tabel (werkt niet goed!)
4) Tracefile wordt weggegooid (gaat prima)
Ik krijg geen duidelijke fout in de windows event viewer, helaas, maar als ik het onderstaande stukje code in de Query Analyzer (sql 2000) uitvoer, dan krijg ik volgende melding:
Code:
INSERT INTO dbo.test
(EventClass, TextData, DatabaseID, NTUserName, ClientProcessID, ApplicationName, LoginName, SPID, Duration, StartTime, Reads, Writes, CPU)
SELECT EventClass, TextData, DatabaseID, NTUserName, ClientProcessID, ApplicationName, LoginName, SPID, Duration, StartTime, Reads, Writes, CPU
FROM ::fn_trace_gettable('trace20071227.trc', default)
Foutmelding: Server: Msg 567, Level 16, State 1, Line 1
File 'trace20071227.trc' either does not exist or is not a recognizable trace file. Or there was an error opening the file.
Microsoft oplossing:
http://support.microsoft.com/kb/273972
Ik heb de rollover optie op 3 staan (zie
http://msdn2.microsoft.com/en-us/library/ms190362.aspx
), maar dit mag niet baten.
Als iemand ideeen heeft of alle stored procedures wil zien, dan hoor ik het wel.
mvg, AS
David Scheltens
Posts:33
27-12-2007 14:47:54
Alert
je moet denk ik op twee dingen letten:
1. naast stoppen ook sluiten (sp_trace_setstatus @traceid = x, @status = 2)
2. geef een volledig pad op bij fn_trace_gettable
Gr,
David
A S
Posts:25
27-12-2007 15:11:24
Alert
Beste Davis,
Bedankt voor je reactie! Ik sluit de trace ook, en het bestand wordt met volledig pad meegegeven. In eerste instantie geeft hij ook geen error, en ik zie dat ik niet het padnaam meegeef als ik het inlezen handmatig doe (das mijn fout). Maar als ik dat nu wel doe dan krijg ik geen foutmelding meer:
INSERT INTO dbo.test
(EventClass, TextData, DatabaseID, NTUserName, ClientProcessID, ApplicationName, LoginName, SPID, Duration, StartTime, Reads, Writes, CPU)
SELECT EventClass, TextData, DatabaseID, NTUserName, ClientProcessID, ApplicationName, LoginName, SPID, Duration, StartTime, Reads, Writes, CPU
FROM ::fn_trace_gettable('c:\trace20071227.trc', default)
De melding is: (0 row(s) affected)
Terwijl ik toch zeker wat selects heb uitgevoerd, dus er zou wat in de log moeten staan.
mvg, Anne
David Scheltens
Posts:33
27-12-2007 20:47:42
Alert
Wellicht een hele overbodige vraag, maar doe het toch: heb je op zijn minst de SQL:BatchCompleted en RPC:Completed meegenomen in de trace?
A S
Posts:25
28-12-2007 10:34:10
Alert
Hoi David,
Niks is overbodig hoor, je weet nooit, kan zo maar iets heel stoms zijn :)
Hier mijn stored procedure:
CREATE PROCEDURE [dbo].[stp_start_profiler] AS DECLARE @rc INT DECLARE @TraceID INT DECLARE @maxFileSize bigint DECLARE @fileName NVARCHAR(128) DECLARE @on bit -- Set values SET @maxFileSize = 5 SET @fileName = 'c:\trace' + CONVERT(varchar(4),YEAR(GETDATE())) + CONVERT(varchar(4),MONTH(GETDATE())) + CONVERT(varchar(4),DAY(GETDATE())) --SET @fileName = N'C:\TestTrace1' SET @on = 1 -- Create trace EXEC @rc = sp_trace_create @TraceID output, 2, @fileName, @maxFileSize, NULL -- If error end process IF (@rc != 0) GOTO error -- Set the events and data to collect EXEC sp_trace_setevent @TraceID, 45, 1, @on EXEC sp_trace_setevent @TraceID, 45, 12, @on EXEC sp_trace_setevent @TraceID, 45, 13, @on EXEC sp_trace_setevent @TraceID, 45, 14, @on EXEC sp_trace_setevent @TraceID, 45, 15, @on EXEC sp_trace_setevent @TraceID, 45, 16, @on EXEC sp_trace_setevent @TraceID, 45, 17, @on -- Set Filters -- filter1 include databaseId = 6 EXEC sp_trace_setfilter @TraceID, 3, 1, 0, 6 -- filter2 exclude application SQL Profiler EXEC sp_trace_setfilter @TraceID, 10, 0, 7, N'SQL Profiler' -- Start the trace EXEC sp_trace_setstatus @TraceID, 1 -- display trace id for future references SELECT TraceID=@TraceID INSERT INTO Traces (TraceID, Starttijd, Eindtijd, bestandsnaam) VALUES (@TraceID, getdate(), NULL, @fileName) GOTO finish -- error trap error: SELECT ErrorCode=@rc -- exit finish: GO
A S
Posts:25
28-12-2007 10:35:01
Alert
CREATE PROCEDURE [dbo].[stp_start_profiler]
AS
DECLARE @rc INT
DECLARE @TraceID INT
DECLARE @maxFileSize bigint
DECLARE @fileName NVARCHAR(128)
DECLARE @on bit
-- Set values
SET @maxFileSize = 5
SET @fileName = 'c:\trace' + CONVERT(varchar(4),YEAR(GETDATE())) + CONVERT(varchar(4),MONTH(GETDATE())) + CONVERT(varchar(4),DAY(GETDATE()))
--SET @fileName = N'C:\TestTrace1'
SET @on = 1
-- Create trace
EXEC @rc = sp_trace_create @TraceID output, 2, @fileName, @maxFileSize, NULL
-- If error end process
IF (@rc != 0) GOTO error
-- Set the events and data to collect
EXEC sp_trace_setevent @TraceID, 45, 1, @on
EXEC sp_trace_setevent @TraceID, 45, 12, @on
EXEC sp_trace_setevent @TraceID, 45, 13, @on
EXEC sp_trace_setevent @TraceID, 45, 14, @on
EXEC sp_trace_setevent @TraceID, 45, 15, @on
EXEC sp_trace_setevent @TraceID, 45, 16, @on
EXEC sp_trace_setevent @TraceID, 45, 17, @on
-- Set Filters
-- filter1 include databaseId = 6
EXEC sp_trace_setfilter @TraceID, 3, 1, 0, 6
-- filter2 exclude application SQL Profiler
EXEC sp_trace_setfilter @TraceID, 10, 0, 7, N'SQL Profiler'
-- Start the trace
EXEC sp_trace_setstatus @TraceID, 1
-- display trace id for future references
SELECT
TraceID=@TraceID
INSERT INTO Traces (TraceID, Starttijd, Eindtijd, bestandsnaam)
VALUES (@TraceID, getdate(), NULL, @fileName)
GOTO finish
-- error trap
error:
SELECT
ErrorCode=@rc
-- exit
finish:
GO
Robert Hartskeerl
Posts:86
28-12-2007 14:25:31
Alert
Heb je het ook al geprobeerd zonder filters?
Ik heb je code overgenomen en enkel het databaseid aangepast en bij mij wordt netjes een tracefile aangemaakt die ik dan ook met de profiler of fn_trace_gettable kan openen.
Gr.
Robert Hartskeerl
David Scheltens
Posts:33
29-12-2007 14:22:16
Alert
zat ook al te denken dat het eventueel aan de filter lag ^^
test anders eerst door met profiler zelf naar een bestand op te slaan, wat je ziet tijdens uitvoer op scherm wordt dan ook in het trc bestand opgeslagen.
You are not authorized to post a reply.
Algemeen
--Forum regels
PASS Nederland
--Aankondigingen
--Bijeenkomsten
--PASS Nederland Algemeen
Forums
--DBA
--Ontwikkelen
--Business Intelligence
--Metadata (SIG)
--Performance (SIG)
--High Availability (SIG)
--XML (SIG)
--Algemeen
SQL Server
Forums
>
Forums
>
Ontwikkelen
> Serverside trace
ActiveForums 3.6
Copyright (c) 2012 PASS Nederland
Privacy Statement
Terms Of Use