core.sp_purge_data (Transact-SQL)

Şunlar için geçerlidir: SQL Server

Yönetim veri deposundan bir saklama politikası temelinde verileri kaldırır. Bu prosedür, SQL Server Agent işi tarafından belirlenen instance'a bağlı yönetim veri deposuna karşı günlük mdw_purge_data olarak yürütülür. Bu kayıtlı prosedürü kullanarak yönetim veri deposundan talep üzerine veri kaldırabilirsiniz.

Transact-SQL söz dizimi kuralları

Syntax

core.sp_purge_data
    [ [ @retention_days = ] retention_days ]
    [ , [ @instance_name = ] 'instance_name' ]
    [ , [ @collection_set_uid = ] 'collection_set_uid' ]
    [ , [ @duration = ] duration ]
[ ; ]

Arguments

[ @retention_days = ] retention_days

Yönetim veri deposu tablolarında verilerin tutulması için gün sayısı. @retention_days yaşından eski zaman damgası olan veriler kaldırılır. @retention_daysküçüktür ve varsayılan olarak .NULL Belirtilmişse, değer pozitif olmalıdır. Ne NULLolduğunda, görünümdeki core.snapshots valid_through sütunundaki değer, kaldırılmaya uygun satırları belirler.

[ @instance_name = ] 'instance_name'

Koleksiyon seti için örnek adı. @instance_namesysname'dir ve varsayılan olarak .NULL

instance_name , bilgisayar adı ve örnek adından oluşan <computername>\<instancename>tam nitelikli örnek adı olmalıdır. Ne olduğunda NULL, yerel sunucudaki varsayılan örnek kullanılır.

[ @collection_set_uid = ] 'collection_set_uid'

Koleksiyon seti için GUID. @collection_set_uiduniqueidentifier'dır ve varsayılan olarak ' NULLdir. Ne zaman NULL, tüm koleksiyon setlerinden nitelikli satırlar kaldırılır. Bu değeri elde etmek için katalog görünümünü syscollector_collection_sets sorgulayın.

[ @duration = ] süre

Temizleme işleminin maksimum dakika sayısı. @durationküçük ve varsayılan olarak .NULL Belirtilmişse, değer sıfır veya pozitif tam sayı olmalıdır. Ne zaman NULL, işlem tüm nitelikli satırlar kaldırılana veya işlem manuel olarak durdurulana kadar devam eder.

Dönüş kodu değerleri

0 (başarı) veya 1 (başarısızlık).

Remarks

Bu prosedür, görüntülemede core.snapshots kaldırma için uygun olan satırları saklama süresine göre seçer. Kaldırılmaya uygun tüm satırlar tablodan core.snapshots_internal silinir. Önceki satırların silinmesi, tüm yönetim veri deposu tablolarında zincirli silme eylemini tetikler. Bu, toplanan verileri depolayan tüm tablolar için tanımlanan ON DELETE CASCADE maddesi kullanılarak yapılır.

Her anlık görüntü ve ilgili veriler açık bir işlem içinde silinir ve ardından bağlanır. Bu nedenle, temizleme işlemi manuel olarak durdurulursa veya belirtilen @duration değer aşılırsa, yalnızca taahhüt edilmemiş veri kalır. Bu veriler, iş bir sonraki çalıştırıldığında kaldırılabilir.

Prosedür, yönetim veri deposu veritabanı bağlamında yürütülmelidir.

Permissions

mdw_admin (EXECUTE izniyle) sabit veritabanı rolünde üyelik gerektirir.

Examples

A. Parametresiz sp_purge_data çalıştır

Aşağıdaki örnek, herhangi bir parametre belirtilmeden çalıştırılır core.sp_purge_data . Bu nedenle, tüm parametreler için varsayılan değer NULL ve ilgili davranış kullanılır.

USE <management_data_warehouse>;
EXECUTE core.sp_purge_data;
GO

B. Tutma ve süre değerlerini belirtin

Aşağıdaki örnek, 7 günden eski olan yönetim veri deposundan verileri kaldırır. Ayrıca, @duration parametre işlemin 5 dakikadan fazla çalışmaması için belirlenmiştir.

USE <management_data_warehouse>;
EXECUTE core.sp_purge_data @retention_days = 7, @duration = 5;
GO

C. Bir örnek adı ve koleksiyon kümesi belirtin

Aşağıdaki örnek, belirli bir SQL Server örneğinde belirli bir koleksiyon seti için yönetim veri deposundan verileri kaldırır. @retention_days belirtilmediği için, görünümdeki valid_through sütundaki core.snapshots değer, koleksiyon kümesinin kaldırılmaya uygun satırlarını belirlemek için kullanılır.

USE <management_data_warehouse>;
GO
-- Get the collection set unique identifier for the Disk Usage system collection set.
DECLARE @disk_usage_collection_set_uid uniqueidentifier = (SELECT collection_set_uid
    FROM msdb.dbo.syscollector_collection_sets WHERE name = N'Disk Usage');

EXECUTE core.sp_purge_data @instance_name = @@SERVERNAME, @collection_set_uid = @disk_usage_collection_set_uid;
GO