Veri saklama ilkelerini etkinleştirme ve devre dışı bırakma
Ö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.
Bu makalede, veritabanı ve tablo için veri saklama ilkelerini etkinleştirme ve devre dışı bırakma işlemi açıklanır.
Veritabanı için veri saklamayı etkinleştirme
Aşağıdaki örnekte ALTER DATABASE kullanarak veri saklamayı etkinleştirme işlemi gösterilmektedir.
ALTER DATABASE [<DatabaseName>] SET DATA_RETENTION ON;
Veritabanı için veri saklamanın etkinleştirilip etkinleştirilmediğini denetleme
Veritabanı için veri saklamanın etkinleştirilip etkinleştirilmediğini denetlemek için aşağıdaki komut kullanılabilir.
SELECT is_data_retention_enabled,
name
FROM sys.databases;
Tablo için veri saklamayı etkinleştirme
Verilerin otomatik olarak temizlenmesini istediğiniz her tablo için Veri Saklama etkinleştirilmelidir. Veritabanında ve tabloda veri saklama etkinleştirildiğinde, bir arka plan sistemi görevi eski (eski) satırları tanımlamak ve silmek için tabloyu düzenli aralıklarla tarar. Create TABLE kullanılarak tablo oluşturma sırasında veya ALTER TABLE kullanılarak bir tabloda veri saklama etkinleştirilebilir.
Aşağıdaki örnekte CREATE TABLE kullanılarak tablo için veri saklamanın nasıl etkinleştirileceği gösterilmektedir.
CREATE TABLE [dbo].[data_retention_table] (
[dbdatetime2] DATETIME2(7),
[product_code] INT,
[value] CHAR(10),
CONSTRAINT [pk_current_data_retention_table] PRIMARY KEY CLUSTERED ([product_code])
)
WITH (
DATA_DELETION = ON (
FILTER_COLUMN = [dbdatetime2],
RETENTION_PERIOD = 1 day
)
);
WITH (DATA_DELETION = ON (FILTER_COLUMN = [dbdatetime2], RETENTION_PERIOD = 1 day))
CREATE TABLE komutunun bölümü, tablodaki veri saklamayı ayarlar. komut aşağıdaki gerekli parametreleri kullanır:
DATA_DELETION: Veri saklamanın ON veya OFF olduğunu gösterir.
FILTER_COLUMN: Tablodaki sütunda bulunan ve satırların eski olup olmadığını belirlemek için kullanılacak olan ad. Filtre sütunu yalnızca aşağıdaki veri türlerine sahip bir sütun olabilir:
- tarih
- smalldatetime
- datetime
- datetime2
- datetimeoffset
RETENTION_PERIOD: Bir tamsayı değeri ve ardından birim tanımlayıcısı. İzin verilen birimler GÜN, GÜN, HAFTA, HAFTA, AY, AY, AY, YIL ve YIL'dır.
Aşağıdaki örnekte ALTER TABLE kullanılarak tablo için veri saklamanın nasıl etkinleştirileceği gösterilmektedir.
ALTER TABLE [dbo].[data_retention_table]
SET (
DATA_DELETION = ON (
FILTER_COLUMN = [timestamp],
RETENTION_PERIOD = 1 day
)
)
Tablo için veri saklamanın etkinleştirilip etkinleştirilmediğini denetleme
Veri saklamanın etkinleştirildiği tabloları denetlemek için aşağıdaki komut kullanılabilir
SELECT name,
data_retention_period,
data_retention_period_unit
FROM sys.tables;
ve data_retention_period_unit
değeri data_retention_period = -1
SONSUZ olarak, veri saklamanın tabloda ayarlı olmadığını gösterir.
Aşağıdaki sorgu, veri saklama için kullanılan filter_column
sütunu tanımlamak için kullanılabilir.
SELECT name
FROM sys.columns
WHERE is_data_deletion_filter_column = 1
AND object_id = object_id(N'dbo.data_retention_table', N'U');
Veritabanı ve tablo veri saklama ayarlarını ilişkilendirme
Veritabanındaki ve tablodaki veri saklama ayarı, eski satırlar için otomatik temizlemenin tablolarda çalıştırılıp çalıştırılamadığını belirlemek için birlikte kullanılır.
Veritabanı seçeneği | Tablo seçeneği | Davranış |
---|---|---|
KAPALI | KAPALI | Veri saklama ilkesi devre dışı bırakılır ve eski kayıtların hem otomatik hem de el ile temizlenmesi devre dışı bırakılır. |
KAPALI | AÇIK | Tablo için veri saklama ilkesi etkinleştirilir. Eski kayıtların otomatik olarak temizlenmesi devre dışı bırakılır, ancak eski kayıtları temizlemek için el ile temizleme yöntemi kullanılabilir. |
AÇIK | KAPALI | Veri saklama ilkesi veritabanı düzeyinde etkinleştirilir. Ancak seçenek tablo düzeyinde devre dışı bırakıldığından, eski satırların bekletme tabanlı temizlemesi yoktur. |
AÇIK | AÇIK | Veri saklama ilkesi hem veritabanı hem de tablolar için etkinleştirilir. Eski kayıtların otomatik olarak temizlenmesi etkinleştirilir. |
Tabloda veri saklamayı devre dışı bırakma
Alter TABLE kullanılarak bir tabloda veri saklama devre dışı bırakılabilir. Bir tabloda veri saklamayı devre dışı bırakmak için aşağıdaki komut kullanılabilir.
ALTER TABLE [dbo].[data_retention_table]
SET (DATA_DELETION = OFF);
Veritabanında veri saklamayı devre dışı bırakma
Alter DATABASE kullanılarak tabloda veri saklama devre dışı bırakılabilir. Veritabanında veri saklamayı devre dışı bırakmak için aşağıdaki komut kullanılabilir.
ALTER DATABASE [<DatabaseName>] SET DATA_RETENTION OFF;