Aracılığıyla paylaş


Nasıl Yapılır: SQL izleme topluluk oluşturmak için SQL Server Profiler'ı kullanmak küme

InSQL Server 2008sunucu tarafı izleme yeteneklerini yararlanmakSQL Server Profilerbir koleksiyon oluşturmak için kullanabileceğiniz bir izleme tanımını vermek küme genel SQL Trace Toplayıcı türü. kullananBu işlem için iki bölümü vardır:

  1. Oluşturma ve verme birSQL Server Profilerizleme.

  2. Komut dosyası dışa aktarılan bir izleme tabanlı yeni bir koleksiyon kümesi.

80 Milisaniye gerektiren herhangi bir saklı yordamı hakkında veri toplama senaryosu aşağıdaki yordamları içerir veya tamamlamak için daha uzun.Bu yordamları tamamlamak için olmalıdır:

  • KullanımıSQL Server Profileroluşturma ve yapılandırma izleme.

  • KullanımıSQL Server Management Studioaçma, düzenleme ve yürütmek bir sorgu.

Oluşturmak ve bir SQL Server Profiler izleme vermek

  1. InSQL Server Management StudioaçınSQL Server Profiler.(On TheTools Menu, Click SQL Server Profiler.)

  2. ,Connect to Server iletişim kutusunda, İptal' i tıklatın.

  3. Bu senaryo için süre değeri milisaniye (varsayılan) olarak görüntülemek için yapılandırıldığından emin olun.Bunu yapmak için şu adımları izleyin::

    1. ,Araçları menu, click Options.

    2. ,Görüntü seçenekleri alan mikrosaniye (SQL Server 2005 veya daha sonra yalnızca) süre sütunundaki değerleri göster onay kutusunun temizlenmiş olduğundan emin olun.

    3. ' I tıklatınOKGenel Seçenekler iletişim kutusu. kapatmak için

  4. ,Dosya menüsünde Yeni izleme ' yi tıklatın.

  5. ,Connect to Server iletişim kutusunda, bağlanmak istediğiniz sunucuyu seçin ve Bağlan' ı tıklatın.

    The Trace Properties dialog box appears.

  6. ,Genel sekmesinde, aşağıdakilerden birini yapın:

    1. ,İzleme adı the trace. için kullanmasını istediğiniz adı yazın. Bu örnekte izleme adıdırSPgt80.

    2. ,Şablon listesini kullanma, the trace. için kullanmak istediğiniz şablonu seçin Bu örnek için tıklatınTSQL_SPs.

  7. ,Olayları seçimi sekmesinde, aşağıdakilerden birini yapın:

    1. Olayları izleme için kullanılacağını belirler.Bu örnekte, tüm onay kutularını temizleyinOlaylar haricinde, ExistingConnection sütun ve SP: Tamamlanan .

    2. Seçin sağ alt köşedekiTüm sütunları göster onay kutusu.

    3. TıklatınSP: Tamamlanan row.

    4. İçin satır boyunca kaydırmaSüre sütun ve süre seçin onay kutusunu işaretleyin.

  8. Sağ alt köşesinde,'ı tıklatınSütun filtreEdit Filter iletişim kutusu. açmak için ,Süzgeci Düzenle iletişim kutusunda, aşağıdakilerden birini yapın:

    1. Filtre listesinde tıklatın.Süre.

    2. Boole işleç penceresinde genişletinBüyüktür veya eşittir düğüm 80 değeri olarak yazıp Tamam .

  9. ' I tıklatınÇalıştırma izleme. başlatmak için

  10. Araç çubuğunda tıklatın.Durdur seçili izleme veya Pause Selected Trace.

  11. ,Dosya menüsünde gelin için Dışa Aktar' ı için Komut dosyası izleme tanımını işaret ve i için SQL izleme koleksiyon kümesi .

  12. ,Farklı Kaydet iletişim kutusunda, izleme tanımını Dosya adı kutusuna kullanmak istediğiniz adı yazın ve sonra konuma kaydedin,.Bu örnekte, dosya adı (SPgt80) izleme adı ile aynıdır.

  13. ' I tıklatınOK dosya başarıyla kaydedilmiş olan bir ileti alıyorum ve sonra kapatın SQL Server Profiler.

Bir SQL Server Profiler izleme küme yeni bir koleksiyon komut dosyası

  1. InSQL Server Management Studio, onDosya menü, için açık, gelin ve Dosya ' ı tıklatın.

  2. ,Dosya Aç iletişim kutusunda, bulmak ve (SPgt80) önceki yordamda oluşturduğunuz dosyayı açın.

    Kaydedilen izleme bilgileri bir sorgu penceresi açılır ve yeni koleksiyon oluşturmak için çalıştırabileceğiniz bir komut dosyası ile birleştirilmiş küme.

  3. Komut dosyası kaydırma ve komut açıklama metni belirtilmiştir, aşağıdaki değişiklik yapın:

    • DeğiştirmeSQLTrace Collection küme adı buraya koleksiyon için kullanmak istediğiniz adı içeren küme.Bu örnekte, koleksiyon küme adıSPROC_Collection küme.

    • DeğiştirmeBurada SQLTrace toplama öğe adı Koleksiyon öğesi. için kullanmayı istediğiniz adla Bu örnekte, koleksiyon öğesi adıSPROC_Collection_Item.

  4. ' I tıklatınyürütmek sorguyu çalıştırmak ve koleksiyon küme.

  5. Object Explorer'da koleksiyon küme oluşturulduğunu doğrulayın.Bunu yapmak için şu adımları izleyin::

    1. Sağ tıklatınYönetimYenile' ı tıklatın ve.

    2. GenişletmeYönetimVeri koleksiyonsonra genişletin.

    The SPROC_CollectionSet collection set appears at the same level as the System Data Collection Sets node.koleksiyon kümesi varsayılan olarak devre dışıdır.

  6. SPROC_CollectionSet, koleksiyon modu gibi özelliklerini ve zamanlama yüklemek için Object Explorer'ı kullanın.Veri Toplayıcısı ile sağlanan sistem veri koleksiyon kümeleri için yaptığınız aynı yordamları izleyin.

Example

Aşağıdaki kod örneği, yukarıdaki yordamları belgelenen adımları kaynaklanan son komut dosyası olur.

/*************************************************************/
-- 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