Aracılığıyla paylaş


Genel t-SQL sorgu Toplayıcı türü

Bir kullanıcı tarafından sağlanan genel t-sql sorgu Toplayıcı türü yürütür Transact-SQL deyim çıktı sorgudan bir girdi parametresi kaydeder ve sonra çıktı için yönetim veri ambarı ambar karşıya yükler.Bu Toplayıcı türü kayıtlı core.supported_collector_types görmek yönetim veri ambarıleri ambarı.

Bu Toplayıcı aşağıdaki giriş parametresi vardır:

  • Value- Transact-SQL Sorgu.Birden fazla sorgu giriş olarak sağlayabilir.

  • OutputTable -Adını vermek tablo için yönetim verileri ambarı ambar karşıya önce sorgu sonuçlar kaydetmek için.

  • Database -Veritabanı sorgu çalıştırmak için veritabanları belirtin.Ada göre veritabanları belirtin veya kullanmak * sunucudaki tüm veritabanlarını belirtmek için joker karakter.İçin bir değer belirtmezseniz, Database, sorgu çalıştırıldığında karşı tüm sistem veritabanları.

Genel t-sql sorgu giriş şeması

Genel t-sql sorgusu Toplayıcı giriş şeması aşağıdaki gibidir.

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="DataCollectorType">
  <xs:element name="TSQLQueryCollector">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Query" minOccurs="1" maxOccurs="unbounded">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Value" type="xs:string" />
              <xs:element name="OutputTable" type="xs:string" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="Databases" minOccurs="0" maxOccurs="1">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Database" minOccurs="0" maxOccurs="unbounded" type="xs:string" />
            </xs:sequence>
            <xs:attribute name="UseSystemDatabases" type="xs:boolean" use="optional" />
            <xs:attribute name="UseUserDatabases" type="xs:boolean" use="optional" />
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

Aşağıdaki kod örnekleri şema nasıl kullanılabileceğini göstermektedir.Tam kod örneği için bkz: Nasıl yapılır: Bir kümesi ile genel t-SQL sorgu Toplayıcı türü oluşturma.

Örnek 1

Aşağıdaki örnek, sistem ve kullanıcı veritabanlarını sorgular ve ardından sonuçlar geçirir custom_snapshots.VerifyDbName tablo.

<ns:TSQLQueryCollector xmlns:ns="DataCollectorType">
  <Query>
    <Value>SELECT DB_NAME() as db_name</Value>
    <OutputTable>VerifyDbName</OutputTable>
  </Query>
  <Databases UseSystemDatabases="true" UseUserDatabases="true" /> 
</ns:TSQLQueryCollector>

Örnek 2

Aşağıdaki örnek, üç sistem veritabanları sorgular ve sonuçlar koyar custom_snapshots.MyOutputTable1 tablo.

<ns:TSQLQueryCollector xmlns:ns="DataCollectorType">
  <Query>
    <Value>SELECT * FROM sys.objects</Value>
    <OutputTable>MyOutputTable1</OutputTable>
  </Query>
  <Databases>
    <Database>model</Database>
    <Database>tempdb</Database>
    <Database>master</Database>
  </Databases>
</ns:TSQLQueryCollector>

Örnek 3

Aşağıdaki örnek, yalnızca kullanıcı veritabanlarını sorgular ve sonuçlar koyar custom_snapshots.MyOutputTable2 ve custom_snapshots.MyOutputTable3 tablolar.

<ns:TSQLQueryCollector xmlns:ns="DataCollectorType">
  <Query>
    <Value>SELECT * FROM sys.dm_tran_database_transactions</Value>
    <OutputTable>MyOutputTable2</OutputTable>
  </Query>
  <Query>
    <Value>SELECT * FROM sys.dm_db_file_space_usage</Value>
    <OutputTable>MyOutputTable3</OutputTable>
  </Query>
  <Databases UseSystemDatabases="false" UseUserDatabases="true" />
</ns:TSQLQueryCollector>

Ne zaman ayrı koleksiyon öğeleri kullanılır

Yukarıdaki örnekte, tüm sorgular aynı karşı yürütülen küme veritabanı.Farklı veritabanları için farklı sorguları yürütmek gerekiyorsa, ayrı bir koleksiyon oluşturmak öğe için her sorgu veritabanı birleşimi.

Farklı koleksiyon öğeleri gerektiren başka bir tablo adı aynı ancak farklı bir şema ile iki veritabanları senaryodur.Örnek 4 Bu senaryo işlemek için koleksiyon öğeleri gösterir.

Örnek 4

Koleksiyon oluşturma öğe ilk veritabanı için db1.

<ns:TSQLQueryCollector xmlns:ns="DataCollectorType">
  <Query>
    <Value>SELECT * FROM mytable</Value> -- Query mytable
    <OutputTable>MyOutputTable1</OutputTable>
  </Query>
  <Databases>
    <Database>db1</Database>
  </Databases>
</ns:TSQLQueryCollector>

Koleksiyon oluşturma öğe ikinci veritabanı için db2.

<ns:TSQLQueryCollector xmlns:ns="DataCollectorType">
  <Query>
    <Value>SELECT * FROM mytable</Value> -- Query mytable
    <OutputTable>MyOutputTable2</OutputTable>
  </Query>
  <Databases>
    <Database>db2</Database>
  </Databases>
</ns:TSQLQueryCollector>

İşleme ve çıktı

Sorgu çıktısı meta veriler bağlıdır Transact-SQL deyimi ile kullanıcı, ancak veri akışının kaynak veya hedef sütun eşlemeleri belirtilen tasarım zamanında oluşturulan saat.Bu toplayıcı türü kullanan her koleksiyon öğesi çalışma zamanında oluşturulan özelleştirilmiş paket gerektirir yani saat ve kendi şema biçimine uyarlanmış.

Veri Toplayıcı koleksiyonu yeni öğe teslim alındığında ya da giriş parametreleri için varolan bir koleksiyon öğesi güncelleştirmede ise koleksiyonu paket ve bir yükleme paket oluşturmak için özel bir görev kullanır.Bu paketleri kaydedilir msdb bunlar tekrar olacak.

Veri koleksiyon ve karşıya yükleme davranışı, açıklanan benzer Veri Toplayıcı mimari ve işleme, ancak uygulanan genel t-sql sorgu Toplayıcı türü için biraz farklı bir şekilde.

Aşağıdaki yönetim verileri ambarı ambar tabloları genel t-sql sorgu Toplayıcı türü tarafından toplanan verileri depolamak için kullanılır:

  • core.snapshots -Bu tablo, her yeni anlık görüntü tanımlar.

  • core.snapshot_timetable -anlık görüntü saat depolanan ayrı bir tablo, çünkü pek çok anlık görüntü görüntüler neredeyse aynı anda gerçekleşebilir.

  • core.source.info -Bu tablo, verilerin yanı sıra, veri kaynak hakkında bilgi depolar.

Sınırlamaları

Genel t-sql sorgu Toplayıcı türü kullanırken dikkat edilmesi gereken bazı sınırlamalar vardır:

  • Aşağıdaki sütun adlarını, veri toplayıcı için ayrılmıştır: snapshot_time, snapshot_id and database_name.Özel koleksiyon kümeleri tarafından oluşturulan tablo bu adları kullanabilirsiniz.Bunları kullanmak için bir girişimde bulunulmaz ise bir hata döndürülür.

  • Sütun türü sysname için dönüştürülür nvarchar(128) , onu kopyalanır yönetim verileri ambarı ambar.Veri koleksiyon sırasında SQL Server 2008 Integration Services (SSIS) veritabanı veri türlerine dönüştürür SSIS veri türleri (örneğin, sysname olur DT_WSTR, ve nvarchar(len) olur DT_WSTR).Bu dönüşüm içinde ole db kaynak veri akışı görevi olmuyor.Veri karşıya yükleme sırasında önbellek olarak verileri veri toplayıcı okur bir SSIS veri türü ve verileri kabul nvarchar(128), işlevsel olarak eşdeğer olduğu sysname.

  • Türü olan bir sütunda char(N) olur varchar(N) kopyalanmasını, yönetim veri ambarıleri ambarı (char(N) uyma varchar(N)).Dışında olgu , char depolama boyutunu sabit, oysa varchar depolama boyutu değişken, bu tür olarak kabul edilirişlevsel olarak eşdeğer.

  • Tür bir sütun varbinary olur binary zaman kopyalanır yönetim verileri ambarı ambar.

  • Tür bir sütun decimal olur numeric zaman kopyalanır yönetim verileri ambarı ambar.

  • Tür bir sütun nchar olur nvarchar zaman kopyalanır yönetim verileri ambarı ambar.

  • The sqlvariant type gets handled by the default processing for columns that SSIS does not directly handle.Bu sütunları alınacağını gelir nvarchar(255), bırakarak herhangi bir dönüştürme için veri sağlayıcı.

    Not

    Bu durum, sütun varsayılan uzunluğu 255 karakteri ile oluşturulur.Ancak, 4000 karakterle değiştirilebilir.

  • Tüm sütunları tarafından döndürülen bir Transact-SQL sorgu olmalı adı.Örneğin, select 1 çalışmaz, ancak select 1 as one olacaktır.

  • Aşağıdaki veri türleri tarafından desteklenen değil SSIS ve sütunlar halinde herhangi bir çıktı dahil olamaz tablo genel t-sql sorgu Toplayıcı türü kullanır koleksiyonu küme tarafından oluşturulan:

    • image

    • text

    • ntext

    • XML

  • Genel t-sql sorgu Toplayıcı türü tarafından yürütülen tüm sorgular, tek bir sonuç küme döndürmelidir.

  • Yerel geçici tablo sorgularını önce aynı toplu iş iş bir parçası olarak bildirilmiş, yalnızca desteklenir.Genel geçici tablo sorgularını tam olarak desteklenmektedir.

  • Dizin, özel anahtarlar, yabancı anahtarlar veya diğer kısıtlamalar hedef tablolarda taşınan yönetim veri ambarıleri ambarı.Bu, aynı verilerin birden çok kez sorgulanan ve veriler birden fazla bilgisayarı tek bir geliyor çünkü tablo.

  • Herhangi bir sınırlama uygulamak için ole db kaynak desteklenen sorgu türü ile ilgili veri akışı görevi , SSIS de uygulanan genel t-sql sorgu Toplayıcı türü.