Udostępnij za pośrednictwem


Włączanie i wyłączanie zasad przechowywania danych

Ważne

Usługa Azure SQL Edge zostanie wycofana 30 września 2025 r. Aby uzyskać więcej informacji i opcji migracji, zobacz powiadomienie o wycofaniu.

Uwaga

Usługa Azure SQL Edge nie obsługuje już platformy ARM64.

W tym artykule opisano sposób włączania i wyłączania zasad przechowywania danych dla bazy danych i tabeli.

Włączanie przechowywania danych dla bazy danych

W poniższym przykładzie pokazano, jak włączyć przechowywanie danych przy użyciu funkcji ALTER DATABASE.

ALTER DATABASE [<DatabaseName>] SET DATA_RETENTION ON;

Sprawdzanie, czy przechowywanie danych jest włączone dla bazy danych

Następujące polecenie może służyć do sprawdzania, czy przechowywanie danych jest włączone dla bazy danych.

SELECT is_data_retention_enabled,
    name
FROM sys.databases;

Włączanie przechowywania danych dla tabeli

Przechowywanie danych musi być włączone dla każdej tabeli, dla której dane mają być automatycznie czyszczone. Gdy przechowywanie danych jest włączone w bazie danych i tabeli, zadanie systemowe w tle okresowo skanuje tabelę w celu zidentyfikowania i usunięcia wszystkich przestarzałych (przestarzałych) wierszy. Przechowywanie danych można włączyć w tabeli podczas tworzenia tabeli przy użyciu polecenia CREATE TABLE lub alter TABLE.

W poniższym przykładzie pokazano, jak włączyć przechowywanie danych dla tabeli przy użyciu funkcji CREATE TABLE.

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
            )
        );

Część WITH (DATA_DELETION = ON (FILTER_COLUMN = [dbdatetime2], RETENTION_PERIOD = 1 day)) polecenia CREATE TABLE ustawia przechowywanie danych w tabeli. Polecenie używa następujących wymaganych parametrów:

  • DATA_DELETION: wskazuje, czy przechowywanie danych jest włączone, czy wyłączone.

  • FILTER_COLUMN: nazwa kolumny w tabeli, która będzie używana do ustalenia, czy wiersze są przestarzałe, czy nie. Kolumna filtru może być tylko kolumną z następującymi typami danych:

    • data
    • smalldatetime
    • data/godzina
    • data/godzina2
    • datetimeoffset
  • RETENTION_PERIOD: wartość całkowita, po której następuje deskryptor jednostki. Dozwolone jednostki to DAY, DAYS, WEEK, WEEKS, MONTH, MONTHS, YEAR i YEARS.

W poniższym przykładzie pokazano, jak włączyć przechowywanie danych dla tabeli przy użyciu funkcji ALTER TABLE.

ALTER TABLE [dbo].[data_retention_table]
SET (
    DATA_DELETION = ON (
        FILTER_COLUMN = [timestamp],
        RETENTION_PERIOD = 1 day
    )
)

Sprawdzanie, czy przechowywanie danych jest włączone dla tabeli

Następujące polecenie może służyć do sprawdzania tabel, dla których włączono przechowywanie danych

SELECT name,
    data_retention_period,
    data_retention_period_unit
FROM sys.tables;

Wartość data_retention_period = -1 i data_retention_period_unit jako NIESKOŃCZONA wskazuje, że przechowywanie danych nie jest ustawione w tabeli.

Poniższe zapytanie może służyć do identyfikowania kolumny używanej filter_column jako przechowywania danych.

SELECT name
FROM sys.columns
WHERE is_data_deletion_filter_column = 1
    AND object_id = object_id(N'dbo.data_retention_table', N'U');

Skorelowanie ustawień przechowywania danych bazy danych i tabeli

Ustawienie przechowywania danych w bazie danych i tabeli jest używane w połączeniu w celu określenia, czy autocleanup dla przestarzałych wierszy działa w tabelach.

Opcja bazy danych Opcja tabeli Zachowanie
WYŁ. WYŁ. Zasady przechowywania danych są wyłączone, a automatyczne i ręczne czyszczenie przestarzałych rekordów jest wyłączone.
WYŁ. ON Zasady przechowywania danych są włączone dla tabeli. Automatyczne czyszczenie przestarzałych rekordów jest wyłączone, jednak metoda oczyszczania ręcznego może służyć do czyszczenia przestarzałych rekordów.
ON WYŁ. Zasady przechowywania danych są włączone na poziomie bazy danych. Jednak ponieważ opcja jest wyłączona na poziomie tabeli, nie ma czyszczenia na podstawie przechowywania przestarzałych wierszy.
ON ON Zasady przechowywania danych są włączone zarówno dla bazy danych, jak i tabel. Automatyczne czyszczenie przestarzałych rekordów jest włączone.

Wyłączanie przechowywania danych w tabeli

Przechowywanie danych można wyłączyć w tabeli przy użyciu funkcji ALTER TABLE. Następujące polecenie może służyć do wyłączania przechowywania danych w tabeli.

ALTER TABLE [dbo].[data_retention_table]
SET (DATA_DELETION = OFF);

Wyłączanie przechowywania danych w bazie danych

Przechowywanie danych można wyłączyć w tabeli przy użyciu funkcji ALTER DATABASE. Następujące polecenie może służyć do wyłączania przechowywania danych w bazie danych.

ALTER DATABASE [<DatabaseName>] SET DATA_RETENTION OFF;