Veri saklama ilkelerini etkinleştirme ve devre dışı bırakma

Önemli

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;

Sonraki adımlar