Bekletme ilkesiyle geçmiş verileri yönetme

Önemli

Azure SQL Edge artık ARM64 platformunu desteklememektedir.

Veritabanı ve temel alınan tablo için veri saklama ilkesi tanımlandıktan sonra, veri saklama için etkinleştirilmiş olan tablodaki eski kayıtları kaldırmak için arka plan zamanı zamanlayıcı görevi çalıştırılır. Eşleşen satırların tanımlanması ve tablodan kaldırılması, sistem tarafından zamanlanan ve çalıştırılan arka plan görevinde saydam bir şekilde gerçekleşir. Tablo satırları için yaş koşulu, tablo tanımında belirtilen sütuna filter_column göre denetlenir. Bekletme süresi bir hafta olarak ayarlanırsa, örneğin, temizleme için uygun tablo satırları aşağıdaki koşullardan birini karşılar:

  • Filtre sütunu DATETIMEOFFSET veri türünü kullanıyorsa, koşul şudur: filter_column < DATEADD(WEEK, -1, SYSUTCDATETIME())
  • Aksi takdirde koşul şu şekildedir: filter_column < DATEADD(WEEK, -1, SYSDATETIME())

Veri saklama temizleme aşamaları

Veri saklama temizleme işlemi iki aşamadan oluşur:

  1. Bulma: Bu aşamada temizleme işlemi, temizleme için bir liste oluşturmak üzere kullanıcı veritabanlarındaki tüm tabloları tanımlar. Keşif günde bir kez çalışır.
  2. Temizleme: Bu aşamada, bulma aşamasında tanımlanan sonlu veri saklamaya sahip tüm tablolarda temizleme çalıştırılır. Temizleme işlemi bir tabloda gerçekleştirilemiyorsa, bu tablo geçerli çalıştırmada atlanır ve sonraki yinelemede yeniden denenecektir. Temizleme sırasında aşağıdaki ilkeler kullanılır:
    • Eski bir satır başka bir işlem tarafından kilitlenirse, bu satır atlanır.
    • Temizleme, varsayılan kilit zaman aşımı 5 saniyeyle çalışır. Zaman aşımı penceresindeki tablolarda kilitler alınamıyorsa, tablo geçerli çalıştırmada atlanır ve sonraki yinelemede yeniden denenecektir.
    • Bir tablonun temizlenmesi sırasında bir hata varsa, bu tablo atlanır ve sonraki yinelemede alınır.

El ile temizleme

Bir tablodaki veri saklama ayarlarına ve veritabanındaki iş yükünün yapısına bağlı olarak, otomatik temizleme iş parçacığı çalıştırması sırasında tüm eski satırları tamamen kaldırmayabilir. Kullanıcıların eski satırları el ile kaldırmasına izin vermek için saklı sys.sp_cleanup_data_retention yordam Azure SQL Edge'de kullanıma sunulmuştur.

Bu saklı yordam üç parametre alır:

  • @schema_name: Tablo için sahip olan şemanın adı. Gerekli.
  • @table_name: El ile temizlemenin çalıştırıldığı tablonun adı. Gerekli.
  • @rowcount: Çıkış değişkeni. El ile temizleme sp tarafından temizlenen satır sayısını döndürür. isteğe bağlı.

Daha fazla bilgi için bkz . sys.sp_cleanup_data_retention (Transact-SQL).

Aşağıdaki örnek, tablosu dbo.data_retention_tableiçin el ile temizleme sp'sinin yürütülmesini gösterir.

DECLARE @rowcnt BIGINT;
EXEC sys.sp_cleanup_data_retention 'dbo', 'data_retention_table', @rowcnt OUTPUT;
SELECT @rowcnt;

Eski satırlar nasıl silinir?

Temizleme işlemi tablonun dizin düzenine bağlıdır. Sonlu saklama süresi olan tüm tablolar için eski veri temizleme gerçekleştirmek üzere bir arka plan görevi oluşturulur. Satır deposu (yığın veya B ağacı) dizininin mantığını temizleme, eski satırı daha küçük parçalar halinde (10.000'e kadar) siler ve veritabanı günlüğü ve G/Ç alt sistemi üzerindeki baskıyı en aza indirir. Temizleme mantığı gerekli B ağacı dizinini kullansa da, bekletme süresinden eski satırlar için silmelerin sırası kesin olarak garanti edilemez. Başka bir deyişle, uygulamalarınızda temizleme sırasına bağımlılık yapmayın.

Uyarı

Yığınlar ve B ağacı dizinleri söz konusu olduğunda, veri saklama temel tablolarda bir silme sorgusu çalıştırır ve bu sorgu tablolardaki silme tetikleyicileriyle çakışabilir. Silme tetikleyicilerini tablolardan kaldırmanız veya silme DML tetikleyicileri olan tablolarda veri saklama kullanmaktan kaçınmanız gerekir.

Kümelenmiş columnstore dizinleri için temizleme görevi, tüm satır gruplarını bir kerede kaldırır (genellikle her biri 1 milyon satır içerir), bu da özellikle veriler oluşturulduğunda ve yüksek hızda yaşlandığında verimlidir.

Diagram of data retention cleanup.

Mükemmel veri sıkıştırma ve verimli bekletme temizlemesi, kümelenmiş columnstore dizinlerinin iş yükünüz hızla büyük miktarda veri oluşturduğu senaryolar için mükemmel bir seçim olmasını sağlar.

Veri saklama temizlemeyi izleme

Veri saklama ilkesi temizleme işlemleri, Azure SQL Edge'de Genişletilmiş Olaylar kullanılarak izlenebilir. Genişletilmiş olaylar hakkında daha fazla bilgi için bkz . Genişletilmiş Olaylara Genel Bakış.

Aşağıdaki Genişletilmiş Olaylar temizleme işlemlerinin durumunu izlemeye yardımcı olur.

Ad Tanım
data_retention_task_started Bekletme ilkesine sahip tabloları temizlemeye yönelik arka plan görevi başlatıldığında gerçekleşir.
data_retention_task_completed Bekletme ilkesi olan tabloları temizlemeye yönelik arka plan görevi sona erdiğinde gerçekleşir.
data_retention_task_exception Bekletme ilkesine sahip tabloları temizlemeye yönelik arka plan görevi, bu tablolara özgü bekletme temizleme işleminin dışında başarısız olduğunda gerçekleşir.
data_retention_cleanup_started Veri saklama ilkesine sahip bir tablonun temizleme işlemi başlatıldığında gerçekleşir.
data_retention_cleanup_exception Bekletme ilkesine sahip bir tablonun temizleme işlemi başarısız olduğunda gerçekleşir.
data_retention_cleanup_completed Veri saklama ilkesine sahip bir tablonun temizleme işlemi sona erdiğinde gerçekleşir.

Ayrıca, adlı RING_BUFFER_DATA_RETENTION_CLEANUP yeni bir halka arabellek türü dinamik yönetim görünümüne sys.dm_os_ring_buffers eklenmiştir. Bu görünüm, veri saklama temizleme işlemlerini izlemek için kullanılabilir.

Sonraki adımlar