2011-08-31 85 views
1

我正在使用SQL Server Profiler來記錄軟件的活動,該軟件創建一個具有> 300個表格(包括數據)的〜50 GByte數據庫。 Profiler將跟蹤日誌保存到第二個數據庫的表中,稍後將用於分析。SQL Server Profiler需要太多內存

但是,SQL Server Profiler的內存使用情況存在問題,因爲該應用程序在界面的表中顯示了所有(!)跟蹤。因此,幾分鐘後應用程序需要超過3 GB的容量。我沒有超過50 GB的內存!

有沒有辦法禁用此表,並只登錄到數據庫中的表?另外一個能夠記錄相同信息的命令行工具會很棒。

回答

2

存在一些存儲過程/函數等,用於創建跟蹤,而不使用SQL Server Profiler UI。這裏有太多的列出它們,但文檔的根目錄是Introducing SQL Trace。你應該希望能夠找到合適的組合來打電話來獲得你想要的蹤跡。

這些服務器端跟蹤必須存儲到文件中,而不是存儲到另一個表中,但如果您需要它們進行分析,則可以隨後將它們導入到表中。

+0

謝謝,但我不想使用這些存儲過程,因爲它會導致創建和導入大於50 GB的文件。 (我認爲這個痕跡將會超過100GB)。我希望今天有足夠的咖啡或者其他解決方案。 :-( – DiableNoir

+1

@DiableNoir - 您可以爲跟蹤設置最大文件大小,並在達到該大小時將其轉換爲新文件。Profiler使用行集跟蹤提供程序。這也用於(我假設)'Microsoft .SqlServer.Management.Trace',如果你想創建一個自定義應用程序來做到這一點。 –