데이터 보존 정책 사용 및 사용하지 않음

Important

Azure SQL Edge는 더 이상 ARM64 플랫폼을 지원하지 않습니다.

이 문서에서는 데이터베이스 및 테이블에 대한 데이터 보존 정책을 사용하거나 사용하지 않도록 설정하는 방법을 설명합니다.

데이터베이스에 데이터 보존 사용 설정

다음 예시에서는 ALTER DATABASE를 사용하여 데이터 보존 정책을 사용하도록 설정하는 방법을 보여 줍니다.

ALTER DATABASE [<DatabaseName>] SET DATA_RETENTION ON;

데이터베이스에 데이터 보존이 사용되도록 설정되었는지 확인

다음 명령을 사용하여 데이터베이스에 데이터 보존이 사용되는지 여부를 확인할 수 있습니다.

SELECT is_data_retention_enabled,
    name
FROM sys.databases;

데이터베이스에 데이터 보존 사용 설정

데이터를 자동으로 제거하려는 각 테이블에 대해 데이터 보존을 사용하도록 설정해야 합니다. 데이터베이스와 테이블에 데이터 보존이 사용하도록 설정된 경우, 백그라운드 시스템 작업에서 주기적으로 테이블을 검사하여 사용되지 않는(오래된) 행을 식별하고 삭제합니다. CREATE TABLE 또는 ALTER TABLE을 사용하여 테이블을 만드는 동안 테이블에서 데이터 보존을 사용하도록 설정할 수 있습니다.

다음 예시에서는 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
            )
        );

CREATE TABLE 명령의 WITH (DATA_DELETION = ON (FILTER_COLUMN = [dbdatetime2], RETENTION_PERIOD = 1 day)) 부분은 테이블에 데이터 보존을 설정합니다. 명령은 다음 필수 매개 변수를 사용합니다.

  • DATA_DELETION: 데이터 보존이 설정되었는지 여부를 나타냅니다.

  • FILTER_COLUMN: 해당 행이 사용되지 않는지 여부를 확인하는 데 사용되는 테이블 열의 이름입니다. 필터 열은 다음 데이터 형식의 열만 될 수 있습니다.

    • date
    • smalldatetime
    • datetime
    • datetime2
    • datetimeoffset
  • RETENTION_PERIOD: 정수 뒤에 단위 설명자가 있습니다. 허용되는 단위는 일, 일들, 주, 주들, 월, 월들, 연 및 연들입니다.

다음 예시에서는 ALTER TABLE을 사용하여 데이터 보존 정책을 사용하도록 설정하는 방법을 보여 줍니다.

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

테이블에 데이터 보존이 사용되도록 설정되었는지 확인

다음 명령을 사용하여 데이터 보존이 사용되도록 설정된 테이블을 검사할 수 있습니다.

SELECT name,
    data_retention_period,
    data_retention_period_unit
FROM sys.tables;

INFINITE인 data_retention_period = -1data_retention_period_unit 값은 테이블에 데이터 보존이 설정되지 않았음을 나타냅니다.

다음 쿼리를 사용하면 데이터 보존을 위한 filter_column으로 사용되는 열을 식별할 수 있습니다.

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

데이터베이스와 테이블 데이터 보존 설정 상호 연결

데이터베이스와 테이블의 데이터 보존 설정은 오래된 행에 대한 자동 정리가 테이블에서 실행되는지 결정하기 위해 함께 사용됩니다.

데이터베이스 옵션 테이블 옵션 동작
OFF OFF 데이터 보존 정책을 사용하지 않도록 설정되고, 오래된 레코드의 자동 및 수동 정리를 모두 사용하지 않도록 설정됩니다.
OFF ON 테이블에 대해 데이터 보존 정책을 사용하도록 설정됩니다. 사용되지 않는 레코드의 자동 정리가 사용되지 않도록 설정되었지만, 수동 정리 메서드를 사용하여 사용되지 않는 레코드를 정리할 수 있습니다.
ON OFF 데이터베이스 수준에서 데이터 보존 정책을 사용하도록 설정합니다. 그러나 이 옵션은 테이블 수준에서 사용하지 않도록 설정되어 있으므로 오래된 행의 보존 기반 정리가 없습니다.
ON ON 데이터베이스와 테이블 모두에 대해 데이터 보존 정책을 사용하도록 설정합니다. 사용되지 않는 레코드의 자동 정리가 사용되도록 설정됩니다.

테이블에서 데이터 보존 사용하지 않음

ALTER TABLE을 사용하여 테이블에서 데이터 보존을 사용하지 않도록 설정할 수 있습니다. 다음 명령을 사용하여 테이블에 데이터 보존을 사용하지 않도록 설정할 수 있습니다.

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

데이터베이스에서 데이터 보존 사용하지 않음

ALTER DATABASE를 사용하여 테이블에 데이터 보존을 사용하지 않도록 설정할 수 있습니다. 다음 명령을 사용하여 테이블에 데이터 보존을 사용하지 않도록 설정할 수 있습니다.

ALTER DATABASE [<DatabaseName>] SET DATA_RETENTION OFF;

다음 단계