Bekletme ilkesiyle geçmiş verileri yönetme
Önemli
Azure SQL Edge 30 Eylül 2025'te kullanımdan kaldırılacaktır. Daha fazla bilgi ve geçiş seçenekleri için Bkz . Kullanımdan kaldırma bildirimi.
Not
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:
- 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.
- 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_table
iç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.
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.
Veri Akışı Adı | Açıklama |
---|---|
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.