How to: Use SQL Server Profiler to Create a SQL Trace Collection Set
W SQL Server 2008 można wykorzystać możliwości śledzenia po stronie serwera SQL Server Profiler Aby wyeksportować definicji śledzenia, która służy do tworzenia zestaw kolekcja używający typem zbierającego rodzajowy śledzenia SQL. Istnieją dwie części, z tym procesem:
Utworzyć i wyeksportować SQL Server Profiler śledzenie.
Nowy zestaw kolekcja opartej na śledzeniu eksportowanych za pomocą skryptu.
Scenariusz dla poniższych procedur wymaga zbierania danych dotyczących procedura przechowywana, która wymaga 80 milisekund lub dłużej.Do wykonania tych procedur powinien mieć możliwość:
Użycie SQL Server Profiler Tworzenie i konfigurowanie śledzenia.
Użycie SQL Server Management Studio do otwierania, edycji i wykonać kwerendę.
Utworzyć i wyeksportować śledzenia programu SQL Server Profiler
W SQL Server Management Studio, otwieranie SQL Server Profiler. (Na Narzędzia menu kliknijProgram SQL Server Profiler.)
W Połącz z serwerem okno dialogowe kliknijAnuluj.
W tym scenariuszu upewnij się, że wartości czasu trwania są skonfigurowane do wyświetlenia w milisekundach (ustawienie domyślne).Aby to zrobić, wykonaj następujące kroki:
Na Narzędzia menu kliknijOpcje.
W Opcje wyświetlania obszar zapewnieniaPokaż wartości kolumna czas trwania w mikrosekundach (SQL Server 2005 lub nowszy tylko) pole wyboru jest wyczyszczone.
Kliknij przycisk OK zamknięciaOpcje ogólne -okno dialogowe.
Na Plik menu kliknijŚledzenie nowych.
W Połącz z serwerem -okno dialogowe, wybierz serwer, na którym chcesz się połączyć, a następnie kliknij przycisk Łączenie.
The Trace Properties dialog box appears.
Na Ogólne karty, wykonaj następujące czynności:
W Nazwa śledzenia wpisz nazwę, która ma być używany dla śledzenia.W tym przykładzie jest nazwa śledzenia SPgt80.
W Przy użyciu szablonu listy, wybierz szablon, który ma być używany do śledzenia.Na przykład kliknij przycisk TSQL_SPs.
Na Wybieranie zdarzeń karty, wykonaj następujące czynności:
Identyfikator zdarzenia, które mają używać do śledzenia.W tym przykładzie, usuń zaznaczenie wszystkich pól wyboru w Zdarzenia kolumna, z wyjątkiem ExistingConnection and SP: Completed.
W prawym dolnym rogu wybierz Pokaż wszystkie kolumny pole wyboru.
Kliknij przycisk SP: Completed row.
Przewijania w wierszu do Czas trwania kolumna, a następnie wybierz Czas trwania pole wyboru.
W prawym dolnym rogu kliknij przycisk Filtry kolumna otworzyćEdytuj filtr -okno dialogowe.W Edytuj filtr okna dialogowego pole, wykonaj następujące czynności:
Na liście filtrów kliknij przycisk Czas trwania.
W oknie operator logiczny, należy rozwinąć Większe lub równe Typ węzła80 jako wartość, a następnie kliknij przycisk OK.
Kliknij przycisk Uruchamianie , aby rozpocząć śledzenie.
Na pasku narzędzi kliknij przycisk Zatrzymywanie śledzenia wybranych or Wstrzymaj wybrany śledzenia.
Na Plik wskaż menuEksportowanie, point to Definiowanie śledzenia skryptu, a następnie kliknij przycisk Do śledzenia SQL zestaw kolekcja.
W Zapisz jako w oknie dialogowym wpisz nazwę, która ma być używany dla definicji śledzenia w Nazwa pliku pole, a następnie zapisz go w lokalizacji, która ma.Na przykład nazwa pliku jest taka sama jak nazwa śledzenia (SPgt80).
Kliknij przycisk OK , gdy zostanie wyświetlony komunikat, że plik został pomyślnie zapisany, a następnie Zamknij SQL Server Profiler.
Nowy skrypt zestaw kolekcja ze śledzenia programu SQL Server Profiler
W SQL Server Management Studio, na Plik wskaż menuPo otwarciu , a następnie kliknij przycisk Plik.
W Otwieranie pliku -okno dialogowe, zlokalizuj, a następnie otwórz plik, który został utworzony w poprzedniej procedurze (SPgt80).
Informacje o śledzeniu, zapisany jest otwarty w oknie kwerendy i scalenie skrypt, który można uruchomić, aby utworzyć nowy zestaw kolekcja.
Przewiń skrypt i wybierz następujące wystąpienia, które są zapisane w tekst komentarzy skryptów:
Zamień SQLTrace zestaw kolekcja nazwa tutaj z nazwą, która ma być używany dla zestaw kolekcja.W tym przykładzie należy nadać nazwę zestaw kolekcja SPROC_CollectionSet.
Zamień SQLTrace element kolekcja nazwa tutaj z nazwą, która ma być używany dla element kolekcja.W tym przykładzie należy nadać nazwę element kolekcja SPROC_Collection_Item.
Kliknij przycisk wykonać , aby uruchomić kwerendę, aby utworzyć zestaw kolekcja.
W Eksploratorze obiektów, sprawdź, czy zestaw kolekcja został utworzony.Aby to zrobić, wykonaj następujące kroki:
Kliknij prawym przyciskiem myszy Zarządzanie, a następnie kliknij przycisk Odśwież.
Rozwiń węzeł Zarządzanie, a następnie rozwiń Dane kolekcja.
The SPROC_kolekcjazestaw zestaw kolekcji appears at the same poziom as the System Data zestaw kolekcjis node.Zestaw kolekcja jest domyślnie wyłączone.
Aby edytować właściwości SPROC_CollectionSet, takich jak tryb kolekcja i przekazywać harmonogramu za pomocą Eksplorator obiektów.Postępuj zgodnie z tej samej procedury, które mogłyby dla zbiorów zbierania danych systemu dostarczane z modułów zbierających dane.
Example
Poniższy przykład kodu jest końcowym skrypt, wynikających z czynności opisanych w poprzednim procedur.
/*************************************************************/
-- SQL Trace collection set generated from SQL Server Profiler
-- Date: 11/19/2007 12:55:31 AM
/*************************************************************/
USE msdb
GO
BEGIN TRANSACTION
BEGIN TRY
-- Define collection set
-- ***
-- *** Replace 'SqlTrace Collection Set Name Here' in the
-- *** following script with the name you want
-- *** to use for the collection set.
-- ***
DECLARE @collection_set_id int;
EXEC [dbo].[sp_syscollector_create_collection_set]
@name = N'SPROC_CollectionSet',
@schedule_name = N'CollectorSchedule_Every_15min',
@collection_mode = 0, -- cached mode needed for Trace collections
@logging_level = 0, -- minimum logging
@days_until_expiration = 5,
@description = N'Collection set generated by SQL Server Profiler',
@collection_set_id = @collection_set_id output;
SELECT @collection_set_id;
-- Define input and output variables for the collection item.
DECLARE @trace_definition xml;
DECLARE @collection_item_id int;
-- Define the trace parameters as an XML variable
SELECT @trace_definition = convert(xml,
N'<ns:SqlTraceCollector xmlns:ns"DataCollectorType" use_default="0">
<Events>
<EventType name="Sessions">
<Event id="17" name="ExistingConnection" columnslist="1,2,14,26,3,35,12" />
</EventType>
<EventType name="Stored Procedures">
<Event id="43" name="SP:Completed" columnslist="1,2,26,34,3,35,12,13,14,22" />
</EventType>
</Events>
<Filters>
<Filter columnid="13" columnname="Duration" logical_operator="AND" comparison_operator="GE" value="80000L" />
</Filters>
</ns:SqlTraceCollector>
');
-- Retrieve the collector type GUID for the trace collector type.
DECLARE @collector_type_GUID uniqueidentifier;
SELECT @collector_type_GUID = collector_type_uid FROM [dbo].[syscollector_collector_types] WHERE name = N'Generic SQL Trace Collector Type';
-- Create the trace collection item.
-- ***
-- *** Replace 'SqlTrace Collection Item Name Here' in
-- *** the following script with the name you want to
-- *** use for the collection item.
-- ***
EXEC [dbo].[sp_syscollector_create_collection_item]
@collection_set_id = @collection_set_id,
@collector_type_uid = @collector_type_GUID,
@name = N'SPROC_Collection_Item',
@frequency = 900, -- specified the frequency for checking to see if trace is still running
@parameters = @trace_definition,
@collection_item_id = @collection_item_id output;
SELECT @collection_item_id;
COMMIT TRANSACTION;
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION;
DECLARE @ErrorMessage nvarchar(4000);
DECLARE @ErrorSeverity int;
DECLARE @ErrorState int;
DECLARE @ErrorNumber int;
DECLARE @ErrorLine int;
DECLARE @ErrorProcedure nvarchar(200);
SELECT @ErrorLine = ERROR_LINE(),
@ErrorSeverity = ERROR_SEVERITY(),
@ErrorState = ERROR_STATE(),
@ErrorNumber = ERROR_NUMBER(),
@ErrorMessage = ERROR_MESSAGE(),
@ErrorProcedure = ISNULL(ERROR_PROCEDURE(), '-');
RAISERROR (14684, @ErrorSeverity, 1 , @ErrorNumber, @ErrorSeverity, @ErrorState, @ErrorProcedure, @ErrorLine, @ErrorMessage);
END CATCH;
GO