Dela via


ÄNDRA ALTERNATIV FÖR DATABASUPPSÄTTNING (Transact-SQL)

Anger databasalternativ i Microsoft SQL Server, Azure SQL Database och Azure Synapse Analytics. Andra alternativ för ALTER DATABASE finns i ALTER DATABASE.

Not

Om du ställer in vissa alternativ med ALTER DATABASE kan det kräva exklusiv databasåtkomst. Om ALTER DATABASE-instruktionen inte slutförs i tid kontrollerar du om andra sessioner i databasen blockerar ALTER DATABASE-sessionen.

Mer information om syntaxkonventionerna finns i Transact-SQL syntaxkonventioner.

Välj en produkt

På följande rad väljer du det produktnamn du är intresserad av. Om du gör det visas olika innehåll här på den här webbsidan, lämpligt för den produkt du väljer.

* SQL Server *  

 

SQL Server

Databasspegling, AlwaysOn-tillgänglighetsgrupper och kompatibilitetsnivåer är SET alternativ men beskrivs i separata artiklar på grund av deras längd. Mer information finns i ALTER DATABASE Mirroring, ALTER DATABASE SET HADRoch ALTER DATABASE compatibility level.

Databasomfattande konfigurationer används för att ange flera databaskonfigurationer på enskild databasnivå. Mer information finns i ALTER DATABASE SCOPED CONFIGURATION.

Not

Många alternativ för databasuppsättningar kan konfigureras för den aktuella sessionen med hjälp av SET-instruktioner och konfigureras ofta av program när de ansluter. Uppsättningsalternativ på sessionsnivå åsidosätter ALTER DATABASE SET värden. Databasalternativen som beskrivs i följande avsnitt är värden som du kan ange för sessioner som inte uttryckligen anger andra angivna alternativvärden.

Syntax

ALTER DATABASE { database_name | CURRENT }
SET
{
    <option_spec> [ ,...n ] [ WITH <termination> ]
}

<option_spec> ::=
{
    <accelerated_database_recovery>
  | <auto_option>
  | <automatic_tuning_option>
  | <change_tracking_option>
  | <containment_option>
  | <cursor_option>
  | <database_mirroring_option>
  | <date_correlation_optimization_option>
  | <db_encryption_option>
  | <db_state_option>
  | <db_update_option>
  | <db_user_access_option>
  | <delayed_durability_option>
  | <external_access_option>
  | FILESTREAM ( <FILESTREAM_option> )
  | <HADR_options>
  | <mixed_page_allocation_option>
  | <parameterization_option>
  | <query_store_options>
  | <recovery_option>
  | <remote_data_archive_option>
  | <persistent_log_buffer_option>
  | <service_broker_option>
  | <snapshot_option>
  | <sql_option>
  | <suspend_for_snapshot_backup>
  | <target_recovery_time_option>
  | <termination>
  | <temporal_history_retention>
  | <data_retention_policy>
}
;

<accelerated_database_recovery> ::=
{
    ACCELERATED_DATABASE_RECOVERY = { ON | OFF }
     [ ( PERSISTENT_VERSION_STORE_FILEGROUP = { filegroup name } ) ];
}

<auto_option> ::=
{
    AUTO_CLOSE { ON | OFF }
  | AUTO_CREATE_STATISTICS { OFF | ON [ ( INCREMENTAL = { ON | OFF } ) ] }
  | AUTO_SHRINK { ON | OFF }
  | AUTO_UPDATE_STATISTICS { ON | OFF }
  | AUTO_UPDATE_STATISTICS_ASYNC { ON | OFF }
}

<automatic_tuning_option> ::=
{
    AUTOMATIC_TUNING ( FORCE_LAST_GOOD_PLAN = { DEFAULT | ON | OFF } )
}

<change_tracking_option> ::=
{
    CHANGE_TRACKING
   {
       = OFF
     | = ON [ ( <change_tracking_option_list > [,...n] ) ]
     | ( <change_tracking_option_list> [,...n] )
   }
}

<change_tracking_option_list> ::=
{
   AUTO_CLEANUP = { ON | OFF }
 | CHANGE_RETENTION = retention_period { DAYS | HOURS | MINUTES }
}

<containment_option> ::=
   CONTAINMENT = { NONE | PARTIAL }

<cursor_option> ::=
{
    CURSOR_CLOSE_ON_COMMIT { ON | OFF }
  | CURSOR_DEFAULT { LOCAL | GLOBAL }
}

<database_mirroring_option>
  ALTER DATABASE Database Mirroring

<date_correlation_optimization_option> ::=
    DATE_CORRELATION_OPTIMIZATION { ON | OFF }

<db_encryption_option> ::=
    ENCRYPTION { ON | OFF | SUSPEND | RESUME }

<db_state_option> ::=
    { ONLINE | OFFLINE | EMERGENCY }

<db_update_option> ::=
    { READ_ONLY | READ_WRITE }

<db_user_access_option> ::=
    { SINGLE_USER | RESTRICTED_USER | MULTI_USER }

<delayed_durability_option> ::=
    DELAYED_DURABILITY = { DISABLED | ALLOWED | FORCED }

<external_access_option> ::=
{
    DB_CHAINING { ON | OFF }
  | TRUSTWORTHY { ON | OFF }
  | DEFAULT_FULLTEXT_LANGUAGE = { <lcid> | <language name> | <language alias> }
  | DEFAULT_LANGUAGE = { <lcid> | <language name> | <language alias> }
  | NESTED_TRIGGERS = { OFF | ON }
  | TRANSFORM_NOISE_WORDS = { OFF | ON }
  | TWO_DIGIT_YEAR_CUTOFF = { 1753, ..., 2049, ..., 9999 }
}

<FILESTREAM_option> ::=
{
    NON_TRANSACTED_ACCESS = { OFF | READ_ONLY | FULL
  | DIRECTORY_NAME = <directory_name>
}

<HADR_options> ::=
    ALTER DATABASE SET HADR

<mixed_page_allocation_option> ::=
    MIXED_PAGE_ALLOCATION { OFF | ON }

<parameterization_option> ::=
    PARAMETERIZATION { SIMPLE | FORCED }

<query_store_options> ::=
{
    QUERY_STORE
    {
          = OFF [ ( FORCED ) ]
        | = ON [ ( <query_store_option_list> [,...n] ) ]
        | ( < query_store_option_list> [,...n] )
        | CLEAR [ ALL ]
    }
}

<query_store_option_list> ::=
{
      OPERATION_MODE = { READ_WRITE | READ_ONLY }
    | CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = number )
    | DATA_FLUSH_INTERVAL_SECONDS = number
    | MAX_STORAGE_SIZE_MB = number
    | INTERVAL_LENGTH_MINUTES = number
    | SIZE_BASED_CLEANUP_MODE = { AUTO | OFF }
    | QUERY_CAPTURE_MODE = { ALL | AUTO | CUSTOM | NONE }
    | MAX_PLANS_PER_QUERY = number
    | WAIT_STATS_CAPTURE_MODE = { ON | OFF }
    | QUERY_CAPTURE_POLICY = ( <query_capture_policy_option_list> [,...n] )
}

<query_capture_policy_option_list> :: =
{
      STALE_CAPTURE_POLICY_THRESHOLD = number { DAYS | HOURS }
    | EXECUTION_COUNT = number
    | TOTAL_COMPILE_CPU_TIME_MS = number
    | TOTAL_EXECUTION_CPU_TIME_MS = number
}

<recovery_option> ::=
{
    RECOVERY { FULL | BULK_LOGGED | SIMPLE }
  | TORN_PAGE_DETECTION { ON | OFF }
  | PAGE_VERIFY { CHECKSUM | TORN_PAGE_DETECTION | NONE }
}

<remote_data_archive_option> ::=
{
    REMOTE_DATA_ARCHIVE =
    {
        ON ( SERVER = <server_name>,
             {
                  CREDENTIAL = <db_scoped_credential_name>
                  | FEDERATED_SERVICE_ACCOUNT = ON | OFF
             }
        )
        | OFF
    }
}

<persistent_log_buffer_option> ::=
{
    PERSISTENT_LOG_BUFFER 
    {
          = ON (DIRECTORY_NAME= 'path-to-directory-on-a-DAX-volume')
        | = OFF
    }
}

<service_broker_option> ::=
{
    ENABLE_BROKER
  | DISABLE_BROKER
  | NEW_BROKER
  | ERROR_BROKER_CONVERSATIONS
  | HONOR_BROKER_PRIORITY { ON | OFF }
}

<snapshot_option> ::=
{
    ALLOW_SNAPSHOT_ISOLATION { ON | OFF }
  | READ_COMMITTED_SNAPSHOT { ON | OFF }
  | MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT = { ON | OFF }
}

<sql_option> ::=
{
    ANSI_NULL_DEFAULT { ON | OFF }
  | ANSI_NULLS { ON | OFF }
  | ANSI_PADDING { ON | OFF }
  | ANSI_WARNINGS { ON | OFF }
  | ARITHABORT { ON | OFF }
  | COMPATIBILITY_LEVEL = { 160 | 150 | 140 | 130 | 120 | 110 | 100 }
  | CONCAT_NULL_YIELDS_NULL { ON | OFF }
  | NUMERIC_ROUNDABORT { ON | OFF }
  | QUOTED_IDENTIFIER { ON | OFF }
  | RECURSIVE_TRIGGERS { ON | OFF }
}

<suspend_for_snapshot_backup> ::=
    SET SUSPEND_FOR_SNAPSHOT_BACKUP = { ON | OFF } [ ( MODE = COPY_ONLY ) ]

<target_recovery_time_option> ::=
    TARGET_RECOVERY_TIME = target_recovery_time { SECONDS | MINUTES }

<termination>::=
{
    ROLLBACK AFTER number [ SECONDS ]
  | ROLLBACK IMMEDIATE
  | NO_WAIT
}

<temporal_history_retention> ::=
    TEMPORAL_HISTORY_RETENTION { ON | OFF }

<data_retention_policy> ::=
    DATA_RETENTION { ON | OFF }

Argument

database_name

Namnet på databasen som ska ändras.

STRÖM

gäller för: SQL Server (från och med SQL Server 2012 (11.x))

Kör åtgärden i den aktuella databasen. CURRENT stöds inte för alla alternativ i alla kontexter. Om CURRENT misslyckas anger du databasnamnet.

<accelerated_database_recovery> ::=

gäller för: SQL Server (från och med SQL Server 2019 (15.x))

Aktiverar accelererad databasåterställning (ADR). ADR är inställt på AV som standard i SQL Server 2019 (15.x) och senare. Med den här syntaxen kan du ange en specifik filgrupp för PVS-data (Persistent Version Store). Om ingen filgrupp har angetts lagras PVS i PRIMARY-filgruppen. Mer information finns i Hantera accelererad databasåterställning.

<auto_option> ::=

Styr automatiska alternativ.

AUTO_CLOSE { ON | AV }

  • Databasen stängs av helt och dess resurser frigörs efter att den senaste användaren har avslutats.

    Databasen öppnas automatiskt igen när en användare försöker använda databasen igen. Det här beteendet inträffar till exempel när en användare utfärdar en USE database_name-instruktion. Databasen kan stängas av rent med AUTO_CLOSE inställt på PÅ. I så fall öppnas inte databasen igen förrän en användare försöker använda databasen nästa gång databasmotorn startas om.

    När en databas har stängts av måste databasen först öppnas nästa gång ett program försöker använda databasen och sedan ändras statusen till online. Det kan ta lite tid och resultera i tidsgränser för program.

  • BORT

    Databasen förblir öppen efter att den senaste användaren har avslutats.

    Alternativet AUTO_CLOSE är användbart för skrivbordsdatabaser eftersom det gör att databasfiler kan hanteras som vanliga filer. De kan flyttas, kopieras för att göra säkerhetskopior eller till och med skickas via e-post till andra användare. Den AUTO_CLOSE processen är asynkron. att öppna och stänga databasen upprepade gånger minskar inte prestandan.

Not

Alternativet AUTO_CLOSE är inte tillgängligt i en innesluten databas eller i SQL Database. Du kan fastställa det här alternativets status genom att undersöka kolumnen is_auto_close_on i sys.databases katalogvy eller egenskapen IsAutoClose för funktionen DATABASEPROPERTYEX.

När AUTO_CLOSE är inställt på PÅ returnerar vissa kolumner i sys.databases katalogvyn och funktionen DATABASEPROPERTYEX NULL eftersom databasen inte är tillgänglig för att hämta data. Lös problemet genom att köra en USE-instruktion för att öppna databasen.

Databasspegling kräver AUTO_CLOSE inställt på OFF.

När databasen är inställd på AUTOCLOSE = ONrensar en åtgärd som initierar en automatisk databasavstängning plancachen för instansen av SQL Server. Om du rensar plancachen blir det en omkompilering av alla efterföljande körningsplaner och kan orsaka en plötslig, tillfällig minskning av frågeprestanda. Från och med SQL Server 2005 (9.x) Service Pack 2 innehåller SQL Server-felloggen följande informationsmeddelande för varje rensat cachelager i plancachen: SQL Server has encountered %d occurrence(s) of cachestore flush for the '%s' cachestore (part of plan cache) due to some database maintenance or reconfigure operations. Det här meddelandet loggas var femte minut så länge cacheminnet rensas inom det tidsintervallet.

Inställningen AUTO_CLOSE kan vara en användbar funktion i vissa sällsynta situationer, till exempel i en SQL Server-instans utan tillräckligt med minne för att fungera stabilt med ett stort antal databaser eller för en äldre 32-bitars SQL Server-instans med ett stort antal databaser. I sådana scenarier kan det vara användbart att aktivera AUTO_CLOSE och spara de minnesresurser som krävs för att hålla en databas öppen när det inte finns något program som använder databasen. När databasen är öppen krävs vissa standardminnesallokeringar (till exempel interna strukturer för att representera olika databasmetadataobjekt och transaktionsloggbuffertar).

AUTO_CREATE_STATISTICS { ON | AV }

  • Frågeoptimeraren skapar statistik för enskilda kolumner i frågepredikat vid behov för att förbättra frågeplaner och frågeprestanda. Den här statistiken med en kolumn skapas när Query Optimizer kompilerar frågor. Enkolumnsstatistiken skapas endast för kolumner som inte redan är den första kolumnen i ett befintligt statistikobjekt.

    Standardinställningen är PÅ. Vi rekommenderar att du använder standardinställningen för de flesta databaser.

  • BORT

    Frågeoptimeraren skapar inte statistik för enskilda kolumner i frågepredikat när den kompilerar frågor. Om du ställer in det här alternativet på AV kan det orsaka suboptimala frågeplaner och försämrad frågeprestanda.

Du kan fastställa det här alternativets status genom att undersöka kolumnen is_auto_create_stats_on i sys.databases katalogvy. Du kan också fastställa statusen genom att undersöka egenskapen IsAutoCreateStatistics för funktionen DATABASEPROPERTYEX.

Mer information finns i avsnittet "Använda statistikalternativen för hela databasen" i Statistics.

INCREMENTAL = ON | BORT

gäller för: SQL Server (från och med SQL Server 2014 (12.x)) och Azure SQL Database

Ställ in AUTO_CREATE_STATISTICS på PÅ och ange INKREMENTELL till PÅ. Detta anger automatiskt skapad statistik som inkrementell när inkrementell statistik stöds. Standardvärdet är AV. Mer information finns i CREATE STATISTICS.

AUTO_SHRINK { ON | AV }

  • Databasfilerna är kandidater för regelbunden krympning. Om du inte har ett specifikt krav ska du inte ange alternativet AUTO_SHRINK databas till PÅ. Mer information finns i Krympa en databas.

    Både datafiler och loggfiler kan krympas automatiskt. AUTO_SHRINK minskar storleken på transaktionsloggen endast om du ställer in databasen på SIMPLE-återställningsmodell eller om du säkerhetskopierar loggen. När du anger AUTO_SHRINK till AV krymps inte databasfilerna automatiskt under periodiska kontroller av oanvänt utrymme.

    Alternativet AUTO_SHRINK krymper filer när mer än 25 procent av filen innehåller outnyttjat utrymme. Filen krymps till en av två storlekar (beroende på vilket som är större):

    • Storleken med vilken 25 procent av filen är outnyttjat utrymme
    • Storleken på filen när den skapades

    Du kan inte krympa en skrivskyddad databas.

  • BORT

    Databasfilerna krymps inte automatiskt under periodiska kontroller av oanvänt utrymme.

Du kan fastställa det här alternativets status genom att undersöka kolumnen is_auto_shrink_on i sys.databases katalogvy. Du kan också fastställa statusen genom att undersöka egenskapen IsAutoShrink för funktionen DATABASEPROPERTYEX.

Not

Alternativet AUTO_SHRINK är inte tillgängligt i en innesluten databas.

AUTO_UPDATE_STATISTICS { ON | AV }

  • Anger att Query Optimizer uppdaterar statistik när de används av en fråga och när de kan vara inaktuella. Statistiken blir inaktuell efter att åtgärderna infoga, uppdatera, ta bort eller slå samman ändrar datadistributionen i tabellen eller den indexerade vyn. Frågeoptimeraren avgör när statistiken kan vara inaktuell genom att räkna antalet dataändringar sedan den senaste statistikuppdateringen och jämföra antalet ändringar med ett tröskelvärde. Tröskelvärdet baseras på antalet rader i tabellen eller den indexerade vyn.

    Frågeoptimeraren söker efter inaktuell statistik innan den kompilerar en fråga och kör en cachelagrad frågeplan. Query Optimizer använder kolumner, tabeller och indexerade vyer i frågepredikatet för att avgöra vilken statistik som kan vara inaktuell. Frågeoptimeraren avgör den här informationen innan den kompilerar en fråga. Innan du kör en cachelagrad frågeplan verifierar databasmotorn att frågeplanen refererar till up-to-date-statistik.

    Alternativet AUTO_UPDATE_STATISTICS gäller för statistik som skapats för index, enkla kolumner i frågepredikat och statistik som skapas med hjälp av instruktionen CREATE STATISTICS. Det här alternativet gäller även för filtrerad statistik.

    Standardvärdet är PÅ. Vi rekommenderar att du använder standardinställningen för de flesta databaser.

    Använd alternativet AUTO_UPDATE_STATISTICS_ASYNC för att ange om statistiken uppdateras synkront eller asynkront.

  • BORT

    Anger att Frågeoptimeraren inte uppdaterar statistik när de används av en fråga. Query Optimizer uppdaterar inte heller statistik när de kan vara inaktuella. Om du ställer in det här alternativet på AV kan det orsaka suboptimala frågeplaner och försämrad frågeprestanda.

Du kan fastställa det här alternativets status genom att undersöka kolumnen is_auto_update_stats_on i sys.databases katalogvy. Du kan också fastställa statusen genom att undersöka egenskapen IsAutoUpdateStatistics för funktionen DATABASEPROPERTYEX.

Mer information finns i avsnittet "Använda statistikalternativen för hela databasen" i Statistics.

AUTO_UPDATE_STATISTICS_ASYNC { ON | AV }

  • Anger att statistikuppdateringar för alternativet AUTO_UPDATE_STATISTICS är asynkrona. Frågeoptimeraren väntar inte på att statistikuppdateringarna ska slutföras innan frågor kompileras.

    Att ställa in det här alternativet på PÅ har ingen effekt om inte AUTO_UPDATE_STATISTICS är inställt på PÅ.

    Som standard är alternativet AUTO_UPDATE_STATISTICS_ASYNC AV och Frågeoptimeraren uppdaterar statistik synkront.

  • BORT

    Anger att statistikuppdateringar för alternativet AUTO_UPDATE_STATISTICS är synkrona. Frågeoptimeraren väntar på att statistikuppdateringarna ska slutföras innan frågor kompileras.

    Not

    Att ställa in det här alternativet på AV har ingen effekt om inte AUTO_UPDATE_STATISTICS är inställt på PÅ.

Du kan fastställa det här alternativets status genom att undersöka kolumnen is_auto_update_stats_async_on i sys.databases katalogvy.

Mer information som beskriver när du ska använda synkrona eller asynkrona statistikuppdateringar finns i avsnittet "Statistikalternativ" i Statistics.

<automatic_tuning_option> ::=

gäller för: SQL Server (från och med SQL Server 2017 (14.x))

Aktiverar eller inaktiverar FORCE_LAST_GOOD_PLANalternativet Automatisk justering. Du kan visa status för det här alternativet i vyn sys.database_automatic_tuning_options.

FORCE_LAST_GOOD_PLAN = { STANDARD | PÅ | AV }

  • STANDARD

    Standardvärdet för SQL Server är AV.

  • Databasmotorn tvingar automatiskt fram den senast kända bra planen för Transact-SQL frågor där en ny frågeplan orsakar prestandaregressioner. Databasmotorn övervakar kontinuerligt frågeprestanda för den Transact-SQL frågan med den framtvingade planen.

    Om det finns prestandavinster fortsätter databasmotorn att använda den senast kända bra planen. Om prestandavinster inte identifieras skapar databasmotorn en ny frågeplan. Instruktionen misslyckas om Query Store- inte är aktiverad eller om Frågearkivet inte är i läs- och skrivläge läge.

  • BORT

    Databasmotorn rapporterar potentiella frågeprestandaregressioner som orsakas av ändringar i frågeplanen i sys.dm_db_tuning_recommendations vy. Dessa rekommendationer tillämpas dock inte automatiskt. Användare kan övervaka aktiva rekommendationer och åtgärda identifierade problem genom att använda Transact-SQL skript som visas i vyn. Standardvärdet är AV.

<change_tracking_option> ::=

gäller för: SQL Server och Azure SQL Database

Styr ändringsspårningsalternativ. Du kan aktivera ändringsspårning, ange alternativ, ändra alternativ och inaktivera ändringsspårning. Exempel finns i avsnittet Exempel senare i den här artikeln.

  • Aktiverar ändringsspårning för databasen. När du aktiverar ändringsspårning kan du också ange alternativen AUTOMATISK RENSNING och ÄNDRINGSBEVARANDE.

  • AUTO_CLEANUP = { ON | AV }

    • Information om ändringsspårning tas bort automatiskt efter den angivna kvarhållningsperioden.

    • BORT

      Ändringsspårningsdata tas inte bort automatiskt från databasen.

  • CHANGE_RETENTION = retention_period { DAYS | TIMMAR | MINUTER }

    Anger den minsta perioden för att behålla information om ändringsspårning i databasen. Data tas bara bort när värdet för AUTO_CLEANUP är PÅ.

    retention_period är ett heltal som anger den numeriska komponenten i kvarhållningsperioden.

    Standardkvarhållningsperioden är 2 dagar. Den minsta kvarhållningsperioden är 1 minut. Standardkvarhållningstypen är DAYS.

  • OFF Inaktiverar ändringsspårning för databasen. Inaktivera ändringsspårning för alla tabeller innan du inaktiverar ändringsspårning från databasen.

<containment_option> ::=

gäller för: SQL Server (från och med SQL Server 2012 (11.x))

Styr databas-inneslutningsalternativ.

CONTAINMENT = { NONE | PARTIAL}

  • INGEN

    Databasen är inte en innesluten databas.

  • PARTIELL

    Databasen är en innesluten databas. Det går inte att ställa in databasens inneslutning till partiell om databasen har replikering, ändringsdatainsamling eller ändringsspårning aktiverat. Felkontrollen stoppas efter ett fel. Mer information om inneslutna databaser finns i inneslutna databaser.

<cursor_option> ::=

Styr markörens alternativ.

CURSOR_CLOSE_ON_COMMIT { ON | AV }

  • Alla markörer som öppnas när du checkar in eller återställer en transaktion stängs.

  • BORT

    Markörer förblir öppna när en transaktion checkas in. om du återställer en transaktion stängs alla markörer, förutom de markörer som definierats som INSENSITIVE eller STATIC.

Inställningar på anslutningsnivå som anges med set-instruktionen åsidosätter standarddatabasinställningen för CURSOR_CLOSE_ON_COMMIT. ODBC- och OLE DB-klienter utfärdar en set-instruktionsinställning på anslutningsnivå CURSOR_CLOSE_ON_COMMIT till AV för sessionen som standard. Klienterna kör -instruktionen när du ansluter till en instans av SQL Server. Mer information finns i SET CURSOR_CLOSE_ON_COMMIT.

Du kan fastställa det här alternativets status genom att undersöka kolumnen is_cursor_close_on_commit_on i sys.databases katalogvy eller egenskapen IsCloseCursorsOnCommitEnabled för funktionen DATABASEPROPERTYEX.

CURSOR_DEFAULT { LOCAL | GLOBAL }

gäller för: SQL Server

Styr om markörens omfång använder LOCAL eller GLOBAL.

  • LOKAL

    När du anger LOCAL och inte definierar en markör som GLOBAL när du skapar markören är markörens omfång lokalt. Mer specifikt är omfånget lokalt för batchen, den lagrade proceduren eller utlösaren där du skapade markören. Markörens namn är endast giltigt inom det här omfånget.

    Markören kan refereras till av lokala markörvariabler i batchen, lagrad procedur eller utlösare eller en utdataparameter för lagrad procedur. Markören frigörs implicit när batchen, den lagrade proceduren eller utlösaren slutar. Markören frigörs om den inte skickades tillbaka i en OUTPUT-parameter. Markören kan skickas tillbaka i en OUTPUT-parameter. Om markören skickas tillbaka på det här sättet frigörs markören när den sista variabeln som refererar till markören frigörs eller hamnar utanför omfånget.

  • GLOBAL

    När GLOBAL anges och en markör inte definieras som LOKAL när den skapas är markörens omfång globalt för anslutningen. Markörens namn kan refereras i valfri lagrad procedur eller batch som körs av anslutningen.

    Markören frigörs implicit endast vid frånkoppling. Mer information finns i DEKLARERA MARKÖREN.

Du kan fastställa det här alternativets status genom att undersöka kolumnen is_local_cursor_default i sys.databases katalogvy. Du kan också fastställa statusen genom att undersöka egenskapen IsLocalCursorsDefault för funktionen DATABASEPROPERTYEX.

<temporal_history_retention> ::=

TEMPORAL_HISTORY_RETENTION { ON | AV }

PÅ som standard men ställs också automatiskt in på AV efter återställning vid tidpunkt. Mer information om hur du aktiverar den här inställningen finns i Konfigurera kvarhållningsprincip.

<data_retention_policy> ::=

gäller endast för: Azure SQL Edge.

DATA_RETENTION { ON | AV }

  • Aktiverar principbaserad rensning av datakvarhållning på en databas.

  • BORT

    Inaktiverar principbaserad rensning av datakvarhållning på en databas.

<database_mirroring>

gäller för: SQL Server

Argumentbeskrivningarna finns i ALTER DATABASE Database Mirroring.

<date_correlation_optimization_option> ::=

gäller för: SQL Server

Styr alternativet date_correlation_optimization.

DATE_CORRELATION_OPTIMIZATION { ON | AV }

  • SQL Server upprätthåller korrelationsstatistik där en FOREIGN KEY-begränsning länkar två tabeller i databasen och tabellerna har datetime- kolumner.

  • BORT

    Korrelationsstatistik underhålls inte.

Om du vill ange DATE_CORRELATION_OPTIMIZATION till PÅ får det inte finnas några aktiva anslutningar till databasen förutom anslutningen som kör ALTER DATABASE-instruktionen. Därefter stöds flera anslutningar.

Den aktuella inställningen för det här alternativet kan fastställas genom att undersöka kolumnen is_date_correlation_on i sys.databases katalogvy.

<db_encryption_option> ::=

Styr databaskrypteringstillståndet.

KRYPTERING { PÅ | AV | SUSPEND | RESUME }

  • Anger att databasen ska krypteras.

  • BORT

    Anger att databasen inte ska krypteras.

  • HÄNGA

    gäller för: SQL Server (från och med SQL Server 2019 (15.x))

    Kan användas för att pausa krypteringsgenomsökningen efter att transparent datakryptering har aktiverats eller inaktiverats, eller efter att krypteringsnyckeln har ändrats.

  • ÅTERUPPTA

    gäller för: SQL Server (från och med SQL Server 2019 (15.x))

    Kan användas för att återuppta en tidigare pausad krypteringsgenomsökning.

Mer information om databaskryptering finns i Transparent datakryptering (TDE)och Transparent datakryptering för Azure SQL Database, Azure SQL Managed Instance och Azure Synapse Analytics.

När kryptering är aktiverat på databasnivå krypteras alla filgrupper. Alla nya filgrupper ärver den krypterade egenskapen. Om några filgrupper i databasen är inställda på SKRIVSKYDDad misslyckas databaskrypteringsåtgärden.

Du kan se krypteringstillståndet för databasen och krypteringsgenomsökningens tillstånd med hjälp av sys.dm_database_encryption_keys dynamisk hanteringsvy.

<db_state_option> ::=

gäller för: SQL Server

Styr databasens tillstånd.

  • OFFLINE

    Databasen stängs, stängs av rent och markeras offline. Det går inte att ändra databasen när den är offline.

  • UPPKOPPLAD

    Databasen är öppen och tillgänglig för användning.

  • NÖD

    Databasen är markerad READ_ONLY, loggning är inaktiverad och åtkomsten är begränsad till medlemmar i den fasta serverrollen sysadmin. EMERGENCY används främst för felsökning. Till exempel kan en databas som markerats som misstänkt på grund av en skadad loggfil ställas in på nödtillståndet. Den här inställningen kan ge systemadministratören skrivskyddad åtkomst till databasen. Endast medlemmar i den fasta serverrollen sysadmin kan ange en databas till nödtillståndet.

Kräver ALTER DATABASE behörighet för ämnesdatabasen, för att ändra en databas till offline- eller nödsituationstillståndet, och servernivån ALTER ANY DATABASE behörighet att flytta en databas från offline till online.

Du kan fastställa det här alternativets status genom att undersöka kolumnerna state och state_desc i sys.databases katalogvy. Du kan också fastställa statusen genom att undersöka egenskapen Status för funktionen DATABASEPROPERTYEX. Mer information finns i Databastillstånd.

En databas som har markerats som ÅTERSTÄLLNING kan inte ställas in på OFFLINE, ONLINE eller NÖDSITUATION. En databas kan vara i återställningstillståndet under en aktiv återställningsåtgärd eller när en återställningsåtgärd för en databas eller loggfil misslyckas på grund av en skadad säkerhetskopia.

<db_update_option> ::=

Styr om uppdateringar tillåts i databasen.

  • READ_ONLY

    Användare kan läsa data från databasen men inte ändra dem.

    Not

    Uppdatera statistik innan du ställer in en databas på READ_ONLY för att förbättra frågeprestandan. Om ytterligare statistik behövs efter att en databas har angetts till READ_ONLY skapar databasmotorn statistik i tempdb systemdatabas. Mer information om statistik för en skrivskyddad databas finns i Statistics.

  • READ_WRITE

    Databasen är tillgänglig för läs- och skrivåtgärder.

Om du vill ändra det här tillståndet måste du ha exklusiv åtkomst till databasen. Mer information finns i SINGLE_USER-satsen.

Not

I federerade Azure SQL Database-databaser är SET { READ_ONLY | READ_WRITE } inaktiverat.

<db_user_access_option> ::=

Styr användaråtkomsten till databasen.

SINGLE_USER

gäller för: SQL Server

Anger att endast en användare i taget kan komma åt databasen. Om du anger SINGLE_USER och en annan användare ansluter till databasen blockeras ALTER DATABASE-instruktionen tills alla användare kopplar från den angivna databasen. Information om hur du åsidosätter det här beteendet finns i satsen MED <avslutning>.

Databasen förblir i SINGLE_USER läge även om användaren som anger alternativet loggar ut. Då kan en annan användare, men bara en, ansluta till databasen.

Innan du ställer in databasen på SINGLE_USER kontrollerar du att alternativet AUTO_UPDATE_STATISTICS_ASYNC är inställt på AV. När den är inställd på PÅ, tar den bakgrundstråd som används för att uppdatera statistik en anslutning mot databasen och du kan inte komma åt databasen i enanvändarläge. Om du vill visa status för det här alternativet frågar du kolumnen is_auto_update_stats_async_on i sys.databases katalogvy. Om alternativet är inställt på PÅ utför du följande uppgifter:

  1. Ställ in AUTO_UPDATE_STATISTICS_ASYNC på AV.

  2. Sök efter aktiva asynkrona statistikjobb genom att fråga sys.dm_exec_background_job_queue dynamisk hanteringsvy.

Om det finns aktiva jobb kan du antingen låta jobben slutföra eller avsluta dem manuellt med hjälp av KILL STATS JOB.

RESTRICTED_USER

Tillåter endast medlemmar i den db_owner fasta databasrollen och dbcreator och sysadmin fasta serverroller att ansluta till databasen. RESTRICTED_USER begränsar inte deras antal. Koppla från alla anslutningar till databasen med den tidsram som anges i ALTER DATABASE-instruktionens avslutningssats. När databasen har övergått till RESTRICTED_USER tillstånd nekas anslutningsförsök av okvalificerade användare.

MULTI_USER

Alla användare som har rätt behörighet att ansluta till databasen tillåts. Du kan fastställa det här alternativets status genom att undersöka kolumnen user_access i sys.databases katalogvy. Du kan också fastställa statusen genom att undersöka egenskapen UserAccess för funktionen DATABASEPROPERTYEX.

<delayed_durability_option> ::=

gäller för: SQL Server (från och med SQL Server 2014 (12.x))

Styr om transaktioner checkar in helt varaktiga eller fördröjda varaktiga.

  • HANDIKAPPAD

    Alla transaktioner som följer SET DISABLED är helt hållbara. Eventuella hållbarhetsalternativ som anges i ett atomiskt block eller incheckningsinstruktivt uttryck ignoreras.

  • TILLÅTEN

    Alla transaktioner som följer SET ALLOWED är antingen helt hållbara eller fördröjda varaktiga, beroende på hållbarhetsalternativet som anges i atomblocket eller incheckningsinstrukeringen.

  • FORCERAD

    Alla transaktioner som följer SET FORCED är fördröjda varaktiga. Eventuella hållbarhetsalternativ som anges i ett atomiskt block eller incheckningsinstruktivt uttryck ignoreras.

<external_access_option> ::=

gäller för: SQL Server

Styr om databasen kan nås av externa resurser, till exempel objekt från en annan databas.

DB_CHAINING { ON | AV }

  • Databasen kan vara källan eller målet för en ägarkedja mellan databaser.

  • BORT

    Databasen kan inte delta i korsdatabasägarlänkning.

Viktig

Sql Server-instansen känner igen den här inställningen när alternativet korsdatabasägarlänkningsserver är 0 (OFF). När korsdatabasens ägarlänkning är 1 (ON) kan alla användardatabaser delta i ägarkedjor mellan databaser, oavsett värdet för det här alternativet. Det här alternativet anges med hjälp av sp_configure.

Om du vill ange det här alternativet kräver CONTROL SERVER behörighet för databasen.

Det DB_CHAINING alternativet kan inte anges för master, modeloch tempdb systemdatabaser.

Du kan fastställa det här alternativets status genom att undersöka kolumnen is_db_chaining_on i sys.databases katalogvy.

TRUSTWORTHY { ON | AV }

  • Databasmoduler (till exempel användardefinierade funktioner eller lagrade procedurer) som använder en personifieringskontext kan komma åt resurser utanför databasen.

  • BORT

    Databasmoduler i en personifieringskontext kan inte komma åt resurser utanför databasen.

    TRUSTWORTHY anges till AV när databasen är ansluten.

Som standard har alla systemdatabaser utom den msdb databasen TRUSTWORTHY inställt på AV. Det går inte att ändra värdet för model- och tempdb-databaserna. Vi rekommenderar att du aldrig anger alternativet TRUSTWORTHY till PÅ för master-databasen.

Om du vill ange det här alternativet kräver CONTROL SERVER behörighet för databasen.

Du kan fastställa det här alternativets status genom att undersöka kolumnen is_trustworthy_on i sys.databases katalogvy.

DEFAULT_FULLTEXT_LANGUAGE

gäller för: SQL Server (från och med SQL Server 2012 (11.x))

Anger standardspråkvärdet för fulltextindexerade kolumner.

Viktig

Det här alternativet kan endast tillåtas när CONTAINMENT har angetts till PARTIELL. Om CONTAINMENT är inställt på NONE uppstår fel.

DEFAULT_LANGUAGE

gäller för: SQL Server (från och med SQL Server 2012 (11.x))

Anger standardspråket för alla nyligen skapade inloggningar. Språket kan anges genom att ange det lokala ID:t (lcid), språknamnet eller språkaliaset. En lista över godtagbara språknamn och alias finns i sys.syslanguages. Det här alternativet kan endast tillåtas när CONTAINMENT har angetts till PARTIELL. Om CONTAINMENT är inställt på NONE uppstår fel.

NESTED_TRIGGERS

gäller för: SQL Server (från och med SQL Server 2012 (11.x))

Anger om en AFTER-utlösare kan kaskad; det vill: utföra en åtgärd som initierar en annan utlösare, som initierar en annan utlösare och så vidare. Det här alternativet kan endast tillåtas när CONTAINMENT har angetts till PARTIELL. Om CONTAINMENT är inställt på NONE uppstår fel.

TRANSFORM_NOISE_WORDS

gäller för: SQL Server (från och med SQL Server 2012 (11.x))

Används för att förhindra ett felmeddelande om brusord eller stoppord gör att en boolesk åtgärd i en fulltextfråga misslyckas. Det här alternativet kan endast tillåtas när CONTAINMENT har angetts till PARTIELL. Om CONTAINMENT är inställt på NONE uppstår fel.

TWO_DIGIT_YEAR_CUTOFF

gäller för: SQL Server (från och med SQL Server 2012 (11.x))

Anger ett heltal från 1753 till 9999 som representerar brytåret för att tolka tvåsiffriga år som fyrsiffriga år. Det här alternativet kan endast tillåtas när CONTAINMENT har angetts till PARTIELL. Om CONTAINMENT är inställt på NONE uppstår fel.

<FILESTREAM_option> ::=

gäller för: SQL Server (från och med SQL Server 2012 (11.x))

Styr inställningarna för FileTables.

NON_TRANSACTED_ACCESS = { OFF | READ_ONLY | FULL }

  • BORT

    Icke-transaktionell åtkomst till FileTable-data är inaktiverad.

  • READ_ONLY

    FILESTREAM-data i FileTables i den här databasen kan läsas av icke-transaktionella processer.

  • FULL

    Aktiverar fullständig, icke-transaktionell åtkomst till FILESTREAM-data i FileTables är aktiverat.

DIRECTORY_NAME = <directory_name>

Ett Windows-kompatibelt katalognamn. Det här namnet ska vara unikt bland alla katalognamn på databasnivå i SQL Server-instansen. Unikhetsjämförelse är skiftlägeskänslig, oavsett sorteringsinställningar. Det här alternativet måste anges innan du skapar en FileTable i den här databasen.

<HADR_options> ::=

gäller för: SQL Server

Se ALTER DATABASE SET HADR.

<mixed_page_allocation_option> ::=

gäller för: SQL Server (från och med SQL Server 2016 (13.x))

Styr om databasen kan skapa inledande sidor med en blandad omfattning för de första åtta sidorna i en tabell eller ett index.

MIXED_PAGE_ALLOCATION { OFF | PÅ }

  • BORT

    Databasen skapar alltid inledande sidor med enhetliga omfattningar. OFF är standardvärdet.

  • Databasen kan skapa inledande sidor med blandade omfattningar.

Den här inställningen är PÅ för alla systemdatabaser. Den tempdb systemdatabasen är den enda systemdatabasen som stöder OFF.

<PARAMETERIZATION_option> ::=

Styr parameteriseringsalternativet. Mer information om parameterisering finns i arkitekturguiden för frågebearbetning.

PARAMETERIZATION { SIMPLE | FORCED }

  • ENKEL

    Frågor parametriseras baserat på databasens standardbeteende.

  • FORCERAD

    SQL Server parameteriserar alla frågor i databasen.

Den aktuella inställningen för det här alternativet kan fastställas genom att undersöka kolumnen is_parameterization_forced i sys.databases katalogvy.

<query_store_options> ::=

gäller för: SQL Server (från och med SQL Server 2016 (13.x))

PÅ | OFF [ ( FORCED ) ] | RENSA [ ALLA ]

Styr om Query Store är aktiverat i den här databasen och styr även borttagningen av innehållet i Query Store. Mer information finns i Användningsscenarier för frågearkivet.

  • Aktiverar Query Store.

    Många nya prestandafunktioner i SQL Server 2022 (16.x) som Query Store-tips, CE-feedback, DOP-feedback (Degree of Parallelism) och MGF-beständighet (Memory Grant Feedback) krävde att Query Store skulle aktiveras. För databaser som har återställts från andra SQL Server-instanser och för de databaser som uppgraderas från en uppgradering på plats till SQL Server 2022 (16.x) behåller dessa databaser de tidigare Query Store-inställningarna. Om det finns en oro för att query store kan introduceras kan administratörer använda anpassade avbildningsprinciper med QUERY_CAPTURE_MODE = CUSTOM. Exempel på hur du aktiverar Query Store med anpassade alternativ för avbildningsprinciper finns i avsnittet Exempel senare i den här artikeln.

  • AV [ ( TVINGAD ) ]

    Inaktiverar Query Store. FORCED är valfritt. FORCED avbryter alla bakgrundsaktiviteter som körs i Query Store och hoppar över den synkrona tömningen när Query Store är inaktiverat. Gör att Query Store stängs av så snabbt som möjligt. FORCED gäller för SQL Server 2016 (13.x) SP2 CU14, SQL Server 2017 (14.x) CU21, SQL Server 2019 (15.x) CU6 och senare versioner.

    Not

    Det går inte att inaktivera Query Store i Azure SQL Database. Om du kör ALTER DATABASE [database] SET QUERY_STORE = OFF returneras varningen 'QUERY_STORE=OFF' is not supported in this version of SQL Server..

  • RENSA [ ALLA ]

    Tar bort frågerelaterade data från Query Store. ALL är valfritt. ALLA tar bort frågerelaterade data och metadata från Query Store.

OPERATION_MODE { READ_ONLY | READ_WRITE }

Beskriver åtgärdsläget för Query Store.

READ_WRITE

Query Store samlar in och bevarar information om körningsstatistik för frågeplan och körning.

READ_ONLY

Information kan läsas från Query Store, men ny information läggs inte till. Om det maximala utfärdade utrymmet i Query Store har förbrukats ändrar Query Store sitt åtgärdsläge till READ_ONLY.

CLEANUP_POLICY

Beskriver datakvarhållningsprincipen för Query Store. STALE_QUERY_THRESHOLD_DAYS avgör hur många dagar informationen för en fråga ska lagras i Frågearkivet. STALE_QUERY_THRESHOLD_DAYS är typ bigint. Standardvärdet är 30.

DATA_FLUSH_INTERVAL_SECONDS

Avgör hur ofta data som skrivs till Query Store sparas på disken. För att optimera prestanda skrivs data som samlas in av Query Store asynkront till disken. Frekvensen för den här asynkrona överföringen konfigureras med hjälp av argumentet DATA_FLUSH_INTERVAL_SECONDS. DATA_FLUSH_INTERVAL_SECONDS är typ bigint. Standardvärdet är 900 (15 min).

MAX_STORAGE_SIZE_MB

Avgör vilket utrymme som utfärdas till Query Store. MAX_STORAGE_SIZE_MB är typ bigint. Standardvärdet är 100 MB för SQL Server (SQL Server 2016 (13.x) via SQL Server 2017 (14.x).) Från och med SQL Server 2019 (15.x) är standardvärdet 1 000 MB.

MAX_STORAGE_SIZE_MB gränsen tillämpas inte strikt. Lagringsstorleken kontrolleras endast när Query Store skriver data till disk. Det här intervallet anges av alternativet DATA_FLUSH_INTERVAL_SECONDS eller dialogrutan Management Studio Query Store dataspolningsintervall. Standardvärdet för intervallet är 900 sekunder (eller 15 minuter).

Om Query Store har överskridit gränsen för MAX_STORAGE_SIZE_MB mellan kontroller av lagringsstorlek övergår den till skrivskyddat läge. Om SIZE_BASED_CLEANUP_MODE är aktiverat utlöses även rensningsmekanismen för att framtvinga gränsen för MAX_STORAGE_SIZE_MB.

När tillräckligt med utrymme har rensats växlar Query Store-läget automatiskt tillbaka till läs-och skrivläge.

Viktig

Om du tror att din arbetsbelastningsinsamling behöver mer än 10 GB diskutrymme bör du förmodligen tänka om och optimera arbetsbelastningen för att återanvända frågeplaner (till exempel genom att använda tvingad parameteriseringeller justera Query Store-konfigurationerna. Från och med SQL Server 2019 (15.x) och i Azure SQL Database kan du ange QUERY_CAPTURE_MODE till ANPASSAD för ytterligare kontroll över frågeinsamlingsprincipen.

INTERVAL_LENGTH_MINUTES

Avgör tidsintervallet med vilket körningsstatistikdata aggregeras till Query Store. För att optimera för utrymmesanvändning aggregeras körningsstatistiken i statistikarkivet för körning över ett fast tidsfönster. Det här fasta tidsfönstret konfigureras med hjälp av argumentet INTERVAL_LENGTH_MINUTES. INTERVAL_LENGTH_MINUTES är typ bigint. Standardvärdet är 60.

SIZE_BASED_CLEANUP_MODE { AUTO | AV }

Styr om rensningen automatiskt aktiveras när den totala mängden data kommer nära maximal storlek.

  • BIL

    Storleksbaserad rensning aktiveras automatiskt när storleken på disken når 90% av MAX_STORAGE_SIZE_MB. Storleksbaserad rensning tar bort de billigaste och äldsta frågorna först. Den stannar vid cirka 80% av MAX_STORAGE_SIZE_MB. Det här värdet är standardkonfigurationsvärdet.

  • BORT

    Storleksbaserad rensning aktiveras inte automatiskt.

SIZE_BASED_CLEANUP_MODE är typ nvarchar.

QUERY_CAPTURE_MODE { ALLA | AUTO | ANPASSAD | NONE }

Anger det aktuella aktiva frågeinsamlingsläget. Varje läge definierar specifika principer för frågeinsamling. QUERY_CAPTURE_MODE är typ nvarchar.

Not

Markörer, frågor i lagrade procedurer och inbyggda kompilerade frågor registreras alltid när frågeinsamlingsläget är inställt på ALLA, AUTO eller CUSTOM.

  • ALLA

    Samlar in alla frågor. ALL är standardkonfigurationsvärdet för SQL Server (SQL Server 2016 (13.x) via SQL Server 2017 (14.x)).

  • BIL

    Samla in relevanta frågor baserat på körningsantal och resursförbrukning. Det här är standardkonfigurationsvärdet för SQL Server (från och med SQL Server 2019 (15.x)) och Azure SQL Database.

  • INGEN

    Sluta samla in nya frågor. Query Store fortsätter att samla in kompilerings- och körningsstatistik för frågor som redan har samlats in. Använd den här konfigurationen med försiktighet eftersom du kanske inte kan samla in viktiga frågor.

  • SED

    gäller för: SQL Server (från och med SQL Server 2019 (15.x))

    Tillåter kontroll över QUERY_CAPTURE_POLICY alternativ. Anpassade avbildningsprinciper kan hjälpa Query Store att samla in de viktigaste frågorna i din arbetsbelastning. Se <query_capture_policy_option_list> för anpassningsbara alternativ.

MAX_PLANS_PER_QUERY

Definierar det maximala antalet planer som underhålls för varje fråga. MAX_PLANS_PER_QUERY är typ int. Standardvärdet är 200.

WAIT_STATS_CAPTURE_MODE { ON | AV }

gäller för: SQL Server (från och med SQL Server 2017 (14.x)))

Styr om väntestatistik hämtas per fråga.

  • Information om väntestatistik per fråga samlas in. Det här värdet är standardkonfigurationsvärdet.

  • BORT

    Information om väntestatistik per fråga samlas inte in.

<query_capture_policy_option_list> :: =

gäller för: SQL Server (från och med SQL Server 2019 (15.x))

Styr Query Store- avbildningsprincipalternativ. Förutom STALE_CAPTURE_POLICY_THRESHOLD definierar dessa alternativ de OR-villkor som måste ske för att frågor ska samlas in i det definierade tröskelvärdet för inaktuell avbildningsprincip.

Från och med SQL Server 2019 (15.x) samlar inställningen QUERY_CAPTURE_MODE = AUTO in information om Query Store när något av följande tröskelvärden uppnås:

  • EXECUTION_COUNT = 30 körningar = körningsantal
  • TOTAL_COMPILE_CPU_TIME_MS = 1 sekund = kompileringstid i millisekunder
  • TOTAL_EXECUTION_CPU_TIME_MS = 100 ms = cpu-körningstid i millisekunder

Till exempel:

EXECUTION_COUNT = 30,
TOTAL_COMPILE_CPU_TIME_MS = 1000,
TOTAL_EXECUTION_CPU_TIME_MS = 100

Du kan anpassa dessa alternativ med QUERY_CAPTURE_MODE = CUSTOM:

  • STALE_CAPTURE_POLICY_THRESHOLD = heltal { DAYS | TIMMAR }

    Definierar utvärderingsintervallperioden för att avgöra om en fråga ska samlas in. Standardvärdet är 1 dag och kan anges från 1 timme till sju dagar.

  • EXECUTION_COUNT = heltal

    Definierar hur många gånger en fråga körs under utvärderingsperioden. Standardvärdet är 30, vilket innebär att för standardtröskelvärdet för inaktuell avbildningsprincip måste en fråga köras minst 30 gånger på en dag för att sparas i Query Store. EXECUTION_COUNT är typ int.

  • TOTAL_COMPILE_CPU_TIME_MS = heltal

    Definierar den totala förflutna kompileringstiden för cpu som används av en fråga under utvärderingsperioden. Standardvärdet är 1 000, vilket innebär att för standardtröskelvärdet för inaktuell avbildningsprincip måste en fråga ha minst en sekund cpu-tid under frågekompilering på en dag för att sparas i Query Store. TOTAL_COMPILE_CPU_TIME_MS är typ int.

  • TOTAL_EXECUTION_CPU_TIME_MS = heltal

    Definierar den totala förflutna körningens CPU-tid som används av en fråga under utvärderingsperioden. Standardvärdet är 100, vilket innebär att för standardtröskelvärdet för inaktuell avbildningsprincip måste en fråga ha totalt minst 100 ms cpu-tid under körningen på en dag för att sparas i Query Store. TOTAL_EXECUTION_CPU_TIME_MS är typ int.

<recovery_option> ::=

gäller för: SQL Server

Styr alternativen för databasåterställning och disk-I/O-felkontroll.

  • FULL

    Ger fullständig återställning efter mediefel med hjälp av säkerhetskopior av transaktionsloggar. Om en datafil är skadad kan medieåterställning återställa alla checkade transaktioner. Mer information finns i Recovery-modeller.

  • BULK_LOGGED

    Ger återställning efter mediefel. Kombinerar bästa prestanda och minsta möjliga användning av loggutrymme för vissa storskaliga åtgärder eller massåtgärder. Information om vilka åtgärder som kan loggas minimalt finns i Transaktionsloggen. Under den BULK_LOGGED återställningsmodellen är loggning för dessa åtgärder minimal. Mer information finns i Recovery-modeller.

  • ENKEL

    En enkel säkerhetskopieringsstrategi som använder minimalt loggutrymme tillhandahålls. Loggutrymme kan återanvändas automatiskt när det inte längre krävs för återställning av serverfel. Mer information finns i Recovery-modeller.

    Viktig

    Den enkla återställningsmodellen är enklare att hantera än de andra två modellerna, men på bekostnad av större exponering för dataförlust om en datafil skadas. Alla ändringar sedan den senaste databas- eller differentiella databassäkerhetskopian går förlorade och måste återaktiveras manuellt.

Standardåterställningsmodellen bestäms av återställningsmodellen för model-systemdatabasen. Mer information om hur du väljer lämplig återställningsmodell finns i Recovery-modeller.

Du kan fastställa det här alternativets status genom att undersöka kolumnerna recovery_model och recovery_model_desc i sys.databases katalogvy. Du kan också fastställa statusen genom att undersöka egenskapen Recovery för funktionen DATABASEPROPERTYEX.

TORN_PAGE_DETECTION { ON | AV }

  • Ofullständiga sidor kan identifieras av databasmotorn.

  • BORT

    Det går inte att identifiera ofullständiga sidor av databasmotorn.

Viktig

Syntaxstrukturen TORN_PAGE_DETECTION ON | OFF tas bort i en framtida version av SQL Server. Undvik att använda den här syntaxstrukturen i det nya utvecklingsarbetet och planera att ändra program som för närvarande använder syntaxstrukturen. Använd alternativet PAGE_VERIFY i stället.

PAGE_VERIFY { CHECKSUM | TORN_PAGE_DETECTION | NONE }

Identifierar skadade databassidor som orsakas av disk-I/O-sökvägsfel. Fel med disk-I/O-sökväg kan vara orsaken till problem med databasskada. De här felen orsakas oftast av strömavbrott eller maskinvarufel som uppstår när sidan skrivs till disk.

  • KONTROLLSUMMA

    Beräknar en kontrollsumma över hela sidans innehåll och lagrar värdet i sidhuvudet när en sida skrivs till disk. När sidan läss från disken omberäknas kontrollsumman och jämförs med värdet för kontrollsumman som lagras i sidhuvudet. Om värdena inte matchar rapporteras felmeddelandet 824 (som anger ett kontrollsummafel) till både SQL Server-felloggen och Windows-händelseloggen. Ett kontrollsummafel anger ett I/O-sökvägsproblem. För att fastställa rotorsaken krävs undersökning av maskinvara, drivrutiner för inbyggd programvara, BIOS, filterdrivrutiner (till exempel virusprogram) och andra I/O-sökvägskomponenter.

  • TORN_PAGE_DETECTION

    Sparar ett specifikt 2-bitarsmönster för varje 512 byte-sektor på databassidan på 8 kilobyte (KB) och lagras i sidhuvudet för databasen när sidan skrivs till disk. När sidan läss från disk jämförs de sönderrivna bitarna som lagras i sidhuvudet med den faktiska sidsektorinformationen.

    Omatchade värden anger att endast en del av sidan skrevs till disk. I det här fallet rapporteras felmeddelandet 824 (som anger ett fel på en skadad sida) till både SQL Server-felloggen och Windows-händelseloggen. Skadade sidor identifieras vanligtvis av databasåterställning om det verkligen är en ofullständig skrivning av en sida. Andra I/O-sökvägsfel kan dock orsaka en sönderriven sida när som helst.

  • INGEN

    Skrivningar på databassidan genererar inte ett CHECKSUM- eller TORN_PAGE_DETECTION-värde. SQL Server verifierar inte en kontrollsumma eller en sönderriven sida under en läsning, även om ett CHECKSUM- eller TORN_PAGE_DETECTION-värde finns i sidhuvudet.

Tänk på följande viktiga punkter när du använder alternativet PAGE_VERIFY:

  • Standardvärdet är CHECKSUM.

  • När en användare eller systemdatabas uppgraderas till SQL Server 2005 (9.x) eller en senare version ändras inte PAGE_VERIFY-värdet (NONE eller TORN_PAGE_DETECTION). Vi rekommenderar att du ändrar till CHECKSUM.

    Not

    I tidigare versioner av SQL Server är alternativet PAGE_VERIFY databas inställt på NONE för tempdb-databasen och kan inte ändras. Från och med SQL Server 2008 (10.0.x) är standardvärdet för tempdb-databasen CHECKSUM för nya installationer av SQL Server. När du uppgraderar en SQL Server-installation förblir standardvärdet NONE. Alternativet kan ändras. Vi rekommenderar att du använder CHECKSUM för tempdb-databasen.

  • TORN_PAGE_DETECTION kan använda färre resurser, men ger en minimal delmängd av CHECKSUM-skyddet.

  • PAGE_VERIFY kan ställas in utan att databasen kopplas från, låsa databasen eller på annat sätt hindra samtidighet i databasen.

  • CHECKSUM är ömsesidigt uteslutande för TORN_PAGE_DETECTION. Båda alternativen kan inte aktiveras samtidigt.

När ett fel på en trasig sida eller kontrollsumma identifieras kan du återställa genom att återställa data eller eventuellt återskapa indexet om felet endast är begränsat till indexsidor. Om du stöter på ett kontrollsummafel kör du DBCC CHECKDB för att fastställa vilken typ av databassida eller vilka sidor som påverkas. Mer information om återställningsalternativ finns i RESTORE-argument. Även om återställning av data löser problemet med skadade data, bör rotorsaken (till exempel diskmaskinvarufel) diagnostiseras och korrigeras så snart som möjligt för att förhindra fortsatta fel.

SQL Server försöker läsa igen som misslyckas med en kontrollsumma, en sönderriven sida eller ett annat I/O-fel fyra gånger. Om läsningen lyckas i något av återförsöken skrivs ett meddelande till felloggen. Kommandot som utlöste läsningen fortsätter. Kommandot misslyckas med felmeddelandet 824 om försöken misslyckas.

Mer information om felmeddelanden 823, 824 och 825 finns i:

Den aktuella inställningen för det här alternativet kan fastställas genom att undersöka kolumnen page_verify_option i sys.databases katalogvy eller egenskapen IsTornPageDetectionEnabled för funktionen DATABASEPROPERTYEX.

<remote_data_archive_option> ::=

gäller för: SQL Server (från och med SQL Server 2016 (13.x))

Aktiverar eller inaktiverar Stretch Database för databasen. Mer information finns i Stretch Database.

Viktig

Stretch Database är inaktuell i SQL Server 2022 (16.x) och Azure SQL Database. Den här funktionen tas bort i en framtida version av databasmotorn. Undvik att använda den här funktionen i nytt utvecklingsarbete och planera att ändra program som för närvarande använder den här funktionen.

REMOTE_DATA_ARCHIVE = { ON ( SERVER = <server_name>, { CREDENTIAL = <db_scoped_credential_name> | FEDERATED_SERVICE_ACCOUNT = ON | OFF } ) | BORT

  • Aktiverar Stretch Database för databasen. Mer information, inklusive ytterligare krav, finns i Aktivera Stretch Database för en databas.

    Kräver db_owner behörighet för att aktivera Stretch Database för en tabell. Kräver db_owner- och CONTROL DATABASE behörigheter för att aktivera Stretch Database för en databas.

    • SERVER = <server_name>

      Anger adressen till Azure-servern. Ta med .database.windows.net delen av namnet. Till exempel MyStretchDatabaseServer.database.windows.net.

    • CREDENTIAL = <db_scoped_credential_name>

      Anger databasens begränsade autentiseringsuppgifter som SQL Server-instansen använder för att ansluta till Azure-servern. Kontrollera att autentiseringsuppgifterna finns innan du kör det här kommandot. Mer information finns i CREATE DATABASE SCOPED CREDENTIAL.

    • FEDERATED_SERVICE_ACCOUNT = { ON | AV }

      Du kan använda ett federerat tjänstkonto för den lokala SQL Server för att kommunicera med den fjärranslutna Azure-servern när följande villkor är uppfyllda.

      • Tjänstkontot som sql Server-instansen körs under är ett domänkonto.
      • Domänkontot tillhör en domän vars Active Directory är federerat med Microsoft Entra-ID.
      • Den fjärranslutna Azure-servern har konfigurerats för att stödja Microsoft Entra-autentisering.
      • Tjänstkontot som sql Server-instansen körs under måste konfigureras som ett dbmanager- eller sysadmin-konto på den fjärranslutna Azure-servern.

      Om du anger att det federerade tjänstkontot är PÅ kan du inte heller ange argumentet CREDENTIAL. Ange argumentet CREDENTIAL om du anger AV.

  • BORT

    Inaktiverar Stretch Database för databasen. Mer information finns i Inaktivera Stretch Database och ta tillbaka fjärrdata.

    Du kan bara inaktivera Stretch Database för en databas när databasen inte längre innehåller några tabeller som är aktiverade för Stretch Database. När du har inaktiverat Stretch Database stoppas datamigreringen. Frågeresultat innehåller inte längre resultat från fjärrtabeller.

    Om du inaktiverar Stretch Database tar du inte bort fjärrdatabasen. Om du vill ta bort fjärrdatabasen släpper du den med hjälp av Azure-portalen.

PERSISTENT_LOG_BUFFER

gäller för: SQL Server 2017 (14.x) och senare.

När det här alternativet har angetts skapas transaktionsloggbufferten på en volym som finns på en diskenhet som backas upp av Lagringsklassminne (NVDIMM-N icke-lagring), även kallat en beständig loggbuffert. Mer information finns i acceleration av fördröjning vid transaktionsincheckning med lagringsklassminne och Lägg till beständig loggbuffert i en databas.

<service_broker_option> ::=

gäller för: SQL Server

Styr följande alternativ för Service Broker: aktiverar eller inaktiverar meddelandeleverans, anger en ny Service Broker-identifierare eller anger konversationsprioriteringar till PÅ eller AV.

ENABLE_BROKER

Anger att Service Broker är aktiverat för den angivna databasen. Meddelandeleveransen startas och flaggan is_broker_enabled anges till true i sys.databases katalogvy. Databasen behåller den befintliga Service Broker-identifieraren. Det går inte att aktivera tjänstkoordinatorn medan databasen är huvudnamnet i en databasspeglingskonfiguration.

Not

ENABLE_BROKER kräver ett exklusivt databaslås. Om andra sessioner har låsta resurser i databasen väntar ENABLE_BROKER tills de andra sessionerna släpper sina lås. Om du vill aktivera Service Broker i en användardatabas kontrollerar du att inga andra sessioner använder databasen innan du kör ALTER DATABASE SET ENABLE_BROKER-instruktionen, till exempel genom att placera databasen i enanvändarläge. Om du vill aktivera Service Broker i msdb-databasen stoppar du först SQL Server Agent så att Service Broker kan hämta det nödvändiga låset.

DISABLE_BROKER

Anger att Service Broker är inaktiverat för den angivna databasen. Meddelandeleveransen stoppas och flaggan is_broker_enabled är inställd på false i sys.databases katalogvy. Databasen behåller den befintliga Service Broker-identifieraren.

NEW_BROKER

Anger att databasen ska få en ny koordinatoridentifierare. Databasen fungerar som en ny tjänstkoordinator. Därför tas alla befintliga konversationer i databasen bort omedelbart utan att slutdialogrutor skapas. Alla vägar som refererar till den gamla Service Broker-identifieraren måste återskapas med den nya identifieraren.

ERROR_BROKER_CONVERSATIONS

Anger att Service Broker-meddelandeleverans är aktiverat. Den här inställningen bevarar den befintliga Service Broker-identifieraren för databasen. Service Broker avslutar alla konversationer i databasen med ett fel. Med den här inställningen kan program köra regelbunden rensning för befintliga konversationer.

HONOR_BROKER_PRIORITY { ON | AV }

  • Skicka åtgärder tar hänsyn till de prioritetsnivåer som tilldelas konversationer. Meddelanden från konversationer med hög prioritet skickas före meddelanden från konversationer som tilldelas lågprioriterad nivå.

  • BORT

    Skicka åtgärder körs som om alla konversationer har standardprioritetsnivån.

Ändringar av alternativet HONOR_BROKER_PRIORITY börjar gälla omedelbart för nya dialogrutor eller dialogrutor som inte har några meddelanden som väntar på att skickas. Dialogrutor med meddelanden som ska skickas när ALTER DATABASE körs hämtar inte den nya inställningen förrän några av meddelandena för dialogrutan har skickats. Tiden innan alla dialogrutor börjar använda den nya inställningen kan variera avsevärt.

Den aktuella inställningen för den här egenskapen rapporteras i kolumnen is_broker_priority_honored i sys.databases katalogvy.

<snapshot_option> ::=

Beräknar transaktionsisoleringsnivån.

ALLOW_SNAPSHOT_ISOLATION { ON | AV }

  • Aktiverar alternativet Ögonblicksbild på databasnivå. När den är aktiverad börjar DML-instruktioner generera radversioner även när ingen transaktion använder ögonblicksbildisolering. När det här alternativet har aktiverats kan transaktioner ange transaktionsisoleringsnivån SNAPSHOT. När en transaktion körs på ögonblicksbildisoleringsnivå ser alla instruktioner en ögonblicksbild av data eftersom den finns i början av transaktionen. Om en transaktion som körs på ögonblicksbildisoleringsnivå har åtkomst till data i flera databaser måste antingen ALLOW_SNAPSHOT_ISOLATION anges till PÅ i alla databaser, eller så måste varje instruktion i transaktionen använda låstips för alla referenser i en FROM-sats till en tabell i en databas där ALLOW_SNAPSHOT_ISOLATION är AV.

  • BORT

    Inaktiverar alternativet Ögonblicksbild på databasnivå. Transaktioner kan inte ange transaktionsisoleringsnivån ÖGONBLICKSBILD.

När du ställer in ALLOW_SNAPSHOT_ISOLATION till ett nytt tillstånd (från PÅ till AV eller från AV till PÅ) returnerar ALTER DATABASE inte kontrollen till anroparen förrän alla befintliga transaktioner i databasen har checkats in. Om databasen redan är i det tillstånd som anges i ALTER DATABASE-instruktionen returneras kontrollen till anroparen omedelbart. Om ALTER DATABASE-instruktionen inte returneras snabbt använder du sys.dm_tran_active_snapshot_database_transactions för att avgöra om det finns långvariga transaktioner. Om ALTER DATABASE-instruktionen avbryts förblir databasen i det tillstånd den befann sig i när ALTER DATABASE startades. sys.databases katalogvy anger tillståndet för transaktioner med ögonblicksbildisolering i databasen. Om snapshot_isolation_state_desc = IN_TRANSITION_TO_ON pausar kommandot ALTER DATABASE ... ALLOW_SNAPSHOT_ISOLATION OFF sex sekunder och försöker utföra åtgärden igen.

Du kan inte ändra tillståndet för ALLOW_SNAPSHOT_ISOLATION om databasen är OFFLINE.

Om du anger ALLOW_SNAPSHOT_ISOLATION i en READ_ONLY databas behålls inställningen om databasen senare anges till READ_WRITE.

Du kan ändra inställningarna för ALLOW_SNAPSHOT_ISOLATION för databaserna master, model, msdboch tempdb. Inställningen behålls varje gång instansen av databasmotorn stoppas och startas om om du ändrar inställningen för tempdb. Om du ändrar inställningen för modelblir den inställningen standard för alla nya databaser som skapas, förutom för tempdb.

Alternativet är PÅ som standard för databaserna master och msdb.

Den aktuella inställningen för det här alternativet kan fastställas genom att undersöka kolumnen snapshot_isolation_state i sys.databases katalogvy.

READ_COMMITTED_SNAPSHOT { ON | AV }

  • Aktiverar alternativet Read-Committed Ögonblicksbild på databasnivå. När den är aktiverad börjar DML-instruktioner generera radversioner även när ingen transaktion använder ögonblicksbildisolering. När det här alternativet har aktiverats använder transaktionerna som anger den incheckade isoleringsnivån radversioner i stället för låsning. Alla instruktioner ser en ögonblicksbild av data eftersom den finns i början av -instruktionen när en transaktion körs på READ COMMITTED-isoleringsnivån.

  • BORT

    Inaktiverar Read-Committed alternativet Ögonblicksbild på databasnivå. Transaktioner som anger READ COMMITTED-isoleringsnivån använder låsning.

Om du vill ange READ_COMMITTED_SNAPSHOT PÅ eller AV får det inte finnas några aktiva anslutningar till databasen förutom anslutningen som kör KOMMANDOT ALTER DATABASE. Databasen behöver dock inte vara i enanvändarläge. Du kan inte ändra tillståndet för det här alternativet när databasen är OFFLINE.

Om du anger READ_COMMITTED_SNAPSHOT i en READ_ONLY databas behålls inställningen när databasen senare anges till READ_WRITE.

READ_COMMITTED_SNAPSHOT kan inte aktiveras för master, tempdbeller msdb systemdatabaser. Om du ändrar inställningen för modelblir den inställningen standard för alla nya databaser som skapats, förutom för tempdb.

Den aktuella inställningen för det här alternativet kan fastställas genom att undersöka kolumnen is_read_committed_snapshot_on i sys.databases katalogvy.

Varning

När en tabell skapas med DURABILITY = SCHEMA_ONLYoch READ_COMMITTED_SNAPSHOT sedan ändras med hjälp av ALTER DATABASEgår data i tabellen förlorade.

MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT { ON | AV }

gäller för: SQL Server (från och med SQL Server 2014 (12.x))

  • När transaktionsisoleringsnivån är inställd på en isoleringsnivå som är lägre än ÖGONBLICKSBILD körs alla tolkade Transact-SQL åtgärder på minnesoptimerade tabeller under ögonblicksbildisolering. Exempel på isoleringsnivåer som är lägre än ögonblicksbilder är READ COMMITTED eller READ UNCOMMITTED. Dessa åtgärder kör om transaktionsisoleringsnivån uttryckligen anges på sessionsnivå eller om standardvärdet används implicit.

  • BORT

    Höjer inte transaktionsisoleringsnivån för tolkade Transact-SQL åtgärder i minnesoptimerade tabeller.

Du kan inte ändra tillståndet för MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT om databasen är OFFLINE.

Standardalternativet är AV.

Den aktuella inställningen för det här alternativet kan fastställas genom att undersöka kolumnen is_memory_optimized_elevate_to_snapshot_on i sys.databases katalogvy.

<sql_option> ::=

Styr ANSI-efterlevnadsalternativen på databasnivå.

ANSI_NULL_DEFAULT { ON | AV }

Avgör standardvärdet, NULL eller NOT NULL, för en kolumn eller CLR-användardefinierad typ som nullabiliteten inte uttryckligen definieras för i CREATE TABLE- eller ALTER TABLE-uttryck. Kolumner som definieras med begränsningar följer villkorsregler oavsett vilken inställning den här inställningen kan vara.

  • Standardvärdet för en odefinierad kolumn är NULL.

  • BORT

    Standardvärdet för en odefinierad kolumn är INTE NULL.

Inställningar på anslutningsnivå som anges med set-instruktionen åsidosätter standardinställningen på databasnivå för ANSI_NULL_DEFAULT. ODBC- och OLE DB-klienter utfärdar en set-instruktionsinställning på anslutningsnivå ANSI_NULL_DEFAULT till PÅ för sessionen som standard. Klienterna kör -instruktionen när du ansluter till en instans av SQL Server. Mer information finns i SET ANSI_NULL_DFLT_ON.

För ANSI-kompatibilitet ändrar inställningen av databasalternativet ANSI_NULL_DEFAULT till PÅ databasens standardvärde till NULL.

Du kan fastställa det här alternativets status genom att undersöka kolumnen is_ansi_null_default_on i sys.databases katalogvy. Du kan också fastställa statusen genom att undersöka egenskapen IsAnsiNullDefault för funktionen DATABASEPROPERTYEX.

ANSI_NULLS { ON | AV }

  • Alla jämförelser med ett null-värde utvärderas till OKÄNT.

  • BORT

    Jämförelser av icke-Unicode-värden med ett nullvärde utvärderas till TRUE om båda värdena är NULL.

Viktig

I en framtida version av SQL Server kommer ANSI_NULLS alltid att vara PÅ och alla program som uttryckligen ställer in alternativet på AV genererar ett fel. Undvik att använda den här funktionen i nytt utvecklingsarbete och planera att ändra program som för närvarande använder den här funktionen.

Inställningar på anslutningsnivå som anges med set-instruktionen åsidosätter standarddatabasinställningen för ANSI_NULLS. ODBC- och OLE DB-klienter utfärdar en set-instruktionsinställning på anslutningsnivå ANSI_NULLS till PÅ för sessionen som standard. Klienterna kör -instruktionen när du ansluter till en instans av SQL Server. Mer information finns i SET ANSI_NULLS.

Viktig

ANGE ANSI_NULLS måste också anges till PÅ när du skapar eller gör ändringar i index för beräknade kolumner eller indexerade vyer.

Du kan fastställa det här alternativets status genom att undersöka kolumnen is_ansi_nulls_on i sys.databases katalogvy. Du kan också fastställa statusen genom att undersöka egenskapen IsAnsiNullsEnabled för funktionen DATABASEPROPERTYEX.

ANSI_PADDING { ON | AV }

  • Strängarna är vadderade till samma längd före konverteringen. Även vadderade till samma längd innan du infogar till en varchar eller nvarchar datatyp.

  • BORT

    Infogar avslutande blanksteg i teckenvärden i varchar eller nvarchar kolumner. Lämnar också avslutande nollor i binära värden som infogas i varbinära kolumner. Värden är inte vadderade till kolumnens längd.

    När OFF har angetts påverkar den här inställningen endast definitionen av nya kolumner.

Viktig

I en framtida version av SQL Server kommer ANSI_PADDING alltid att vara PÅ och alla program som uttryckligen ställer in alternativet på AV skapar ett fel. Undvik att använda den här funktionen i nytt utvecklingsarbete och planera att ändra program som för närvarande använder den här funktionen. Vi rekommenderar att du alltid ställer in ANSI_PADDING på PÅ. ANSI_PADDING måste vara PÅ när du skapar eller manipulerar index för beräknade kolumner eller indexerade vyer.

char(n) och binary(n) kolumner som tillåter null-värden är vadderade till kolumnlängden när ANSI_PADDING är inställt på PÅ. Avslutande blanksteg och nollor trimmas när ANSI_PADDING är AV. char(n) och binary(n) kolumner som inte tillåter nulls är alltid vadderade till längden på kolumnen.

Inställningar på anslutningsnivå som anges med set-instruktionen åsidosätter standardinställningen på databasnivå för ANSI_PADDING. ODBC- och OLE DB-klienter utfärdar som standard en inställning för SET-instruktion på anslutningsnivå ANSI_PADDING till PÅ för sessionen. Klienterna kör -instruktionen när du ansluter till en instans av SQL Server. Mer information finns i SET ANSI_PADDING.

Du kan fastställa det här alternativets status genom att undersöka kolumnen is_ansi_padding_on i sys.databases katalogvy. Du kan också fastställa statusen genom att undersöka egenskapen IsAnsiPaddingEnabled för funktionen DATABASEPROPERTYEX.

ANSI_WARNINGS { ON | AV }

  • Fel eller varningar utfärdas när villkor som divide-by-zero inträffar. Fel och varningar utfärdas också när null-värden visas i aggregerade funktioner.

  • BORT

    Inga varningar utlöses och nullvärden returneras när villkor som divide-by-zero inträffar.

Viktig

ANGE ANSI_WARNINGS måste anges till PÅ när du skapar eller gör ändringar i index för beräknade kolumner eller indexerade vyer.

Inställningar på anslutningsnivå som anges med set-instruktionen åsidosätter standarddatabasinställningen för ANSI_WARNINGS. ODBC- och OLE DB-klienter utfärdar en set-instruktionsinställning på anslutningsnivå ANSI_WARNINGS till PÅ för sessionen som standard. Klienterna kör -instruktionen när du ansluter till en instans av SQL Server. Mer information finns i SET-ANSI_WARNINGS.

Du kan fastställa det här alternativets status genom att undersöka kolumnen is_ansi_warnings_on i sys.databases katalogvy. Du kan också fastställa statusen genom att undersöka egenskapen IsAnsiWarningsEnabled för funktionen DATABASEPROPERTYEX.

ARITHABORT { ON | AV }

  • En fråga avslutas när ett spill eller divide-by-zero-fel inträffar under frågekörningen.

  • BORT

    Ett varningsmeddelande visas när ett av dessa fel inträffar. Frågan, batchen eller transaktionen fortsätter att bearbetas som om inget fel uppstod även om en varning visas.

Viktig

SET ARITHABORT måste anges till PÅ när du skapar eller gör ändringar i index för beräknade kolumner eller indexerade vyer.

Du kan fastställa det här alternativets status genom att undersöka kolumnen is_arithabort_on i sys.databases katalogvy. Du kan också fastställa statusen genom att undersöka egenskapen IsArithmeticAbortEnabled för funktionen DATABASEPROPERTYEX.

COMPATIBILITY_LEVEL = { 160 | 150 | 140 | 130 | 120 | 110 | 100 }

Mer information finns i ALTER DATABASE-kompatibilitetsnivå.

CONCAT_NULL_YIELDS_NULL { ON | AV }

  • Resultatet av en sammanfogningsåtgärd är NULL när någon av operanderna är NULL. Om du till exempel sammanfogar teckensträngen "This is" (Detta är) returnerar NULL-värdet i stället för värdet "Detta är".

  • BORT

    Null-värdet behandlas som en tom teckensträng.

Viktig

CONCAT_NULL_YIELDS_NULL måste anges till PÅ när du skapar eller gör ändringar i index i beräknade kolumner eller indexerade vyer.

I kommande versioner av SQL Server kommer CONCAT_NULL_YIELDS_NULL alltid att vara PÅ, och alla program som uttryckligen ställer in alternativet på AV utlöser ett fel. Undvik att använda den här funktionen i nytt utvecklingsarbete och planera att ändra program som för närvarande använder den här funktionen.

Inställningar på anslutningsnivå som anges med set-instruktionen åsidosätter standarddatabasinställningen för CONCAT_NULL_YIELDS_NULL. Som standard utfärdar ODBC- och OLE DB-klienter en inställning för SET-instruktion på anslutningsnivå CONCAT_NULL_YIELDS_NULL till PÅ för sessionen när du ansluter till en instans av SQL Server. Mer information finns i SET CONCAT_NULL_YIELDS_NULL.

Du kan fastställa det här alternativets status genom att undersöka kolumnen is_concat_null_yields_null_on i sys.databases katalogvy. Du kan också fastställa statusen genom att undersöka egenskapen IsNullConcat för funktionen DATABASEPROPERTYEX.

NUMERIC_ROUNDABORT { ON | AV }

  • Ett fel genereras när precisionsförlust inträffar i ett uttryck.

  • BORT

    Förlust av precision genererar inget felmeddelande, och resultatet avrundas till precisionen i kolumnen eller variabeln som lagrar resultatet.

    Viktig

    NUMERIC_ROUNDABORT måste anges till AV när du skapar eller gör ändringar i index för beräknade kolumner eller indexerade vyer.

Du kan fastställa status för det här alternativet i kolumnen is_numeric_roundabort_on i sys.databases katalogvy. Du kan också fastställa statusen genom att undersöka egenskapen IsNumericRoundAbortEnabled för funktionen DATABASEPROPERTYEX.

QUOTED_IDENTIFIER { ON | AV }

  • Dubbla citattecken kan användas för att omsluta avgränsade identifierare.

    Alla strängar som avgränsas med dubbla citattecken tolkas som objektidentifierare. Citerade identifierare behöver inte följa Transact-SQL regler för identifierare. De kan vara nyckelord och kan innehålla tecken som inte tillåts i Transact-SQL identifierare. Om ett dubbelt citattecken (") är en del av identifieraren kan det representeras av två dubbla citattecken ("").

  • BORT

    Identifierare kan inte vara inom citattecken och måste följa alla Transact-SQL regler för identifierare. Literaler kan avgränsas med enkla eller dubbla citattecken.

SQL Server gör också att identifierare kan avgränsas med hakparenteser ([ och ]). Hakparenteserade identifierare kan alltid användas, oavsett vilken inställning QUOTED_IDENTIFIER är. Mer information finns i Databasidentifierare.

När en tabell skapas lagras alternativet QUOTED IDENTIFIER alltid som PÅ i tabellens metadata. Alternativet lagras även om alternativet är inställt på AV när tabellen skapas.

Inställningar på anslutningsnivå som anges med set-instruktionen åsidosätter standarddatabasinställningen för QUOTED_IDENTIFIER. ODBC- och OLE DB-klienter utfärdar en set-instruktionsinställning på anslutningsnivå QUOTED_IDENTIFIER till PÅ som standard. Klienterna kör -instruktionen när du ansluter till en instans av SQL Server. Mer information finns i SET QUOTED_IDENTIFIER.

Du kan fastställa det här alternativets status genom att undersöka kolumnen is_quoted_identifier_on i sys.databases katalogvy. Du kan också fastställa statusen genom att undersöka egenskapen IsQuotedIdentifiersEnabled för funktionen DATABASEPROPERTYEX.

RECURSIVE_TRIGGERS { ON | AV }

  • Rekursiv avfyrning av AFTER-utlösare tillåts.

  • BORT

    Du kan fastställa det här alternativets status genom att undersöka kolumnen is_recursive_triggers_on i sys.databases katalogvy. Du kan också fastställa statusen genom att undersöka egenskapen IsRecursiveTriggersEnabled för funktionen DATABASEPROPERTYEX.

Not

Endast direkt rekursion förhindras när RECURSIVE_TRIGGERS är inställt på OFF. Om du vill inaktivera indirekt rekursion måste du också ange serveralternativet kapslade utlösare till 0.

Du kan fastställa det här alternativets status genom att undersöka kolumnen is_recursive_triggers_on i sys.databases katalogvy eller egenskapen IsRecursiveTriggersEnabled för funktionen DATABASEPROPERTYEX.

<suspend_for_snapshot_backup> ::=

gäller för: SQL Server (från och med SQL Server 2022 (16.x))

Pausar databaser för säkerhetskopiering av ögonblicksbilder. Kan definiera en grupp med en eller flera databaser. Kan ange kopieringsläge.

SET SUSPEND_FOR_SNAPSHOT_BACKUP = { ON | OFF }

Pausar eller inaktiverar databaser. Standard av.

LÄGE = COPY_ONLY

Valfri. Använder COPY_ONLY läge.

<target_recovery_time_option> ::=

gäller för: SQL Server (från och med SQL Server 2012 (11.x))

Anger frekvensen för indirekta kontrollpunkter per databas. Från och med SQL Server 2016 (13.x) är standardvärdet för nya databaser 1 minut, vilket indikerar att databasen använder indirekta kontrollpunkter. För äldre versioner är standardvärdet 0, vilket anger att databasen använder automatiska kontrollpunkter, vars frekvens beror på inställningen för återställningsintervall för serverinstansen. Microsoft rekommenderar 1 minut för de flesta system.

TARGET_RECOVERY_TIME = target_recovery_time { SECONDS | MINUTER }

  • target_recovery_time

    Anger den maximala gränsen för hur länge den angivna databasen ska återställas i händelse av en krasch. target_recovery_time är typ int.

  • SEKUNDER

    Anger att target_recovery_time uttrycks som antalet sekunder.

  • PROTOKOLL

    Anger att target_recovery_time uttrycks som antalet minuter.

Mer information om indirekta kontrollpunkter finns i Databaskontrollpunkter.

MED <avslutning> ::=

Anger när ofullständiga transaktioner ska återställas när databasen övergår från ett tillstånd till ett annat. Om avslutningssatsen utelämnas väntar ALTER DATABASE-instruktionen på obestämd tid om det finns något lås på databasen. Endast en avslutningssats kan anges och den följer SET-satserna.

Not

Alla databasalternativ använder inte satsen WITH <avslutning>. Mer information finns i tabellen under Ange alternativ i avsnittet "Kommentarer" i den här artikeln.

  • ÅTERSTÄLLNING EFTER heltal [SEKUNDER] | ÅTERSTÄLLNING OMEDELBART

    Anger om du vill återställa efter det angivna antalet sekunder eller omedelbart.

  • NO_WAIT

    Anger att begäran misslyckas om det begärda databastillståndet eller alternativändringen inte kan slutföras omedelbart. Att slutföra omedelbart innebär att inte vänta på att transaktioner ska checkas in eller återställas på egen hand.

Ange alternativ

Om du vill hämta aktuella inställningar för databasalternativ använder du sys.databases katalogvy eller DATABASEPROPERTYEX

När du har angett ett databasalternativ börjar den nya inställningen gälla omedelbart.

Du kan ändra standardvärdena för något av databasalternativen för alla nyligen skapade databaser. Det gör du genom att ändra lämpligt databasalternativ i model-databasen.

Alla databasalternativ använder inte satsen WITH <avslutning> eller kan anges i kombination med andra alternativ. I följande tabell visas dessa alternativ och deras alternativ och avslutningsstatus.

Alternativkategori Kan anges med andra alternativ Kan använda satsen MED <avslutning>
<db_state_option> Ja Ja
<db_user_access_option> Ja Ja
<db_update_option> Ja Ja
<delayed_durability_option> Ja Ja
<external_access_option> Ja Nej
<cursor_option> Ja Nej
<auto_option> Ja Nej
<sql_option> Ja Nej
<recovery_option> Ja Nej
<target_recovery_time_option> Nej Ja
<database_mirroring_option> Nej Nej
ALLOW_SNAPSHOT_ISOLATION Nej Nej
READ_COMMITTED_SNAPSHOT Nej Ja
MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT Ja Ja
<service_broker_option> Ja Nej
DATE_CORRELATION_OPTIMIZATION Ja Ja
<parameterization_option> Ja Ja
<change_tracking_option> Ja Ja
<db_encryption_option> Ja Nej
<accelerated_database_recovery> Ja Ja

Plancachen för SQL Server-instansen rensas genom att något av följande alternativ anges:

OFFLINE

UPPKOPPLAD

MODIFY_NAME

KOLLATIONERA

READ_ONLY

READ_WRITE

ÄNDRA STANDARD FÖR FILEGROUP

ÄNDRA FILEGROUP-READ_WRITE

ÄNDRA FILEGROUP-READ_ONLY

Plancachen rensas också i följande scenarier.

  • En databas har AUTO_CLOSE databasalternativet inställt på PÅ. När ingen användaranslutning refererar till eller använder databasen försöker bakgrundsaktiviteten stänga och stänga av databasen automatiskt.
  • Du kör flera frågor mot en databas som har standardalternativ. Sedan tas databasen bort.
  • En databasögonblicksbild för en källdatabas tas bort.
  • Du återskapar transaktionsloggen för en databas.
  • Du återställer en säkerhetskopia av databasen.
  • Du kopplar från en databas.

Om du rensar plancachen blir det en omkompilering av alla efterföljande körningsplaner och kan orsaka en plötslig, tillfällig minskning av frågeprestanda. För varje rensat cachelager i plancachen innehåller SQL Server-felloggen följande informationsmeddelande: SQL Server has encountered %d occurrence(s) of cachestore flush for the '%s' cachestore (part of plan cache) due to some database maintenance or reconfigure operations. Det här meddelandet loggas var femte minut så länge cacheminnet rensas inom det tidsintervallet.

Exempel

A. Ange alternativ för en databas

I följande exempel anges alternativ för återställningsmodell och verifiering av datasidor för AdventureWorks2022 exempeldatabas.

USE master;
GO
ALTER DATABASE [database_name]
SET RECOVERY FULL PAGE_VERIFY CHECKSUM;
GO

B. Ange databasen till READ_ONLY

För att ändra status för en databas eller filgrupp till READ_ONLY eller READ_WRITE krävs exklusiv åtkomst till databasen. I följande exempel anges databasen till SINGLE_USER läge för att få exklusiv åtkomst. I exemplet anges sedan tillståndet för den AdventureWorks2022 databasen till READ_ONLY och returnerar åtkomst till databasen till alla användare.

Not

I det här exemplet används avslutningsalternativet WITH ROLLBACK IMMEDIATE i den första ALTER DATABASE-instruktionen. Alla ofullständiga transaktioner återställs och alla andra anslutningar till AdventureWorks2022 databas kopplas omedelbart från.

USE master;
GO
ALTER DATABASE [database_name]
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE;
GO
ALTER DATABASE [database_name]
SET READ_ONLY
GO
ALTER DATABASE [database_name]
SET MULTI_USER;
GO

C. Aktivera ögonblicksbildisolering på en databas

I följande exempel aktiveras alternativet för ramverk för ögonblicksbildisolering för AdventureWorks2022-databasen.

USE [database_name];
USE master;
GO
ALTER DATABASE [database_name]
SET ALLOW_SNAPSHOT_ISOLATION ON;
GO
-- Check the state of the snapshot_isolation_framework
-- in the database.
SELECT name, snapshot_isolation_state,
    snapshot_isolation_state_desc AS description
FROM sys.databases
WHERE name = N'[database_name]';
GO

Resultatuppsättningen visar att ramverket för ögonblicksbildisolering är aktiverat.

Namn snapshot_isolation_state beskrivning
[database_name] 1

D. Aktivera, ändra eller inaktivera ändringsspårning

I följande exempel aktiveras ändringsspårning för AdventureWorks2022-databasen och kvarhållningsperioden anges till 2 dagar.

ALTER DATABASE [database_name]
SET CHANGE_TRACKING = ON
(AUTO_CLEANUP = ON, CHANGE_RETENTION = 2 DAYS);

I följande exempel visas hur du ändrar kvarhållningsperioden till 3 dagar.

ALTER DATABASE [database_name]
SET CHANGE_TRACKING (CHANGE_RETENTION = 3 DAYS);

I följande exempel visas hur du inaktiverar ändringsspårning för AdventureWorks2022-databasen.

ALTER DATABASE [database_name]
SET CHANGE_TRACKING = OFF;

E. Aktivera Query Store

gäller för: SQL Server (från och med SQL Server 2016 (13.x))

I följande exempel aktiveras Query Store och dess parametrar konfigureras.

ALTER DATABASE [database_name]
SET QUERY_STORE = ON
    (
      OPERATION_MODE = READ_WRITE,
      CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = 90 ),
      DATA_FLUSH_INTERVAL_SECONDS = 900,
      QUERY_CAPTURE_MODE = AUTO,
      MAX_STORAGE_SIZE_MB = 1024,
      INTERVAL_LENGTH_MINUTES = 60
    );

F. Aktivera Query Store med väntestatistik

gäller för: SQL Server (från och med SQL Server 2017 (14.x))

I följande exempel aktiveras Query Store och dess parametrar konfigureras.

ALTER DATABASE [database_name]
SET QUERY_STORE = ON
    (
      OPERATION_MODE = READ_WRITE,
      CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = 90 ),
      DATA_FLUSH_INTERVAL_SECONDS = 900,
      MAX_STORAGE_SIZE_MB = 1024,
      INTERVAL_LENGTH_MINUTES = 60,
      SIZE_BASED_CLEANUP_MODE = AUTO,
      MAX_PLANS_PER_QUERY = 200,
      WAIT_STATS_CAPTURE_MODE = ON,
    );

G. Aktivera Query Store med anpassade alternativ för avbildningsprinciper

gäller för: SQL Server (från och med SQL Server 2019 (15.x))

I följande exempel aktiveras Query Store och dess parametrar konfigureras.

ALTER DATABASE [database_name]
SET QUERY_STORE = ON
    (
      OPERATION_MODE = READ_WRITE,
      CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = 90 ),
      DATA_FLUSH_INTERVAL_SECONDS = 900,
      MAX_STORAGE_SIZE_MB = 1024,
      INTERVAL_LENGTH_MINUTES = 60,
      SIZE_BASED_CLEANUP_MODE = AUTO,
      MAX_PLANS_PER_QUERY = 200,
      WAIT_STATS_CAPTURE_MODE = ON,
      QUERY_CAPTURE_MODE = CUSTOM,
      QUERY_CAPTURE_POLICY = (
        STALE_CAPTURE_POLICY_THRESHOLD = 24 HOURS,
        EXECUTION_COUNT = 30,
        TOTAL_COMPILE_CPU_TIME_MS = 1000,
        TOTAL_EXECUTION_CPU_TIME_MS = 100
      )
    );

* SQL Database *  

 

SQL Database

Kompatibilitetsnivåer är SET alternativ men beskrivs i ALTER DATABASE-kompatibilitetsnivån.

Not

Många alternativ för databasuppsättningar kan konfigureras för den aktuella sessionen med hjälp av SET-instruktioner och konfigureras ofta av program när de ansluter. Uppsättningsalternativ på sessionsnivå åsidosätter ALTER DATABASE SET värden. Databasalternativen som beskrivs i följande avsnitt är värden som kan anges för sessioner som inte uttryckligen anger andra angivna alternativvärden.

Syntax

ALTER DATABASE { database_name | Current }
SET
{
    <option_spec> [ ,...n ] [ WITH <termination> ]
}
;

<option_spec> ::=
{
    <auto_option>
  | <automatic_tuning_option>
  | <change_tracking_option>
  | <cursor_option>
  | <db_encryption_option>
  | <db_update_option>
  | <db_user_access_option>
  | <delayed_durability_option>
  | <parameterization_option>
  | <query_store_options>
  | <snapshot_option>
  | <sql_option>
  | <target_recovery_time_option>
  | <termination>
  | <temporal_history_retention>
}
;

<auto_option> ::=
{
    AUTO_CREATE_STATISTICS { OFF | ON [ ( INCREMENTAL = { ON | OFF } ) ] }
  | AUTO_SHRINK { ON | OFF }
  | AUTO_UPDATE_STATISTICS { ON | OFF }
  | AUTO_UPDATE_STATISTICS_ASYNC { ON | OFF }
}

<automatic_tuning_option> ::=
{
    AUTOMATIC_TUNING = { AUTO | INHERIT | CUSTOM }
  | AUTOMATIC_TUNING ( CREATE_INDEX = { DEFAULT | ON | OFF } )
  | AUTOMATIC_TUNING ( DROP_INDEX = { DEFAULT | ON | OFF } )
  | AUTOMATIC_TUNING ( FORCE_LAST_GOOD_PLAN = { DEFAULT | ON | OFF } )
}

<change_tracking_option> ::=
{
    CHANGE_TRACKING
    {
        = OFF
      | = ON [ ( <change_tracking_option_list > [,...n] ) ]
      | ( <change_tracking_option_list> [,...n] )
    }
}

<change_tracking_option_list> ::=
   {
       AUTO_CLEANUP = { ON | OFF }
     | CHANGE_RETENTION = retention_period { DAYS | HOURS | MINUTES }
   }

<cursor_option> ::=
{
    CURSOR_CLOSE_ON_COMMIT { ON | OFF }
}

<db_encryption_option> ::=
  ENCRYPTION { ON | OFF }

<db_update_option> ::=
  { READ_ONLY | READ_WRITE }

<db_user_access_option> ::=
  { RESTRICTED_USER | MULTI_USER }

<delayed_durability_option> ::= DELAYED_DURABILITY = { DISABLED | ALLOWED | FORCED }

<parameterization_option> ::=
  PARAMETERIZATION { SIMPLE | FORCED }

<query_store_options> ::=
{
  QUERY_STORE
  {
      = OFF
    | = ON [ ( <query_store_option_list> [,... n] ) ]
    | ( < query_store_option_list> [,... n] )
    | CLEAR [ ALL ]
  }
}

<query_store_option_list> ::=
{
  OPERATION_MODE = { READ_WRITE | READ_ONLY }
  | CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = number )
  | DATA_FLUSH_INTERVAL_SECONDS = number
  | MAX_STORAGE_SIZE_MB = number
  | INTERVAL_LENGTH_MINUTES = number
  | SIZE_BASED_CLEANUP_MODE = { AUTO | OFF }
  | QUERY_CAPTURE_MODE = { ALL | AUTO | CUSTOM | NONE }
  | MAX_PLANS_PER_QUERY = number
  | WAIT_STATS_CAPTURE_MODE = { ON | OFF }
  | QUERY_CAPTURE_POLICY = ( <query_capture_policy_option_list> [,...n] )
}

<query_capture_policy_option_list> :: =
{
    STALE_CAPTURE_POLICY_THRESHOLD = number { DAYS | HOURS }
    | EXECUTION_COUNT = number
    | TOTAL_COMPILE_CPU_TIME_MS = number
    | TOTAL_EXECUTION_CPU_TIME_MS = number
}

<snapshot_option> ::=
{
    ALLOW_SNAPSHOT_ISOLATION { ON | OFF }
  | READ_COMMITTED_SNAPSHOT { ON | OFF }
  | MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT { ON | OFF }
}
<sql_option> ::=
{
    ANSI_NULL_DEFAULT { ON | OFF }
  | ANSI_NULLS { ON | OFF }
  | ANSI_PADDING { ON | OFF }
  | ANSI_WARNINGS { ON | OFF }
  | ARITHABORT { ON | OFF }
  | COMPATIBILITY_LEVEL = { 160 | 150 | 140 | 130 | 120 | 110 | 100 }
  | CONCAT_NULL_YIELDS_NULL { ON | OFF }
  | NUMERIC_ROUNDABORT { ON | OFF }
  | QUOTED_IDENTIFIER { ON | OFF }
  | RECURSIVE_TRIGGERS { ON | OFF }
}

<termination>::=
{
    ROLLBACK AFTER integer [ SECONDS ]
  | ROLLBACK IMMEDIATE
  | NO_WAIT
}

<temporal_history_retention>::=TEMPORAL_HISTORY_RETENTION { ON | OFF }

Argument

database_name

Namnet på databasen som ska ändras.

  • STRÖM

    CURRENT kör åtgärden i den aktuella databasen. CURRENT stöds inte för alla alternativ i alla kontexter. Om CURRENT misslyckas anger du databasnamnet.

<auto_option> ::=

Styr automatiska alternativ.

AUTO_CREATE_STATISTICS { ON | AV }

  • Query Optimizer skapar statistik för enskilda kolumner i frågepredikat, efter behov, för att förbättra frågeplaner och frågeprestanda. Den här statistiken med en kolumn skapas när Query Optimizer kompilerar frågor. Enkolumnsstatistiken skapas endast för kolumner som inte redan är den första kolumnen i ett befintligt statistikobjekt.

    Standardvärdet är PÅ. Vi rekommenderar att du använder standardinställningen för de flesta databaser.

  • BORT

    Frågeoptimeraren skapar inte statistik för enskilda kolumner i frågepredikat när den kompilerar frågor. Om du ställer in det här alternativet på AV kan det orsaka suboptimala frågeplaner och försämrad frågeprestanda.

Du kan fastställa det här alternativets status genom att undersöka kolumnen is_auto_create_stats_on i sys.databases katalogvy. Du kan också fastställa statusen genom att undersöka egenskapen IsAutoCreateStatistics för funktionen DATABASEPROPERTYEX.

Mer information finns i avsnittet "Statistikalternativ" i Statistics.

INCREMENTAL = ON | BORT

Ställ in AUTO_CREATE_STATISTICS på PÅ och ange INKREMENTELL till PÅ. Den här inställningen skapar automatiskt statistik som inkrementell när inkrementell statistik stöds. Standardvärdet är AV. Mer information finns i CREATE STATISTICS.

AUTO_SHRINK { ON | AV }

  • Databasfilerna är kandidater för regelbunden krympning. Om du inte har ett specifikt krav ska du inte ange alternativet AUTO_SHRINK databas till PÅ. Mer information finns i Krympa en databas.

Både datafilen och loggfilerna kan krympas automatiskt. AUTO_SHRINK minskar storleken på transaktionsloggen endast om du ställer in databasen på SIMPLE-återställningsmodell eller om du säkerhetskopierar loggen. När de är inställda på OFF krymps inte databasfilerna automatiskt under periodiska kontroller av outnyttjat utrymme.

Alternativet AUTO_SHRINK gör att filer krymps när mer än 25 procent av filen innehåller outnyttjat utrymme. Alternativet gör att filen krymper till en av två storlekar. Den krymper till den som är större:

  • Storleken där 25 procent av filen är outnyttjat utrymme
  • Storleken på filen när den skapades

Du kan inte krympa en skrivskyddad databas.

  • BORT

    Databasfilerna krymps inte automatiskt under periodiska kontroller av oanvänt utrymme.

Du kan fastställa det här alternativets status genom att undersöka kolumnen is_auto_shrink_on i sys.databases katalogvy. Du kan också fastställa statusen genom att undersöka egenskapen IsAutoShrink för funktionen DATABASEPROPERTYEX.

Not

Alternativet AUTO_SHRINK är inte tillgängligt i en innesluten databas.

AUTO_UPDATE_STATISTICS { ON | AV }

  • Anger att Query Optimizer uppdaterar statistik när de används av en fråga och när de kan vara inaktuella. Statistiken blir inaktuell efter att åtgärderna infoga, uppdatera, ta bort eller slå samman ändrar datadistributionen i tabellen eller den indexerade vyn. Frågeoptimeraren avgör när statistiken kan vara inaktuell genom att räkna antalet dataändringar sedan den senaste statistikuppdateringen och jämföra antalet ändringar med ett tröskelvärde. Tröskelvärdet baseras på antalet rader i tabellen eller den indexerade vyn.

    Frågeoptimeraren söker efter inaktuell statistik innan den kompilerar en fråga och kör en cachelagrad frågeplan. Query Optimizer använder kolumner, tabeller och indexerade vyer i frågepredikatet för att avgöra vilken statistik som kan vara inaktuell. Frågeoptimeraren avgör den här informationen innan den kompilerar en fråga. Innan du kör en cachelagrad frågeplan verifierar databasmotorn att frågeplanen refererar till up-to-date-statistik.

    Alternativet AUTO_UPDATE_STATISTICS gäller för statistik som skapats för index, enkla kolumner i frågepredikat och statistik som skapas med hjälp av instruktionen CREATE STATISTICS. Det här alternativet gäller även för filtrerad statistik.

    Standardvärdet är PÅ. Vi rekommenderar att du använder standardinställningen för de flesta databaser.

    Använd alternativet AUTO_UPDATE_STATISTICS_ASYNC för att ange om statistiken uppdateras synkront eller asynkront.

  • BORT

    Anger att Frågeoptimeraren inte uppdaterar statistik när de används av en fråga. Query Optimizer uppdaterar inte heller statistik när de kan vara inaktuella. Om du ställer in det här alternativet på AV kan det orsaka suboptimala frågeplaner och försämrad frågeprestanda.

    Du kan fastställa det här alternativets status genom att undersöka kolumnen is_auto_update_stats_on i sys.databases katalogvy. Du kan också fastställa statusen genom att undersöka egenskapen IsAutoUpdateStatistics för funktionen DATABASEPROPERTYEX.

    Mer information finns i avsnittet "Statistikalternativ" i Statistics.

AUTO_UPDATE_STATISTICS_ASYNC { ON | AV }

  • Anger att statistikuppdateringar för alternativet AUTO_UPDATE_STATISTICS är asynkrona. Frågeoptimeraren väntar inte på att statistikuppdateringarna ska slutföras innan frågor kompileras.

    Att ställa in det här alternativet på PÅ har ingen effekt om inte AUTO_UPDATE_STATISTICS är inställt på PÅ.

    Som standard är alternativet AUTO_UPDATE_STATISTICS_ASYNC inställt på OFF och Query Optimizer uppdaterar statistik synkront.

  • BORT

    Anger att statistikuppdateringar för alternativet AUTO_UPDATE_STATISTICS är synkrona. Frågeoptimeraren väntar på att statistikuppdateringarna ska slutföras innan frågor kompileras.

    Att ställa in det här alternativet på AV har ingen effekt om inte AUTO_UPDATE_STATISTICS är inställt på PÅ.

Du kan fastställa det här alternativets status genom att undersöka kolumnen is_auto_update_stats_async_on i sys.databases katalogvy.

Mer information som beskriver när du ska använda synkrona eller asynkrona statistikuppdateringar finns i avsnittet "Statistikalternativ" i Statistics.

<automatic_tuning_option> ::=

Styr automatiska alternativ för Automatisk justering. Du kan visa alternativen för följande inställningar i Azure-portalen eller via T-SQL i vyn sys.database_automatic_tuning_options.

AUTOMATIC_TUNING = { AUTO | ÄRV | ANPASSAD }

  • BIL

    Om du ställer in värdet Automatisk justering på AUTO tillämpas Standardvärden för Azure-konfiguration för Automatisk justering. I Azure-portalen visar detta alternativet "Ärv från: Azure-standardvärden".

  • ÄRVA

    Med värdet ÄRV ärver standardkonfigurationen från den överordnade servern. I Azure-portalen visar detta alternativet "Ärver från: Server". Detta är särskilt användbart om du vill anpassa konfigurationen för automatisk justering på en överordnad server och ha alla databaser på den här servern ÄRV de här anpassade inställningarna. För att arvet ska fungera måste de tre enskilda justeringsalternativen FORCE_LAST_GOOD_PLAN, CREATE_INDEX och DROP_INDEX anges till STANDARD för databaser.

  • SED

    Med custom-värdet måste du anpassa var och en av de automatiska justeringsalternativen som är tillgängliga för databaser. I Azure-portalen visar detta alternativet "Ärva från: Ärva inte".

CREATE_INDEX = { STANDARD | PÅ | AV }

Aktiverar eller inaktiverar automatisk indexhantering CREATE_INDEX alternativ för Automatisk justering. Du kan visa status för det här alternativet i Azure-portalen eller via T-SQL i vyn sys.database_automatic_tuning_options.

  • STANDARD

    Ärver standardinställningar från servern. I det här fallet definieras alternativ för att aktivera eller inaktivera enskilda automatiska justeringsfunktioner på servernivå.

  • När det är aktiverat genereras saknade index automatiskt i en databas. När indexet har skapats verifieras arbetsbelastningens prestanda. När ett sådant skapat index inte längre ger fördelar för arbetsbelastningens prestanda återställs det automatiskt. Index som skapas automatiskt flaggas som ett systemgenererat index.

  • BORT

    Genererar inte automatiskt saknade index i databasen.

DROP_INDEX = { STANDARD | PÅ | AV }

Aktiverar eller inaktiverar automatisk indexhantering DROP_INDEX alternativ för Automatisk justering. Du kan visa status för det här alternativet i Azure-portalen eller via T-SQL i vyn sys.database_automatic_tuning_options.

  • STANDARD

    Ärver standardinställningar från servern. I det här fallet definieras alternativ för att aktivera eller inaktivera enskilda automatiska justeringsfunktioner på servernivå.

  • Släpper automatiskt duplicerade eller inte längre användbara index till prestandaarbetsbelastningen.

  • BORT

    Släpper inte automatiskt saknade index i databasen.

FORCE_LAST_GOOD_PLAN = { STANDARD | PÅ | AV }

Aktiverar eller inaktiverar automatisk plankorrigering FORCE_LAST_GOOD_PLAN alternativ för Automatisk justering. Du kan visa status för det här alternativet i Azure-portalen eller via T-SQL i vyn sys.database_automatic_tuning_options.

  • STANDARD

    Ärver standardinställningar från servern. I det här fallet definieras alternativ för att aktivera eller inaktivera enskilda automatiska justeringsfunktioner på servernivå. Det här är standardvärdet. Standardvärdet för nya Azure SQL-servrar är PÅ, vilket innebär att nya databaser som standard ärver inställningen PÅ.

  • Databasmotorn tvingar automatiskt fram den senast kända bra planen för Transact-SQL frågor där en ny frågeplan orsakar prestandaregressioner. Databasmotorn övervakar kontinuerligt frågeprestanda för den Transact-SQL frågan med den framtvingade planen. Om det finns prestandavinster fortsätter databasmotorn att använda den senast kända bra planen. Om prestandavinster inte identifieras skapar databasmotorn en ny frågeplan. Instruktionen misslyckas om Query Store inte är aktiverat eller inte är i läs- och skrivläge läge.

  • BORT

    Databasmotorn rapporterar potentiella frågeprestandaregressioner som orsakas av ändringar i frågeplanen i sys.dm_db_tuning_recommendations vy. Dessa rekommendationer tillämpas dock inte automatiskt. Användare kan övervaka aktiva rekommendationer och åtgärda identifierade problem genom att använda Transact-SQL skript som visas i vyn.

<change_tracking_option> ::=

Styr ändringsspårningsalternativ. Du kan aktivera ändringsspårning, ange alternativ, ändra alternativ och inaktivera ändringsspårning. Exempel finns i avsnittet Exempel senare i den här artikeln.

  • Aktiverar ändringsspårning för databasen. När du aktiverar ändringsspårning kan du också ange alternativen AUTOMATISK RENSNING och ÄNDRINGSBEVARANDE.

    • AUTO_CLEANUP = { ON | AV }

      • Information om ändringsspårning tas bort automatiskt efter den angivna kvarhållningsperioden.

      • BORT

        Ändringsspårningsdata tas inte bort från databasen.

    • CHANGE_RETENTION = retention_period { DAYS | TIMMAR | MINUTER }

      Anger den minsta perioden för att behålla information om ändringsspårning i databasen. Data tas bara bort när värdet för AUTO_CLEANUP är PÅ.

      retention_period är ett heltal som anger den numeriska komponenten i kvarhållningsperioden.

      Standardkvarhållningsperioden är 2 dagar. Den minsta kvarhållningsperioden är 1 minut. Standardkvarhållningstypen är DAYS.

  • BORT

    Inaktiverar ändringsspårning för databasen. Inaktivera ändringsspårning för alla tabeller innan du inaktiverar ändringsspårning från databasen.

<cursor_option> ::=

Styr markörens alternativ.

CURSOR_CLOSE_ON_COMMIT { ON | AV }

  • Alla markörer som öppnas när du checkar in eller återställer en transaktion stängs.

  • BORT

    Markörer förblir öppna när en transaktion checkas in. om du återställer en transaktion stängs alla markörer förutom de markörer som definierats som INSENSITIVE eller STATIC.

Inställningar på anslutningsnivå som anges med set-instruktionen åsidosätter standarddatabasinställningen för CURSOR_CLOSE_ON_COMMIT. ODBC- och OLE DB-klienter utfärdar en set-instruktionsinställning på anslutningsnivå CURSOR_CLOSE_ON_COMMIT till AV för sessionen som standard. Klienterna kör -instruktionen när du ansluter till en instans av SQL Server. Mer information finns i SET CURSOR_CLOSE_ON_COMMIT.

Du kan fastställa det här alternativets status genom att undersöka kolumnen is_cursor_close_on_commit_on i sys.databases katalogvy eller egenskapen IsCloseCursorsOnCommitEnabled för funktionen DATABASEPROPERTYEX. Markören frigörs implicit endast vid frånkoppling. Mer information finns i DEKLARERA MARKÖREN.

<db_encryption_option> ::=

Styr databaskrypteringstillståndet.

KRYPTERING { PÅ | AV }

Anger att databasen ska krypteras (PÅ) eller inte krypteras (OFF). Mer information om databaskryptering finns i Transparent datakryptering (TDE)och Transparent datakryptering för Azure SQL Database, Azure SQL Managed Instance och Azure Synapse Analytics.

När kryptering är aktiverat på databasnivå krypteras alla filgrupper. Alla nya filgrupper ärver den krypterade egenskapen. Om några filgrupper i databasen är inställda på SKRIVSKYDDad misslyckas databaskrypteringsåtgärden.

Du kan se krypteringstillståndet för databasen med hjälp av vyn sys.dm_database_encryption_keys dynamisk hantering.

<db_update_option> ::=

Styr om uppdateringar tillåts i databasen.

  • READ_ONLY

    Användare kan läsa data från databasen men inte ändra dem.

    Not

    Uppdatera statistik innan du ställer in en databas på READ_ONLY för att förbättra frågeprestandan. Om ytterligare statistik behövs efter att en databas har angetts till READ_ONLY skapar databasmotorn statistik i tempdb. Mer information om statistik för en skrivskyddad databas finns i Statistics.

  • READ_WRITE

    Databasen är tillgänglig för läs- och skrivåtgärder.

Om du vill ändra det här tillståndet måste du ha exklusiv åtkomst till databasen. Mer information finns i SINGLE_USER-satsen.

Not

I federerade Azure SQL Database-databaser är SET { READ_ONLY | READ_WRITE } inaktiverat.

<db_user_access_option> ::=

Styr användaråtkomsten till databasen.

  • RESTRICTED_USER

    Tillåter endast medlemmar i den db_owner fasta databasrollen och dbcreator och sysadmin fasta serverroller att ansluta till databasen, men begränsar inte deras antal. Alla anslutningar till databasen kopplas från inom den tidsram som anges av avslutningssatsen i ALTER DATABASE-instruktionen. När databasen har övergått till RESTRICTED_USER tillstånd nekas anslutningsförsök av okvalificerade användare. I Azure SQL Database ska köras inifrån användardatabasen. Från master-databasen kan du stöta på ett felmeddelande Msg 42008, Level 16, State 3, Line 1 ODBC error: State: 28000: Error: 18456 Message:'[Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Login failed for user '##MS_InstanceCertificate##'.'.

  • MULTI_USER

    Alla användare som har rätt behörighet att ansluta till databasen tillåts. Du kan fastställa det här alternativets status genom att undersöka kolumnen user_access i sys.databases katalogvy eller egenskapen UserAccess för funktionen DATABASEPROPERTYEX. I Azure SQL Database ska köras inifrån användardatabasen. Från master-databasen kan du stöta på ett felmeddelande Msg 42008, Level 16, State 3, Line 1 ODBC error: State: 28000: Error: 18456 Message:'[Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Login failed for user '##MS_InstanceCertificate##'.'.

<delayed_durability_option> ::=

Styr om transaktioner checkar in helt varaktiga eller fördröjda varaktiga.

  • HANDIKAPPAD

    Alla transaktioner som följer SET DISABLED är helt hållbara. Eventuella hållbarhetsalternativ som anges i ett atomiskt block eller incheckningsinstruktivt uttryck ignoreras.

  • TILLÅTEN

    Alla transaktioner som följer SET ALLOWED är antingen helt hållbara eller fördröjda varaktiga, beroende på hållbarhetsalternativet som anges i atomblocket eller incheckningsinstrukeringen.

  • FORCERAD

    Alla transaktioner som följer SET FORCED är fördröjda varaktiga. Eventuella hållbarhetsalternativ som anges i ett atomiskt block eller incheckningsinstruktivt uttryck ignoreras.

<PARAMETERIZATION_option> ::=

Styr parameteriseringsalternativet.

PARAMETERIZATION { SIMPLE | FORCED }

  • ENKEL

    Frågor parametriseras baserat på databasens standardbeteende.

  • FORCERAD

    SQL Server parameteriserar alla frågor i databasen.

Den aktuella inställningen för det här alternativet kan fastställas genom att undersöka kolumnen is_parameterization_forced i sys.databases katalogvy.

<query_store_options> ::=

  • PÅ | AV | RENSA [ ALLA ]

    Styr om Query Store är aktiverat i den här databasen och styr även borttagningen av innehållet i Query Store.

    • Aktiverar Query Store. PÅ är standardvärdet.

    • BORT

      Inaktiverar Query Store.

      Not

      Det går inte att inaktivera Query Store i en enskild Azure SQL Database-databas och elastisk pool. Om du kör ALTER DATABASE [database] SET QUERY_STORE = OFF returneras varningen 'QUERY_STORE=OFF' is not supported in this version of SQL Server..

    • KLAR

      Ta bort innehållet i Query Store.

OPERATION_MODE

Beskriver åtgärdsläget för Query Store. Giltiga värden är READ_ONLY och READ_WRITE. I READ_WRITE läge samlar Query Store in och bevarar information om körningsstatistik för frågeplan och körning. I READ_ONLY läge kan information läsas från Query Store, men ny information läggs inte till. Om det maximala allokerade utrymmet i Query Store har förbrukats ändrar Query Store sitt åtgärdsläge till READ_ONLY.

CLEANUP_POLICY

Beskriver datakvarhållningsprincipen för Query Store. STALE_QUERY_THRESHOLD_DAYS avgör hur många dagar informationen för en fråga ska lagras i Frågearkivet. STALE_QUERY_THRESHOLD_DAYS är typ bigint. Standardvärdet är 30. För SQL Database Basic-utgåvan är standardvärdet 7 dagar.

DATA_FLUSH_INTERVAL_SECONDS

Avgör hur ofta data som skrivs till Query Store sparas på disken. För att optimera prestanda skrivs data som samlas in av Query Store asynkront till disken. Frekvensen för den här asynkrona överföringen konfigureras med hjälp av argumentet DATA_FLUSH_INTERVAL_SECONDS. DATA_FLUSH_INTERVAL_SECONDS är typ bigint. Standardvärdet är 900 (15 min).

MAX_STORAGE_SIZE_MB

Avgör vilket utrymme som allokeras till Query Store. MAX_STORAGE_SIZE_MB är typ bigint.

Not

I Azure SQL Database skiljer sig standardvärdet MAX_STORAGE_SIZE_MB efter tjänstnivå enligt följande: Premium, Affärskritisk och Hyperskala: 1 024 MB; Standard och generell användning: 100 MB; Grundläggande: 10 MB Det högsta tillåtna MAX_STORAGE_SIZE_MB värdet är 10 240 MB.

Not

MAX_STORAGE_SIZE_MB gränsen tillämpas inte strikt. Lagringsstorleken kontrolleras endast när Query Store skriver data till disk. Det här intervallet anges av alternativet DATA_FLUSH_INTERVAL_SECONDS eller dialogrutan Management Studio Query Store dataspolningsintervall. Standardvärdet för intervallet är 900 sekunder (eller 15 minuter). Om Query Store har överskridit gränsen för MAX_STORAGE_SIZE_MB mellan kontroller av lagringsstorlek övergår den till skrivskyddat läge. Om SIZE_BASED_CLEANUP_MODE är aktiverat utlöses även rensningsmekanismen för att framtvinga gränsen för MAX_STORAGE_SIZE_MB. När tillräckligt med utrymme har rensats växlar Query Store-läget automatiskt tillbaka till läs-och skrivläge.

Viktig

Om du tror att din arbetsbelastningsinsamling behöver mer än 10 GB diskutrymme bör du förmodligen tänka om och optimera arbetsbelastningen för att återanvända frågeplaner (till exempel genom att använda tvingad parameteriseringeller justera Query Store-konfigurationerna. Från och med SQL Server 2019 (15.x) och i Azure SQL Database kan du ange QUERY_CAPTURE_MODE till ANPASSAD för ytterligare kontroll över frågeinsamlingsprincipen.

INTERVAL_LENGTH_MINUTES

Avgör tidsintervallet med vilket körningsstatistikdata aggregeras till Query Store. För att optimera för utrymmesanvändning aggregeras körningsstatistiken i statistikarkivet för körning över ett fast tidsfönster. Det här fasta tidsfönstret konfigureras med hjälp av argumentet INTERVAL_LENGTH_MINUTES. INTERVAL_LENGTH_MINUTES är typ bigint. Standardvärdet är 60.

SIZE_BASED_CLEANUP_MODE = { AUTO | AV }

Styr om rensning aktiveras automatiskt när den totala mängden data närmar sig maximal storlek.

  • BORT

    Storleksbaserad rensning aktiveras inte automatiskt.

  • BIL

    Storleksbaserad rensning aktiveras automatiskt när storleken på disken når 90% av max_storage_size_mb. Storleksbaserad rensning tar bort de billigaste och äldsta frågorna först. Den stannar vid cirka 80% av max_storage_size_mb. Det här är standardkonfigurationsvärdet.

SIZE_BASED_CLEANUP_MODE är typ nvarchar.

QUERY_CAPTURE_MODE { ALLA | AUTO | ANPASSAD | NONE }

Anger det aktuella aktiva frågeinsamlingsläget. Varje läge definierar specifika principer för frågeinsamling.

Not

Markörer, frågor i lagrade procedurer och inbyggda kompilerade frågor registreras alltid när frågeinsamlingsläget är inställt på ALLA, AUTO eller CUSTOM.

  • ALLA

    Samlar in alla frågor.

  • BIL

    Samla in relevanta frågor baserat på körningsantal och resursförbrukning. Det här är standardkonfigurationsvärdet för Azure SQL Database.

  • INGEN

    Sluta samla in nya frågor. Query Store fortsätter att samla in kompilerings- och körningsstatistik för frågor som redan har samlats in. Använd den här konfigurationen med försiktighet eftersom du kanske inte kan samla in viktiga frågor.

  • SED

    Tillåter kontroll över alternativen för QUERY_CAPTURE_POLICY.

QUERY_CAPTURE_MODE är typ nvarchar.

MAX_PLANS_PER_QUERY

Definierar det maximala antalet planer som underhålls för varje fråga. MAX_PLANS_PER_QUERY är typ int. Standardvärdet är 200.

WAIT_STATS_CAPTURE_MODE { ON | AV }

Styr om väntestatistik hämtas per fråga.

  • Information om väntestatistik per fråga samlas in. Det här värdet är standardkonfigurationsvärdet.

  • BORT

    Information om väntestatistik per fråga samlas inte in.

<query_capture_policy_option_list> :: =

Styr alternativen för avbildningsprinciper för Query Store. Förutom STALE_CAPTURE_POLICY_THRESHOLD definierar dessa alternativ de OR-villkor som måste ske för att frågor ska samlas in i det definierade tröskelvärdet för inaktuell avbildningsprincip.

STALE_CAPTURE_POLICY_THRESHOLD = heltal { DAYS | TIMMAR }

Definierar utvärderingsintervallperioden för att avgöra om en fråga ska samlas in. Standardvärdet är 1 dag och kan anges från 1 timme till sju dagar. talet är typ int.

EXECUTION_COUNT = heltal

Definierar hur många gånger en fråga körs under utvärderingsperioden. Standardvärdet är 30, vilket innebär att för standardtröskelvärdet för inaktuell avbildningsprincip måste en fråga köras minst 30 gånger på en dag för att sparas i Query Store. EXECUTION_COUNT är typ int.

TOTAL_COMPILE_CPU_TIME_MS = heltal

Definierar den totala förflutna kompileringstiden för cpu som används av en fråga under utvärderingsperioden. Standardvärdet är 1 000, vilket innebär att för standardtröskelvärdet för inaktuell avbildningsprincip måste en fråga ha minst en sekund cpu-tid under frågekompilering på en dag för att sparas i Query Store. TOTAL_COMPILE_CPU_TIME_MS är typ int.

TOTAL_EXECUTION_CPU_TIME_MS = heltal

Definierar den totala förflutna körningens CPU-tid som används av en fråga under utvärderingsperioden. Standardvärdet är 100, vilket innebär att för standardtröskelvärdet för inaktuell avbildningsprincip måste en fråga ha totalt minst 100 ms cpu-tid under körningen på en dag för att sparas i Query Store. TOTAL_EXECUTION_CPU_TIME_MS är typ int.

<snapshot_option> ::=

Avgör transaktionsisoleringsnivån.

ALLOW_SNAPSHOT_ISOLATION { ON | AV }

  • Aktiverar alternativet Ögonblicksbild på databasnivå. När den är aktiverad börjar DML-instruktioner generera radversioner även när ingen transaktion använder ögonblicksbildisolering. När det här alternativet har aktiverats kan transaktioner ange transaktionsisoleringsnivån SNAPSHOT. När en transaktion körs på ögonblicksbildisoleringsnivå ser alla instruktioner en ögonblicksbild av data eftersom den finns i början av transaktionen. Om en transaktion som körs på ögonblicksbildisoleringsnivå har åtkomst till data i flera databaser måste antingen ALLOW_SNAPSHOT_ISOLATION anges till PÅ i alla databaser, eller så måste varje instruktion i transaktionen använda låstips för alla referenser i en FROM-sats till en tabell i en databas där ALLOW_SNAPSHOT_ISOLATION är AV.

  • BORT

    Inaktiverar alternativet Ögonblicksbild på databasnivå. Transaktioner kan inte ange transaktionsisoleringsnivån ÖGONBLICKSBILD.

När du ställer in ALLOW_SNAPSHOT_ISOLATION till ett nytt tillstånd (från PÅ till AV eller från AV till PÅ) returnerar ALTER DATABASE inte kontrollen till anroparen förrän alla befintliga transaktioner i databasen har checkats in. Om databasen redan är i det tillstånd som anges i ALTER DATABASE-instruktionen returneras kontrollen till anroparen omedelbart. Om ALTER DATABASE-instruktionen inte returneras snabbt använder du sys.dm_tran_active_snapshot_database_transactions för att avgöra om det finns långvariga transaktioner. Om ALTER DATABASE-instruktionen avbryts förblir databasen i det tillstånd den befann sig i när ALTER DATABASE startades. sys.databases katalogvy anger tillståndet för transaktioner med ögonblicksbildisolering i databasen. Om snapshot_isolation_state_desc = IN_TRANSITION_TO_ONpausar instruktionen ALTER DATABASE .... ALLOW_SNAPSHOT_ISOLATION OFF sex sekunder och försöker utföra åtgärden igen.

Du kan inte ändra tillståndet för ALLOW_SNAPSHOT_ISOLATION om databasen är OFFLINE.

Om du anger ALLOW_SNAPSHOT_ISOLATION i en READ_ONLY databas behålls inställningen om databasen senare anges till READ_WRITE.

Den aktuella inställningen för det här alternativet kan fastställas genom att undersöka kolumnen snapshot_isolation_state i sys.databases katalogvy.

READ_COMMITTED_SNAPSHOT { ON | AV }

  • Aktiverar alternativet Read-Committed Ögonblicksbild på databasnivå. När den är aktiverad börjar DML-instruktioner generera radversioner även när ingen transaktion använder ögonblicksbildisolering. När det här alternativet är aktiverat använder transaktionerna som anger READ COMMITTED-isoleringsnivån radversioner i stället för att låsa. Alla instruktioner ser en ögonblicksbild av data eftersom den finns i början av -instruktionen när en transaktion körs på READ COMMITTED-isoleringsnivån.

  • BORT

    Inaktiverar Read-Committed alternativet Ögonblicksbild på databasnivå. Transaktioner som anger READ COMMITTED-isoleringsnivån använder låsning.

Om du vill ange READ_COMMITTED_SNAPSHOT PÅ eller AV får det inte finnas några aktiva anslutningar till databasen förutom anslutningen som kör KOMMANDOT ALTER DATABASE. Databasen behöver dock inte vara i enanvändarläge. Du kan inte ändra tillståndet för det här alternativet när databasen är OFFLINE.

Om du anger READ_COMMITTED_SNAPSHOT i en READ_ONLY databas behålls inställningen när databasen senare anges till READ_WRITE.

READ_COMMITTED_SNAPSHOT kan inte aktiveras för master, tempdbeller msdb systemdatabaser. Om du ändrar inställningen för modelblir den inställningen standard för alla nya databaser som skapats, förutom för tempdb.

Den aktuella inställningen för det här alternativet kan fastställas genom att undersöka kolumnen is_read_committed_snapshot_on i sys.databases katalogvy.

Varning

När en tabell skapas med DURABILITY = SCHEMA_ONLYoch READ_COMMITTED_SNAPSHOT sedan ändras med hjälp av ALTER DATABASEgår data i tabellen förlorade.

Dricks

I Azure SQL Database måste kommandot ALTER DATABASE för att ange READ_COMMITTED_SNAPSHOT PÅ eller AV för en databas köras i master-databasen.

MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT { ON | AV }

  • När transaktionsisoleringsnivån är inställd på en isoleringsnivå som är lägre än ÖGONBLICKSBILD körs alla tolkade Transact-SQL åtgärder på minnesoptimerade tabeller under ögonblicksbildisolering. Exempel på isoleringsnivåer som är lägre än ögonblicksbilder är READ COMMITTED eller READ UNCOMMITTED. Dessa åtgärder kör om transaktionsisoleringsnivån uttryckligen anges på sessionsnivå eller om standardvärdet används implicit.

  • BORT

    Höjer inte transaktionsisoleringsnivån för tolkade Transact-SQL åtgärder i minnesoptimerade tabeller.

Du kan inte ändra tillståndet för MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT om databasen är OFFLINE.

Standardvärdet är AV.

Den aktuella inställningen för det här alternativet kan fastställas genom att undersöka kolumnen is_memory_optimized_elevate_to_snapshot_on i sys.databases katalogvy.

<sql_option> ::=

Styr ANSI-efterlevnadsalternativen på databasnivå.

ANSI_NULL_DEFAULT { ON | AV }

Avgör standardvärdet, NULL eller NOT NULL, för en kolumn eller CLR-användardefinierad typ som nullabiliteten inte uttryckligen definieras för i CREATE TABLE- eller ALTER TABLE-uttryck. Kolumner som definieras med begränsningar följer villkorsregler oavsett vilken inställning den här inställningen kan vara.

  • Standardvärdet är NULL.

  • BORT

    Standardvärdet är INTE NULL.

Inställningar på anslutningsnivå som anges med set-instruktionen åsidosätter standardinställningen på databasnivå för ANSI_NULL_DEFAULT. ODBC- och OLE DB-klienter utfärdar en set-instruktionsinställning på anslutningsnivå ANSI_NULL_DEFAULT till PÅ för sessionen som standard. Klienterna kör -instruktionen när du ansluter till en instans av SQL Server. Mer information finns i SET ANSI_NULL_DFLT_ON.

För ANSI-kompatibilitet ändrar inställningen av databasalternativet ANSI_NULL_DEFAULT till PÅ databasens standardvärde till NULL.

Du kan fastställa det här alternativets status genom att undersöka kolumnen is_ansi_null_default_on i sys.databases katalogvy. Du kan också fastställa statusen genom att undersöka egenskapen IsAnsiNullDefault för funktionen DATABASEPROPERTYEX.

ANSI_NULLS { ON | AV }

  • Alla jämförelser med ett null-värde utvärderas till OKÄNT.

  • BORT

    Jämförelser av icke-Unicode-värden med ett nullvärde utvärderas till TRUE om båda värdena är NULL.

Viktig

I en framtida version av SQL Server kommer ANSI_NULLS alltid att vara PÅ och alla program som uttryckligen ställer in alternativet på AV genererar ett fel. Undvik att använda den här funktionen i nytt utvecklingsarbete och planera att ändra program som för närvarande använder den här funktionen.

Inställningar på anslutningsnivå som anges med set-instruktionen åsidosätter standarddatabasinställningen för ANSI_NULLS. ODBC- och OLE DB-klienter utfärdar en set-instruktionsinställning på anslutningsnivå ANSI_NULLS till PÅ för sessionen som standard. Klienterna kör -instruktionen när du ansluter till en instans av SQL Server. Mer information finns i SET ANSI_NULLS.

Not

ANGE ANSI_NULLS måste också anges till PÅ när du skapar eller gör ändringar i index för beräknade kolumner eller indexerade vyer.

Du kan fastställa det här alternativets status genom att undersöka kolumnen is_ansi_nulls_on i sys.databases katalogvy. Du kan också fastställa statusen genom att undersöka egenskapen IsAnsiNullsEnabled för funktionen DATABASEPROPERTYEX.

ANSI_PADDING { ON | AV }

  • Strängarna är vadderade till samma längd före konverteringen. Även vadderade till samma längd innan du infogar till en varchar eller nvarchar datatyp.

  • BORT

    Infogar avslutande blanksteg i teckenvärden i varchar eller nvarchar kolumner. Lämnar också avslutande nollor i binära värden som infogas i varbinära kolumner. Värden är inte vadderade till kolumnens längd.

    När OFF har angetts påverkar den här inställningen endast definitionen av nya kolumner.

Viktig

I en framtida version av SQL Server kommer ANSI_PADDING alltid att vara PÅ och alla program som uttryckligen ställer in alternativet på AV skapar ett fel. Undvik att använda den här funktionen i nytt utvecklingsarbete och planera att ändra program som för närvarande använder den här funktionen. Vi rekommenderar att du alltid ställer in ANSI_PADDING på PÅ. ANSI_PADDING måste vara PÅ när du skapar eller manipulerar index för beräknade kolumner eller indexerade vyer.

char(n) och binary(n) kolumner som tillåter null-värden är vadderade till kolumnlängden när ANSI_PADDING är inställt på PÅ. Avslutande blanksteg och nollor trimmas när ANSI_PADDING är AV. char(n) och binary(n) kolumner som inte tillåter nulls är alltid vadderade till längden på kolumnen.

Inställningar på anslutningsnivå som anges med set-instruktionen åsidosätter standardinställningen på databasnivå för ANSI_PADDING. ODBC- och OLE DB-klienter utfärdar som standard en inställning för SET-instruktion på anslutningsnivå ANSI_PADDING till PÅ för sessionen. Klienterna kör -instruktionen när du ansluter till en instans av SQL Server. Mer information finns i SET ANSI_PADDING.

Du kan fastställa det här alternativets status genom att undersöka kolumnen is_ansi_padding_on i sys.databases katalogvy. Du kan också fastställa statusen genom att undersöka egenskapen IsAnsiPaddingEnabled för funktionen DATABASEPROPERTYEX.

ANSI_WARNINGS { ON | AV }

  • Fel eller varningar utfärdas när villkor som divide-by-zero inträffar. Fel och varningar utfärdas också när null-värden visas i aggregerade funktioner.

  • BORT

    Inga varningar utlöses och nullvärden returneras när villkor som divide-by-zero inträffar.

Not

ANGE ANSI_WARNINGS måste anges till PÅ när du skapar eller gör ändringar i index för beräknade kolumner eller indexerade vyer.

Inställningar på anslutningsnivå som anges med set-instruktionen åsidosätter standarddatabasinställningen för ANSI_WARNINGS. ODBC- och OLE DB-klienter utfärdar en set-instruktionsinställning på anslutningsnivå ANSI_WARNINGS till PÅ för sessionen som standard. Klienterna kör -instruktionen när du ansluter till en instans av SQL Server. Mer information finns i SET-ANSI_WARNINGS.

Du kan fastställa det här alternativets status genom att undersöka kolumnen is_ansi_warnings_on i sys.databases katalogvy. Du kan också fastställa statusen genom att undersöka egenskapen IsAnsiWarningsEnabled för funktionen DATABASEPROPERTYEX.

ARITHABORT { ON | AV }

  • En fråga avslutas när ett spill eller divide-by-zero-fel inträffar under frågekörningen.

  • BORT

    Ett varningsmeddelande visas när ett av dessa fel inträffar. Frågan, batchen eller transaktionen fortsätter att bearbetas som om inget fel uppstod även om en varning visas.

Not

SET ARITHABORT måste anges till PÅ när du skapar eller gör ändringar i index för beräknade kolumner eller indexerade vyer.

Du kan fastställa det här alternativets status genom att undersöka kolumnen is_arithabort_on i sys.databases katalogvy. Du kan också fastställa statusen genom att undersöka egenskapen IsArithmeticAbortEnabled för funktionen DATABASEPROPERTYEX.

COMPATIBILITY_LEVEL = { 160 | 150 | 140 | 130 | 120 | 110 | 100 }

Mer information finns i ALTER DATABASE-kompatibilitetsnivå.

CONCAT_NULL_YIELDS_NULL { ON | AV }

  • Resultatet av en sammanfogningsåtgärd är NULL när någon av operanderna är NULL. Om du till exempel sammanfogar teckensträngen "This is" (Detta är) och NULL returneras värdet NULL i stället för värdet "This is".

  • BORT

    Null-värdet behandlas som en tom teckensträng.

Not

CONCAT_NULL_YIELDS_NULL måste anges till PÅ när du skapar eller gör ändringar i index i beräknade kolumner eller indexerade vyer.

I en framtida version av SQL Server kommer CONCAT_NULL_YIELDS_NULL alltid att vara PÅ och alla program som uttryckligen ställer in alternativet på AV genererar ett fel. Undvik att använda den här funktionen i nytt utvecklingsarbete och planera att ändra program som för närvarande använder den här funktionen.

Inställningar på anslutningsnivå som anges med set-instruktionen åsidosätter standarddatabasinställningen för CONCAT_NULL_YIELDS_NULL. Som standard utfärdar ODBC- och OLE DB-klienter en inställning för SET-instruktion på anslutningsnivå CONCAT_NULL_YIELDS_NULL till PÅ för sessionen när du ansluter till en instans av SQL Server. Mer information finns i SET CONCAT_NULL_YIELDS_NULL.

Du kan fastställa det här alternativets status genom att undersöka kolumnen is_concat_null_yields_null_on i sys.databases katalogvy. Du kan också fastställa statusen genom att undersöka egenskapen IsNullConcat för funktionen DATABASEPROPERTYEX.

NUMERIC_ROUNDABORT { ON | AV }

  • Ett fel genereras när precisionsförlust inträffar i ett uttryck.

  • BORT

    Förlust av precision genererar inget felmeddelande, och resultatet avrundas till precisionen i kolumnen eller variabeln som lagrar resultatet.

Viktig

NUMERIC_ROUNDABORT måste anges till AV när du skapar eller gör ändringar i index för beräknade kolumner eller indexerade vyer.

Du kan fastställa status för det här alternativet i kolumnen is_numeric_roundabort_on i sys.databases katalogvy. Du kan också fastställa statusen genom att undersöka egenskapen IsNumericRoundAbortEnabled för funktionen DATABASEPROPERTYEX.

QUOTED_IDENTIFIER { ON | AV }

  • Dubbla citattecken kan användas för att omsluta avgränsade identifierare.

    Alla strängar som avgränsas med dubbla citattecken tolkas som objektidentifierare. Citerade identifierare behöver inte följa Transact-SQL regler för identifierare. De kan vara nyckelord och kan innehålla tecken som inte tillåts i Transact-SQL identifierare. Om ett dubbelt citattecken (") är en del av identifieraren kan det representeras av två dubbla citattecken ("").

  • BORT

    Identifierare kan inte vara inom citattecken och måste följa alla Transact-SQL regler för identifierare. Literaler kan avgränsas med enkla eller dubbla citattecken.

SQL Server gör också att identifierare kan avgränsas med hakparenteser ([ och ]). Hakparenteserade identifierare kan alltid användas, oavsett vilken inställning QUOTED_IDENTIFIER är. Mer information finns i Databasidentifierare.

När en tabell skapas lagras alternativet QUOTED IDENTIFIER alltid som PÅ i tabellens metadata. Alternativet lagras även om alternativet är inställt på AV när tabellen skapas.

Inställningar på anslutningsnivå som anges med set-instruktionen åsidosätter standarddatabasinställningen för QUOTED_IDENTIFIER. ODBC- och OLE DB-klienter utfärdar en set-instruktionsinställning på anslutningsnivå QUOTED_IDENTIFIER till PÅ som standard. Klienterna kör -instruktionen när du ansluter till en instans av SQL Server. Mer information finns i SET QUOTED_IDENTIFIER.

Du kan fastställa det här alternativets status genom att undersöka kolumnen is_quoted_identifier_on i sys.databases katalogvy. Du kan också fastställa statusen genom att undersöka egenskapen IsQuotedIdentifiersEnabled för funktionen DATABASEPROPERTYEX.

RECURSIVE_TRIGGERS { ON | AV }

  • Rekursiv avfyrning av AFTER-utlösare tillåts.

  • BORT

    Du kan fastställa det här alternativets status genom att undersöka kolumnen is_recursive_triggers_on i sys.databases katalogvy. Du kan också fastställa statusen genom att undersöka egenskapen IsRecursiveTriggersEnabled för funktionen DATABASEPROPERTYEX.

Not

Endast direkt rekursion förhindras när RECURSIVE_TRIGGERS är inställt på OFF. Om du vill inaktivera indirekt rekursion måste du också ange serveralternativet kapslade utlösare till 0.

Du kan fastställa det här alternativets status genom att undersöka kolumnen is_recursive_triggers_on i sys.databases katalogvy eller egenskapen IsRecursiveTriggersEnabled för funktionen DATABASEPROPERTYEX.

<target_recovery_time_option> ::=

Anger frekvensen för indirekta kontrollpunkter per databas. Från och med SQL Server 2016 (13.x) är standardvärdet för nya databaser 1 minut, vilket indikerar att databasen använder indirekta kontrollpunkter. För äldre versioner är standardvärdet 0, vilket anger att databasen använder automatiska kontrollpunkter, vars frekvens beror på inställningen för återställningsintervall för serverinstansen. Microsoft rekommenderar 1 minut för de flesta system.

TARGET_RECOVERY_TIME = target_recovery_time { SECONDS | MINUTER }

  • target_recovery_time

    Anger den maximala gränsen för hur länge den angivna databasen ska återställas i händelse av en krasch. target_recovery_time är typ int.

  • SEKUNDER

    Anger att target_recovery_time uttrycks som antalet sekunder.

  • PROTOKOLL

    Anger att target_recovery_time uttrycks som antalet minuter.

Mer information om indirekta kontrollpunkter finns i Databaskontrollpunkter.

MED <avslutning> ::=

Anger när ofullständiga transaktioner ska återställas när databasen övergår från ett tillstånd till ett annat. Om avslutningssatsen utelämnas väntar ALTER DATABASE-instruktionen på obestämd tid om det finns något lås på databasen. Endast en avslutningssats kan anges och den följer SET-satserna.

Not

Alla databasalternativ använder inte satsen WITH <avslutning>. Mer information finns i tabellen under Ange alternativ i avsnittet "Kommentarer" i den här artikeln.

  • ÅTERSTÄLLNING EFTER heltal [SEKUNDER] | ÅTERSTÄLLNING OMEDELBART

    Anger om du vill återställa efter det angivna antalet sekunder eller omedelbart.

  • NO_WAIT

    Anger att begäran misslyckas om det begärda databastillståndet eller alternativändringen inte kan slutföras omedelbart. Att slutföra omedelbart innebär att inte vänta på att transaktioner ska checkas in eller återställas på egen hand.

<temporal_history_retention> ::=

Ange alternativ

Om du vill hämta aktuella inställningar för databasalternativ använder du sys.databases katalogvy eller DATABASEPROPERTYEX

När du har angett ett databasalternativ börjar den nya inställningen gälla omedelbart.

Du kan ändra standardvärdena för något av databasalternativen för alla nyligen skapade databaser. Det gör du genom att ändra lämpligt databasalternativ i model-databasen.

Alla databasalternativ använder inte satsen WITH <avslutning> eller kan anges i kombination med andra alternativ. I följande tabell visas dessa alternativ och deras alternativ och avslutningsstatus.

Alternativkategori Kan anges med andra alternativ Kan använda satsen MED <avslutning>
<auto_option> Ja Nej
<change_tracking_option> Ja Ja
<cursor_option> Ja Nej
<db_encryption_option> Ja Nej
<db_update_option> Ja Ja
<db_user_access_option> Ja Ja
<delayed_durability_option> Ja Ja
<parameterization_option> Ja Ja
ALLOW_SNAPSHOT_ISOLATION Nej Nej
READ_COMMITTED_SNAPSHOT Nej Ja
MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT Ja Ja
DATE_CORRELATION_OPTIMIZATION Ja Ja
<sql_option> Ja Nej
<target_recovery_time_option> Nej Ja

Exempel

A. Ange databasen till READ_ONLY

Att ändra tillståndet för en databas eller filgrupp till READ_ONLY eller READ_WRITE kräver exklusiv åtkomst till databasen och kan ta några sekunder att slutföra. I följande exempel anges databasen till RESTRICTED_USER läge för att begränsa åtkomsten. I exemplet anges sedan tillståndet för den AdventureWorks2022 databasen till READ_ONLY och returnerar åtkomst till databasen till alla användare.

--Connect to [database_name];
GO
ALTER DATABASE [database_name]
SET RESTRICTED_USER;
GO
ALTER DATABASE [database_name]
SET READ_ONLY
--`SET READ_ONLY` command might take a few seconds to complete.
GO
ALTER DATABASE [database_name]
SET MULTI_USER;
GO

Så här ställer du in databasen i läs- och skrivläge igen:

--Connect to [database_name];
GO
ALTER DATABASE [database_name]
SET READ_WRITE
GO

Så här verifierar du:

SELECT [name], user_access_desc, is_read_only FROM sys.databases
WHERE [name] = 'database_name'
GO

B. Aktivera ögonblicksbildisolering på en databas

I följande exempel aktiveras alternativet för ramverk för ögonblicksbildisolering för AdventureWorks2022-databasen.

--Connect to [database_name]
GO
ALTER DATABASE [database_name]
SET ALLOW_SNAPSHOT_ISOLATION ON;
GO

Kontrollera tillståndet för snapshot_isolation_framework i databasen.

--Connect to [database_name]
SELECT name, snapshot_isolation_state,
    snapshot_isolation_state_desc AS description
FROM sys.databases
WHERE name = N'database_name';
GO

Resultatuppsättningen visar att ramverket för ögonblicksbildisolering är aktiverat.

Namn snapshot_isolation_state beskrivning
[database_name] 1

C. Aktivera, ändra eller inaktivera ändringsspårning

I följande exempel aktiveras ändringsspårning för AdventureWorks2022-databasen och kvarhållningsperioden anges till 2 dagar.

--Connect to [database_name]
ALTER DATABASE [database_name]
SET CHANGE_TRACKING = ON
(AUTO_CLEANUP = ON, CHANGE_RETENTION = 2 DAYS);

I följande exempel visas hur du ändrar kvarhållningsperioden till 3 dagar.

--Connect to [database_name]
ALTER DATABASE [database_name]
SET CHANGE_TRACKING (CHANGE_RETENTION = 3 DAYS);

I följande exempel visas hur du inaktiverar ändringsspårning för AdventureWorks2022-databasen.

--Connect to [database_name]
ALTER DATABASE [database_name]
SET CHANGE_TRACKING = OFF;

D. Aktivera Query Store

Följande exempel aktiverar Query Store och konfigurerar Query Store-parametrar.

--Connect to [database_name]
ALTER DATABASE [database_name]
SET QUERY_STORE = ON
    (
      OPERATION_MODE = READ_WRITE,
      CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = 90 ),
      DATA_FLUSH_INTERVAL_SECONDS = 900,
      QUERY_CAPTURE_MODE = AUTO,
      MAX_STORAGE_SIZE_MB = 1024,
      INTERVAL_LENGTH_MINUTES = 60
    );

E. Aktivera Query Store med väntestatistik

I följande exempel aktiveras Query Store och dess parametrar konfigureras.

--Connect to [database_name]
ALTER DATABASE [database_name]
SET QUERY_STORE = ON
    (
      OPERATION_MODE = READ_WRITE,
      CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = 90 ),
      DATA_FLUSH_INTERVAL_SECONDS = 900,
      MAX_STORAGE_SIZE_MB = 1024,
      INTERVAL_LENGTH_MINUTES = 60,
      SIZE_BASED_CLEANUP_MODE = AUTO,
      MAX_PLANS_PER_QUERY = 200,
      WAIT_STATS_CAPTURE_MODE = ON
    );

F. Aktivera Query Store med anpassade alternativ för avbildningsprinciper

I följande exempel aktiveras Query Store och dess parametrar konfigureras.

--Connect to [database_name]
ALTER DATABASE [database_name]
SET QUERY_STORE = ON
    (
      OPERATION_MODE = READ_WRITE,
      CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = 90 ),
      DATA_FLUSH_INTERVAL_SECONDS = 900,
      MAX_STORAGE_SIZE_MB = 1024,
      INTERVAL_LENGTH_MINUTES = 60,
      SIZE_BASED_CLEANUP_MODE = AUTO,
      MAX_PLANS_PER_QUERY = 200,
      WAIT_STATS_CAPTURE_MODE = ON,
      QUERY_CAPTURE_MODE = CUSTOM,
      QUERY_CAPTURE_POLICY = (
        STALE_CAPTURE_POLICY_THRESHOLD = 24 HOURS,
        EXECUTION_COUNT = 30,
        TOTAL_COMPILE_CPU_TIME_MS = 1000,
        TOTAL_EXECUTION_CPU_TIME_MS = 100
      )
    );

* SQL Managed Instance *  

 

Azure SQL Managed Instance

Kompatibilitetsnivåer är SET alternativ men beskrivs i ALTER DATABASE-kompatibilitetsnivån.

Not

Många alternativ för databasuppsättningar kan konfigureras för den aktuella sessionen med hjälp av SET-instruktioner och konfigureras ofta av program när de ansluter. Uppsättningsalternativ på sessionsnivå åsidosätter ALTER DATABASE SET värden. Databasalternativen som beskrivs i följande avsnitt är värden som kan anges för sessioner som inte uttryckligen anger andra angivna alternativvärden.

Syntax

ALTER DATABASE { database_name | Current }
SET
{
    <optionspec> [ ,...n ]
}
;

<optionspec> ::=
{
    <auto_option>
  | <change_tracking_option>
  | <cursor_option>
  | <db_encryption_option>
  | <delayed_durability_option>
  | <parameterization_option>
  | <query_store_options>
  | <snapshot_option>
  | <sql_option>
  | <target_recovery_time_option>
  | <termination>
  | <temporal_history_retention>
}
;
<auto_option> ::=
{
    AUTO_CREATE_STATISTICS { OFF | ON [ ( INCREMENTAL = { ON | OFF } ) ] }
  | AUTO_SHRINK { ON | OFF }
  | AUTO_UPDATE_STATISTICS { ON | OFF }
  | AUTO_UPDATE_STATISTICS_ASYNC { ON | OFF }
}

<automatic_tuning_option> ::=
{
    AUTOMATIC_TUNING ( FORCE_LAST_GOOD_PLAN = { DEFAULT | ON | OFF } )
}

<change_tracking_option> ::=
{
    CHANGE_TRACKING
    {
       = OFF
     | = ON [ ( <change_tracking_option_list > [,...n] ) ]
     | ( <change_tracking_option_list> [,...n] )
    }
}

<change_tracking_option_list> ::=
   {
       AUTO_CLEANUP = { ON | OFF }
     | CHANGE_RETENTION = retention_period { DAYS | HOURS | MINUTES }
   }

<cursor_option> ::=
{
    CURSOR_CLOSE_ON_COMMIT { ON | OFF }
}

<db_encryption_option> ::=
  ENCRYPTION { ON | OFF }

<delayed_durability_option> ::=DELAYED_DURABILITY = { DISABLED | ALLOWED | FORCED }

<parameterization_option> ::=
  PARAMETERIZATION { SIMPLE | FORCED }

<query_store_options> ::=
{
  QUERY_STORE
  {
    = OFF
    | = ON [ ( <query_store_option_list> [,... n] ) ]
    | ( < query_store_option_list> [,... n] )
    | CLEAR [ ALL ]
  }
}

<query_store_option_list> ::=
{
  OPERATION_MODE = { READ_WRITE | READ_ONLY }
  | CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = number )
  | DATA_FLUSH_INTERVAL_SECONDS = number
  | MAX_STORAGE_SIZE_MB = number
  | INTERVAL_LENGTH_MINUTES = number
  | SIZE_BASED_CLEANUP_MODE = { AUTO | OFF }
  | QUERY_CAPTURE_MODE = { ALL | AUTO | CUSTOM | NONE }
  | MAX_PLANS_PER_QUERY = number
  | WAIT_STATS_CAPTURE_MODE = { ON | OFF }
  | QUERY_CAPTURE_POLICY = ( <query_capture_policy_option_list> [,...n] )
}

<query_capture_policy_option_list> :: =
{
    STALE_CAPTURE_POLICY_THRESHOLD = number { DAYS | HOURS }
    | EXECUTION_COUNT = number
    | TOTAL_COMPILE_CPU_TIME_MS = number
    | TOTAL_EXECUTION_CPU_TIME_MS = number
}

<snapshot_option> ::=
{
    ALLOW_SNAPSHOT_ISOLATION { ON | OFF }
  | READ_COMMITTED_SNAPSHOT { ON | OFF }
  | MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT { ON | OFF }
}
<sql_option> ::=
{
    ANSI_NULL_DEFAULT { ON | OFF }
  | ANSI_NULLS { ON | OFF }
  | ANSI_PADDING { ON | OFF }
  | ANSI_WARNINGS { ON | OFF }
  | ARITHABORT { ON | OFF }
  | COMPATIBILITY_LEVEL = { 160 | 150 | 140 | 130 | 120 | 110 | 100 }
  | CONCAT_NULL_YIELDS_NULL { ON | OFF }
  | NUMERIC_ROUNDABORT { ON | OFF }
  | QUOTED_IDENTIFIER { ON | OFF }
  | RECURSIVE_TRIGGERS { ON | OFF }
}

<temporal_history_retention>::= TEMPORAL_HISTORY_RETENTION { ON | OFF }

Argument

database_name

Namnet på databasen som ska ändras.

STRÖM

CURRENT kör åtgärden i den aktuella databasen. CURRENT stöds inte för alla alternativ i alla kontexter. Om CURRENT misslyckas anger du databasnamnet.

<auto_option> ::=

Styr automatiska alternativ.

AUTO_CREATE_STATISTICS { ON | AV }

  • Query Optimizer skapar statistik för enskilda kolumner i frågepredikat, efter behov, för att förbättra frågeplaner och frågeprestanda. Den här statistiken med en kolumn skapas när Query Optimizer kompilerar frågor. Enkolumnsstatistiken skapas endast för kolumner som inte redan är den första kolumnen i ett befintligt statistikobjekt.

    Standardvärdet är PÅ. Vi rekommenderar att du använder standardinställningen för de flesta databaser.

  • BORT

    Frågeoptimeraren skapar inte statistik för enskilda kolumner i frågepredikat när den kompilerar frågor. Om du ställer in det här alternativet på AV kan det orsaka suboptimala frågeplaner och försämrad frågeprestanda.

    Du kan fastställa det här alternativets status genom att undersöka kolumnen is_auto_create_stats_on i sys.databases katalogvy. Du kan också fastställa statusen genom att undersöka egenskapen IsAutoCreateStatistics för funktionen DATABASEPROPERTYEX.

    Mer information finns i avsnittet "Statistikalternativ" i Statistics.

INCREMENTAL = ON | BORT

Ställ in AUTO_CREATE_STATISTICS på PÅ och ange INKREMENTELL till PÅ. Den här inställningen skapar automatiskt statistik som inkrementell när inkrementell statistik stöds. Standardvärdet är AV. Mer information finns i CREATE STATISTICS.

AUTO_SHRINK { ON | AV }

  • Databasfilerna är kandidater för regelbunden krympning. Om du inte har ett specifikt krav ska du inte ange alternativet AUTO_SHRINK databas till PÅ. Mer information finns i Krympa en databas.

    Både datafilen och loggfilerna kan krympas automatiskt. AUTO_SHRINK minskar storleken på transaktionsloggen endast om du ställer in databasen på SIMPLE-återställningsmodell eller om du säkerhetskopierar loggen. När de är inställda på OFF krymps inte databasfilerna automatiskt under periodiska kontroller av outnyttjat utrymme.

    Alternativet AUTO_SHRINK gör att filer krymps när mer än 25 procent av filen innehåller outnyttjat utrymme. Alternativet gör att filen krymper till en av två storlekar. Den krymper till den som är större:

    • Storleken där 25 procent av filen är outnyttjat utrymme
    • Storleken på filen när den skapades

    Du kan inte krympa en skrivskyddad databas.

  • BORT

    Databasfilerna krymps inte automatiskt under periodiska kontroller av oanvänt utrymme.

Du kan fastställa det här alternativets status genom att undersöka kolumnen is_auto_shrink_on i sys.databases katalogvy. Du kan också fastställa statusen genom att undersöka egenskapen IsAutoShrink för funktionen DATABASEPROPERTYEX.

Not

Alternativet AUTO_SHRINK är inte tillgängligt i en innesluten databas.

AUTO_UPDATE_STATISTICS { ON | AV }

  • Anger att Query Optimizer uppdaterar statistik när de används av en fråga och när de kan vara inaktuella. Statistiken blir inaktuell efter att åtgärderna infoga, uppdatera, ta bort eller slå samman ändrar datadistributionen i tabellen eller den indexerade vyn. Frågeoptimeraren avgör när statistiken kan vara inaktuell genom att räkna antalet dataändringar sedan den senaste statistikuppdateringen och jämföra antalet ändringar med ett tröskelvärde. Tröskelvärdet baseras på antalet rader i tabellen eller den indexerade vyn.

    Frågeoptimeraren söker efter inaktuell statistik innan den kompilerar en fråga och kör en cachelagrad frågeplan. Query Optimizer använder kolumner, tabeller och indexerade vyer i frågepredikatet för att avgöra vilken statistik som kan vara inaktuell. Frågeoptimeraren avgör den här informationen innan den kompilerar en fråga. Innan du kör en cachelagrad frågeplan verifierar databasmotorn att frågeplanen refererar till up-to-date-statistik.

    Alternativet AUTO_UPDATE_STATISTICS gäller för statistik som skapats för index, enkla kolumner i frågepredikat och statistik som skapas med hjälp av instruktionen CREATE STATISTICS. Det här alternativet gäller även för filtrerad statistik.

    Standardvärdet är PÅ. Vi rekommenderar att du använder standardinställningen för de flesta databaser.

    Använd alternativet AUTO_UPDATE_STATISTICS_ASYNC för att ange om statistiken uppdateras synkront eller asynkront.

  • BORT

    Anger att Frågeoptimeraren inte uppdaterar statistik när de används av en fråga. Query Optimizer uppdaterar inte heller statistik när de kan vara inaktuella. Om du ställer in det här alternativet på AV kan det orsaka suboptimala frågeplaner och försämrad frågeprestanda.

Du kan fastställa det här alternativets status genom att undersöka kolumnen is_auto_update_stats_on i sys.databases katalogvy. Du kan också fastställa statusen genom att undersöka egenskapen IsAutoUpdateStatistics för funktionen DATABASEPROPERTYEX.

Mer information finns i avsnittet "Använda databasomfattande statistikalternativ" i Statistics.

AUTO_UPDATE_STATISTICS_ASYNC { ON | AV }

  • Anger att statistikuppdateringar för alternativet AUTO_UPDATE_STATISTICS är asynkrona. Frågeoptimeraren väntar inte på att statistikuppdateringarna ska slutföras innan frågor kompileras.

    Att ställa in det här alternativet på PÅ har ingen effekt om inte AUTO_UPDATE_STATISTICS är inställt på PÅ.

    Som standard är alternativet AUTO_UPDATE_STATISTICS_ASYNC inställt på OFF och Query Optimizer uppdaterar statistik synkront.

  • BORT

    Anger att statistikuppdateringar för alternativet AUTO_UPDATE_STATISTICS är synkrona. Frågeoptimeraren väntar på att statistikuppdateringarna ska slutföras innan frågor kompileras.

    Att ställa in det här alternativet på AV har ingen effekt om inte AUTO_UPDATE_STATISTICS är inställt på PÅ.

Du kan fastställa det här alternativets status genom att undersöka kolumnen is_auto_update_stats_async_on i sys.databases katalogvy.

Mer information som beskriver när du ska använda synkrona eller asynkrona statistikuppdateringar finns i avsnittet "Använda databasomfattande statistikalternativ" i Statistics.

<automatic_tuning_option> ::=

Styr automatiska alternativ för Automatisk justering.

FORCE_LAST_GOOD_PLAN = { STANDARD | PÅ | AV }

Aktiverar eller inaktiverar FORCE_LAST_GOOD_PLANalternativet Automatisk justering.

  • STANDARD

    Standardvärdet för Azure SQL Managed Instance är PÅ.

  • Databasmotorn tvingar automatiskt fram den senast kända bra planen för Transact-SQL frågor där en ny frågeplan orsakar prestandaregressioner. Databasmotorn övervakar kontinuerligt frågeprestanda för den Transact-SQL frågan med den framtvingade planen. Om det finns prestandavinster fortsätter databasmotorn att använda den senast kända bra planen. Om prestandavinster inte identifieras skapar databasmotorn en ny frågeplan. Instruktionen misslyckas om Query Store inte är aktiverat eller inte är i läs- och skrivläge läge. Det här är standardvärdet.

  • BORT

    Databasmotorn rapporterar potentiella frågeprestandaregressioner som orsakas av ändringar i frågeplanen i sys.dm_db_tuning_recommendations vy. Dessa rekommendationer tillämpas dock inte automatiskt. Användare kan övervaka aktiva rekommendationer och åtgärda identifierade problem genom att använda Transact-SQL skript som visas i vyn.

<change_tracking_option> ::=

Styr ändringsspårningsalternativ. Du kan aktivera ändringsspårning, ange alternativ, ändra alternativ och inaktivera ändringsspårning. Exempel finns i avsnittet Exempel senare i den här artikeln.

  • Aktiverar ändringsspårning för databasen. När du aktiverar ändringsspårning kan du också ange alternativen AUTOMATISK RENSNING och ÄNDRINGSBEVARANDE.

AUTO_CLEANUP = { ON | AV }

  • Information om ändringsspårning tas bort automatiskt efter den angivna kvarhållningsperioden.

  • BORT

    Ändringsspårningsdata tas inte bort från databasen.

CHANGE_RETENTION = retention_period { DAYS | TIMMAR | MINUTER }

Anger den minsta perioden för att behålla information om ändringsspårning i databasen. Data tas bara bort när värdet för AUTO_CLEANUP är PÅ.

retention_period är ett heltal som anger den numeriska komponenten i kvarhållningsperioden.

Standardkvarhållningsperioden är 2 dagar. Den minsta kvarhållningsperioden är 1 minut. Standardkvarhållningstypen är DAYS.

  • BORT

    Inaktiverar ändringsspårning för databasen. Inaktivera ändringsspårning för alla tabeller innan du inaktiverar ändringsspårning från databasen.

<cursor_option> ::=

Styr markörens alternativ.

CURSOR_CLOSE_ON_COMMIT { ON | AV }

  • Alla markörer som öppnas när du checkar in eller återställer en transaktion stängs.

  • BORT

    Markörer förblir öppna när en transaktion checkas in. om du återställer en transaktion stängs alla markörer förutom de som definierats som INSENSITIVE eller STATIC.

Inställningar på anslutningsnivå som anges med set-instruktionen åsidosätter standarddatabasinställningen för CURSOR_CLOSE_ON_COMMIT. ODBC- och OLE DB-klienter utfärdar en set-instruktionsinställning på anslutningsnivå CURSOR_CLOSE_ON_COMMIT till AV för sessionen som standard. Klienterna kör -instruktionen när du ansluter till en instans av SQL Server. Mer information finns i SET CURSOR_CLOSE_ON_COMMIT.

Du kan fastställa det här alternativets status genom att undersöka kolumnen is_cursor_close_on_commit_on i sys.databases katalogvy eller egenskapen IsCloseCursorsOnCommitEnabled för funktionen DATABASEPROPERTYEX. Markören frigörs implicit endast vid frånkoppling. Mer information finns i DEKLARERA MARKÖREN.

<db_encryption_option> ::=

Styr databaskrypteringstillståndet.

KRYPTERING { PÅ | AV }

Anger att databasen ska krypteras (PÅ) eller inte krypteras (OFF). Mer information om databaskryptering finns i Transparent datakryptering (TDE)och Transparent datakryptering för Azure SQL Database, Azure SQL Managed Instance och Azure Synapse Analytics.

När kryptering är aktiverat på databasnivå krypteras alla filgrupper. Alla nya filgrupper ärver den krypterade egenskapen. Om några filgrupper i databasen är inställda på SKRIVSKYDDad misslyckas databaskrypteringsåtgärden.

Du kan se krypteringstillståndet för databasen med hjälp av vyn sys.dm_database_encryption_keys dynamisk hantering.

<delayed_durability_option> ::=

Styr om transaktioner checkar in helt varaktiga eller fördröjda varaktiga.

  • HANDIKAPPAD

    Alla transaktioner som följer SET DISABLED är helt hållbara. Eventuella hållbarhetsalternativ som anges i ett atomiskt block eller incheckningsinstruktivt uttryck ignoreras.

  • TILLÅTEN

    Alla transaktioner som följer SET ALLOWED är antingen helt hållbara eller fördröjda varaktiga, beroende på hållbarhetsalternativet som anges i atomblocket eller incheckningsinstrukeringen.

  • FORCERAD

    Alla transaktioner som följer SET FORCED är fördröjda varaktiga. Eventuella hållbarhetsalternativ som anges i ett atomiskt block eller incheckningsinstruktivt uttryck ignoreras.

<PARAMETERIZATION_option> ::=

Styr parameteriseringsalternativet.

PARAMETERIZATION { SIMPLE | FORCED }

  • ENKEL

    Frågor parametriseras baserat på databasens standardbeteende.

  • FORCERAD

SQL Server parameteriserar alla frågor i databasen.

Den aktuella inställningen för det här alternativet kan fastställas genom att undersöka kolumnen is_parameterization_forced i sys.databases katalogvy.

<query_store_options> ::=

  • PÅ | AV | RENSA [ ALLA ]

    Styr om Query Store är aktiverat i den här databasen och styr även borttagningen av innehållet i Query Store.

    • Aktiverar Query Store.

    • BORT

      Inaktiverar Query Store. Det här är standardvärdet.

    • KLAR

      Ta bort innehållet i Query Store.

OPERATION_MODE

Beskriver åtgärdsläget för Query Store. Giltiga värden är READ_ONLY och READ_WRITE. I READ_WRITE läge samlar Query Store in och bevarar information om körningsstatistik för frågeplan och körning. I READ_ONLY läge kan information läsas från Query Store, men ny information läggs inte till. Om det maximala allokerade utrymmet i Query Store har förbrukats ändrar Query Store sitt åtgärdsläge till READ_ONLY.

CLEANUP_POLICY

Beskriver datakvarhållningsprincipen för Query Store. STALE_QUERY_THRESHOLD_DAYS avgör hur många dagar informationen för en fråga ska lagras i Frågearkivet. STALE_QUERY_THRESHOLD_DAYS är typ bigint. Standardvärdet är 30. För SQL Database Basic-utgåvan är standardvärdet 7 dagar.

DATA_FLUSH_INTERVAL_SECONDS

Avgör hur ofta data som skrivs till Query Store sparas på disken. För att optimera prestanda skrivs data som samlas in av Query Store asynkront till disken. Frekvensen för den här asynkrona överföringen konfigureras med hjälp av argumentet DATA_FLUSH_INTERVAL_SECONDS. DATA_FLUSH_INTERVAL_SECONDS är typ bigint. Standardvärdet är 900 (15 min).

MAX_STORAGE_SIZE_MB

Avgör vilket utrymme som allokeras till Query Store. MAX_STORAGE_SIZE_MB är typ bigint. Standardvärdet är 100 MB.

MAX_STORAGE_SIZE_MB gränsen tillämpas inte strikt. Lagringsstorleken kontrolleras endast när Query Store skriver data till disk. Det här intervallet anges av alternativet DATA_FLUSH_INTERVAL_SECONDS eller dialogrutan Management Studio Query Store dataspolningsintervall. Standardvärdet för intervallet är 900 sekunder (eller 15 minuter).

Om Query Store har överskridit gränsen för MAX_STORAGE_SIZE_MB mellan kontroller av lagringsstorlek övergår den till skrivskyddat läge. Om SIZE_BASED_CLEANUP_MODE är aktiverat utlöses även rensningsmekanismen för att framtvinga gränsen för MAX_STORAGE_SIZE_MB.

När tillräckligt med utrymme har rensats växlar Query Store-läget automatiskt tillbaka till läs-och skrivläge.

Viktig

  • Om du tror att din arbetsbelastningsinsamling behöver mer än 10 GB diskutrymme bör du förmodligen tänka om och optimera arbetsbelastningen för att återanvända frågeplaner (till exempel genom att använda tvingad parameteriseringeller justera Query Store-konfigurationerna.
  • Från och med SQL Server 2019 (15.x) och i Azure SQL Database kan du ange QUERY_CAPTURE_MODE till ANPASSAD för ytterligare kontroll över frågeinsamlingsprincipen.
  • MAX_STORAGE_SIZE_MB inställningsgränsen är 10 240 MB för Azure SQL Managed Instance.

INTERVAL_LENGTH_MINUTES

Avgör tidsintervallet med vilket körningsstatistikdata aggregeras till Query Store. För att optimera för utrymmesanvändning aggregeras körningsstatistiken i statistikarkivet för körning över ett fast tidsfönster. Det här fasta tidsfönstret konfigureras med hjälp av argumentet INTERVAL_LENGTH_MINUTES. INTERVAL_LENGTH_MINUTES är typ bigint. Standardvärdet är 60.

SIZE_BASED_CLEANUP_MODE = { AUTO | AV }

Styr om rensning aktiveras automatiskt när den totala mängden data närmar sig maximal storlek.

  • BORT

    Storleksbaserad rensning aktiveras inte automatiskt.

  • BIL

    Storleksbaserad rensning aktiveras automatiskt när storleken på disken når 90% av max_storage_size_mb. Storleksbaserad rensning tar bort de billigaste och äldsta frågorna först. Den stannar vid cirka 80% av max_storage_size_mb. Det här är standardkonfigurationsvärdet.

SIZE_BASED_CLEANUP_MODE är typ nvarchar.

QUERY_CAPTURE_MODE { ALLA | AUTO | ANPASSAD | NONE }

Anger det aktuella aktiva frågeinsamlingsläget.

  • ALLA

    Alla frågor samlas in.

  • BIL

    Samla in relevanta frågor baserat på körningsantal och resursförbrukning. Det här är standardkonfigurationsvärdet för Azure SQL Database.

  • INGEN

    Sluta samla in nya frågor. Query Store fortsätter att samla in kompilerings- och körningsstatistik för frågor som redan har samlats in. Använd den här konfigurationen med försiktighet eftersom du kanske inte kan samla in viktiga frågor.

QUERY_CAPTURE_MODE är typ nvarchar.

MAX_PLANS_PER_QUERY

Ett heltal som representerar det maximala antalet planer som underhålls för varje fråga. MAX_PLANS_PER_QUERY är typ int. Standardvärdet är 200.

WAIT_STATS_CAPTURE_MODE { ON | AV }

Styr om väntestatistik hämtas per fråga.

  • Information om väntestatistik per fråga samlas in. Det här värdet är standardkonfigurationsvärdet.

  • BORT

    Information om väntestatistik per fråga samlas inte in.

<query_capture_policy_option_list> :: =

Styr alternativen för avbildningsprinciper för Query Store. Förutom STALE_CAPTURE_POLICY_THRESHOLD definierar dessa alternativ de OR-villkor som måste ske för att frågor ska samlas in i det definierade tröskelvärdet för inaktuell avbildningsprincip.

STALE_CAPTURE_POLICY_THRESHOLD = heltal { DAYS | TIMMAR }

Definierar utvärderingsintervallperioden för att avgöra om en fråga ska samlas in. Standardvärdet är 1 dag och kan anges från 1 timme till sju dagar.

EXECUTION_COUNT = heltal

Definierar hur många gånger en fråga körs under utvärderingsperioden. Standardvärdet är 30, vilket innebär att för standardtröskelvärdet för inaktuell avbildningsprincip måste en fråga köras minst 30 gånger på en dag för att sparas i Query Store. EXECUTION_COUNT är typ int.

TOTAL_COMPILE_CPU_TIME_MS = heltal

Definierar den totala förflutna kompileringstiden för cpu som används av en fråga under utvärderingsperioden. Standardvärdet är 1 000, vilket innebär att för standardtröskelvärdet för inaktuell avbildningsprincip måste en fråga ha minst en sekund cpu-tid under frågekompilering på en dag för att sparas i Query Store. TOTAL_COMPILE_CPU_TIME_MS är typ int.

TOTAL_EXECUTION_CPU_TIME_MS = heltal

Definierar den totala förflutna körningens CPU-tid som används av en fråga under utvärderingsperioden. Standardvärdet är 100, vilket innebär att för standardtröskelvärdet för inaktuell avbildningsprincip måste en fråga ha totalt minst 100 ms cpu-tid under körningen på en dag för att sparas i Query Store. TOTAL_EXECUTION_CPU_TIME_MS är typ int.

<snapshot_option> ::=

Avgör transaktionsisoleringsnivån.

ALLOW_SNAPSHOT_ISOLATION { ON | AV }

  • Aktiverar alternativet Ögonblicksbild på databasnivå. När den är aktiverad börjar DML-instruktioner generera radversioner även när ingen transaktion använder ögonblicksbildisolering. När det här alternativet har aktiverats kan transaktioner ange transaktionsisoleringsnivån ÖGONBLICKSBILD. När en transaktion körs på ögonblicksbildisoleringsnivå ser alla instruktioner en ögonblicksbild av data eftersom den finns i början av transaktionen. Om en transaktion som körs på ögonblicksbildisoleringsnivå har åtkomst till data i flera databaser måste antingen ALLOW_SNAPSHOT_ISOLATION anges till PÅ i alla databaser, eller så måste varje instruktion i transaktionen använda låstips för alla referenser i en FROM-sats till en tabell i en databas där ALLOW_SNAPSHOT_ISOLATION är AV.

  • BORT

    Inaktiverar alternativet Ögonblicksbild på databasnivå. Transaktioner kan inte ange transaktionsisoleringsnivån ÖGONBLICKSBILD.

När du ställer in ALLOW_SNAPSHOT_ISOLATION till ett nytt tillstånd (från PÅ till AV eller från AV till PÅ) returnerar ALTER DATABASE inte kontrollen till anroparen förrän alla befintliga transaktioner i databasen har checkats in. Om databasen redan är i det tillstånd som anges i ALTER DATABASE-instruktionen returneras kontrollen till anroparen omedelbart. Om ALTER DATABASE-instruktionen inte returneras snabbt använder du sys.dm_tran_active_snapshot_database_transactions för att avgöra om det finns långvariga transaktioner. Om ALTER DATABASE-instruktionen avbryts förblir databasen i det tillstånd den befann sig i när ALTER DATABASE startades. sys.databases katalogvy anger tillståndet för transaktioner med ögonblicksbildisolering i databasen. Om snapshot_isolation_state_desc = IN_TRANSITION_TO_ON pausar instruktionen ALTER DATABASE ... ALLOW_SNAPSHOT_ISOLATION OFF sex sekunder och försöker utföra åtgärden igen.

Du kan inte ändra tillståndet för ALLOW_SNAPSHOT_ISOLATION om databasen är OFFLINE.

Du kan ändra inställningarna för ALLOW_SNAPSHOT_ISOLATION för databaserna master, model, msdboch tempdb. Inställningen behålls varje gång instansen av databasmotorn stoppas och startas om om du ändrar inställningen för tempdb. Om du ändrar inställningen för model-systemdatabasen blir den inställningen standard för alla nya databaser som skapas, förutom tempdb.

Alternativet är SOM standard PÅ för master- och msdb-databaserna.

Den aktuella inställningen för det här alternativet kan fastställas genom att undersöka kolumnen snapshot_isolation_state i sys.databases katalogvy.

READ_COMMITTED_SNAPSHOT { ON | AV }

  • Aktiverar alternativet Read-Committed Ögonblicksbild på databasnivå. När den är aktiverad börjar DML-instruktioner generera radversioner även när ingen transaktion använder ögonblicksbildisolering. När det här alternativet har aktiverats använder transaktionerna som anger READ COMMITTED-isoleringsnivån radversionering i stället för låsning. Alla instruktioner ser en ögonblicksbild av data eftersom den finns i början av -instruktionen när en transaktion körs på READ COMMITTED-isoleringsnivån.

  • BORT

    Inaktiverar alternativet Read-Committed Ögonblicksbild på databasnivå. Transaktioner som anger READ COMMITTED-isoleringsnivån använder låsning.

Om du vill ange READ_COMMITTED_SNAPSHOT till PÅ eller AV får det inte finnas några aktiva anslutningar till databasen förutom anslutningen som kör kommandot ALTER DATABASE. Databasen behöver dock inte vara i enanvändarläge. Du kan inte ändra tillståndet för det här alternativet när databasen är OFFLINE.

READ_COMMITTED_SNAPSHOT kan inte aktiveras för master, tempdbeller msdb systemdatabaser. Om du ändrar inställningen för model-systemdatabasen blir den inställningen standard för alla nya databaser som skapats, med undantag för tempdb.

Den aktuella inställningen för det här alternativet kan fastställas genom att undersöka kolumnen is_read_committed_snapshot_on i sys.databases katalogvy.

Varning

När en tabell skapas med DURABILITY = SCHEMA_ONLYoch READ_COMMITTED_SNAPSHOT sedan ändras med hjälp av ALTER DATABASEgår data i tabellen förlorade.

MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT { ON | AV }

  • När transaktionsisoleringsnivån är inställd på en isoleringsnivå som är lägre än ÖGONBLICKSBILD körs alla tolkade Transact-SQL åtgärder på minnesoptimerade tabeller under ögonblicksbildisolering. Exempel på isoleringsnivåer som är lägre än ögonblicksbilder är READ COMMITTED eller READ UNCOMMITTED. Dessa åtgärder kör om transaktionsisoleringsnivån uttryckligen anges på sessionsnivå eller om standardvärdet används implicit.

  • BORT

    Höjer inte transaktionsisoleringsnivån för tolkade Transact-SQL åtgärder i minnesoptimerade tabeller.

Du kan inte ändra tillståndet för MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT om databasen är OFFLINE.

Standardvärdet är AV.

Den aktuella inställningen för det här alternativet kan fastställas genom att undersöka kolumnen is_memory_optimized_elevate_to_snapshot_on i sys.databases katalogvy.

<sql_option> ::=

Styr ANSI-efterlevnadsalternativen på databasnivå.

ANSI_NULL_DEFAULT { ON | AV }

Avgör standardvärdet, NULL eller NOT NULL, för en kolumn eller CLR-användardefinierad typ som nullabiliteten inte uttryckligen definieras för i CREATE TABLE- eller ALTER TABLE-uttryck. Kolumner som definieras med begränsningar följer villkorsregler oavsett vilken inställning den här inställningen kan vara.

  • Standardvärdet är NULL.

  • BORT

    Standardvärdet är INTE NULL.

Inställningar på anslutningsnivå som anges med set-instruktionen åsidosätter standardinställningen på databasnivå för ANSI_NULL_DEFAULT. ODBC- och OLE DB-klienter utfärdar en set-instruktionsinställning på anslutningsnivå ANSI_NULL_DEFAULT till PÅ för sessionen som standard. Klienterna kör -instruktionen när du ansluter till en instans av SQL Server. Mer information finns i SET ANSI_NULL_DFLT_ON.

För ANSI-kompatibilitet ändrar inställningen av databasalternativet ANSI_NULL_DEFAULT till PÅ databasens standardvärde till NULL.

Du kan fastställa det här alternativets status genom att undersöka kolumnen is_ansi_null_default_on i sys.databases katalogvy. Du kan också fastställa statusen genom att undersöka egenskapen IsAnsiNullDefault för funktionen DATABASEPROPERTYEX.

ANSI_NULLS { ON | AV }

  • Alla jämförelser med ett null-värde utvärderas till OKÄNT.

  • BORT

    Jämförelser av icke-Unicode-värden med ett nullvärde utvärderas till TRUE om båda värdena är NULL.

Viktig

I en framtida version av SQL Server kommer ANSI_NULLS alltid att vara PÅ och alla program som uttryckligen ställer in alternativet på AV genererar ett fel. Undvik att använda den här funktionen i nytt utvecklingsarbete och planera att ändra program som för närvarande använder den här funktionen.

Inställningar på anslutningsnivå som anges med set-instruktionen åsidosätter standarddatabasinställningen för ANSI_NULLS. ODBC- och OLE DB-klienter utfärdar en set-instruktionsinställning på anslutningsnivå ANSI_NULLS till PÅ för sessionen som standard. Klienterna kör -instruktionen när du ansluter till en instans av SQL Server. Mer information finns i SET ANSI_NULLS.

Viktig

ANGE ANSI_NULLS måste också anges till PÅ när du skapar eller gör ändringar i index för beräknade kolumner eller indexerade vyer.

Du kan fastställa det här alternativets status genom att undersöka kolumnen is_ansi_nulls_on i sys.databases katalogvy. Du kan också fastställa statusen genom att undersöka egenskapen IsAnsiNullsEnabled för funktionen DATABASEPROPERTYEX.

ANSI_PADDING { ON | AV }

  • Strängarna är vadderade till samma längd före konverteringen. Även vadderade till samma längd innan du infogar till en varchar eller nvarchar datatyp.

  • BORT

    Infogar avslutande blanksteg i teckenvärden i varchar eller nvarchar kolumner. Lämnar också avslutande nollor i binära värden som infogas i varbinära kolumner. Värden är inte vadderade till kolumnens längd.

    När OFF har angetts påverkar den här inställningen endast definitionen av nya kolumner.

Viktig

I en framtida version av SQL Server kommer ANSI_PADDING alltid att vara PÅ och alla program som uttryckligen ställer in alternativet på AV skapar ett fel. Undvik att använda den här funktionen i nytt utvecklingsarbete och planera att ändra program som för närvarande använder den här funktionen. Vi rekommenderar att du alltid ställer in ANSI_PADDING på PÅ. ANSI_PADDING måste vara PÅ när du skapar eller manipulerar index för beräknade kolumner eller indexerade vyer.

char(n) och binary(n) kolumner som tillåter null-värden är vadderade till kolumnlängden när ANSI_PADDING är inställt på PÅ. Avslutande blanksteg och nollor trimmas när ANSI_PADDING är AV. char(n) och binary(n) kolumner som inte tillåter nulls är alltid vadderade till längden på kolumnen.

Inställningar på anslutningsnivå som anges med set-instruktionen åsidosätter standardinställningen på databasnivå för ANSI_PADDING. ODBC- och OLE DB-klienter utfärdar som standard en inställning för SET-instruktion på anslutningsnivå ANSI_PADDING till PÅ för sessionen. Klienterna kör -instruktionen när du ansluter till en instans av SQL Server. Mer information finns i SET ANSI_PADDING.

Du kan fastställa det här alternativets status genom att undersöka kolumnen is_ansi_padding_on i sys.databases katalogvy. Du kan också fastställa statusen genom att undersöka egenskapen IsAnsiPaddingEnabled för funktionen DATABASEPROPERTYEX.

ANSI_WARNINGS { ON | AV }

  • Fel eller varningar utfärdas när villkor som divide-by-zero inträffar. Fel och varningar utfärdas också när null-värden visas i aggregerade funktioner.

  • BORT

    Inga varningar utlöses och nullvärden returneras när villkor som divide-by-zero inträffar.

Viktig

ANGE ANSI_WARNINGS måste anges till PÅ när du skapar eller gör ändringar i index för beräknade kolumner eller indexerade vyer.

Inställningar på anslutningsnivå som anges med set-instruktionen åsidosätter standarddatabasinställningen för ANSI_WARNINGS. ODBC- och OLE DB-klienter utfärdar en set-instruktionsinställning på anslutningsnivå ANSI_WARNINGS till PÅ för sessionen som standard. Klienterna kör -instruktionen när du ansluter till en instans av SQL Server. Mer information finns i SET-ANSI_WARNINGS.

Du kan fastställa det här alternativets status genom att undersöka kolumnen is_ansi_warnings_on i sys.databases katalogvy. Du kan också fastställa statusen genom att undersöka egenskapen IsAnsiWarningsEnabled för funktionen DATABASEPROPERTYEX.

ARITHABORT { ON | AV }

  • En fråga avslutas när ett spill eller divide-by-zero-fel inträffar under frågekörningen.

  • BORT

    Ett varningsmeddelande visas när ett av dessa fel inträffar. Frågan, batchen eller transaktionen fortsätter att bearbetas som om inget fel uppstod även om en varning visas.

Viktig

SET ARITHABORT måste anges till PÅ när du skapar eller gör ändringar i index för beräknade kolumner eller indexerade vyer.

Du kan fastställa det här alternativets status genom att undersöka kolumnen is_arithabort_on i sys.databases katalogvy. Du kan också fastställa statusen genom att undersöka egenskapen IsArithmeticAbortEnabled för funktionen DATABASEPROPERTYEX.

COMPATIBILITY_LEVEL = { 160 | 150 | 140 | 130 | 120 | 110 | 100 }

Mer information finns i ALTER DATABASE-kompatibilitetsnivå.

CONCAT_NULL_YIELDS_NULL { ON | AV }

  • Resultatet av en sammanfogningsåtgärd är NULL när någon av operanderna är NULL. Om du till exempel sammanfogar teckensträngen "This is" (Detta är) och NULL returneras värdet NULL i stället för värdet "This is".

  • BORT

    Null-värdet behandlas som en tom teckensträng.

Viktig

CONCAT_NULL_YIELDS_NULL måste anges till PÅ när du skapar eller gör ändringar i index i beräknade kolumner eller indexerade vyer.

I en framtida version av SQL Server kommer CONCAT_NULL_YIELDS_NULL alltid att vara PÅ och alla program som uttryckligen ställer in alternativet på AV genererar ett fel. Undvik att använda den här funktionen i nytt utvecklingsarbete och planera att ändra program som för närvarande använder den här funktionen.

Inställningar på anslutningsnivå som anges med set-instruktionen åsidosätter standarddatabasinställningen för CONCAT_NULL_YIELDS_NULL. Som standard utfärdar ODBC- och OLE DB-klienter en inställning för SET-instruktion på anslutningsnivå CONCAT_NULL_YIELDS_NULL till PÅ för sessionen när du ansluter till en instans av SQL Server. Mer information finns i SET CONCAT_NULL_YIELDS_NULL.

Du kan fastställa det här alternativets status genom att undersöka kolumnen is_concat_null_yields_null_on i sys.databases katalogvy. Du kan också fastställa statusen genom att undersöka egenskapen IsNullConcat för funktionen DATABASEPROPERTYEX.

NUMERIC_ROUNDABORT { ON | AV }

  • Ett fel genereras när precisionsförlust inträffar i ett uttryck.

  • BORT

    Förlust av precision genererar inget felmeddelande, och resultatet avrundas till precisionen i kolumnen eller variabeln som lagrar resultatet.

Viktig

NUMERIC_ROUNDABORT måste anges till AV när du skapar eller gör ändringar i index för beräknade kolumner eller indexerade vyer.

Du kan fastställa status för det här alternativet i kolumnen is_numeric_roundabort_on i sys.databases katalogvy. Du kan också fastställa statusen genom att undersöka egenskapen IsNumericRoundAbortEnabled för funktionen DATABASEPROPERTYEX.

QUOTED_IDENTIFIER { ON | AV }

  • Dubbla citattecken kan användas för att omsluta avgränsade identifierare.

    Alla strängar som avgränsas med dubbla citattecken tolkas som objektidentifierare. Citerade identifierare behöver inte följa Transact-SQL regler för identifierare. De kan vara nyckelord och kan innehålla tecken som inte tillåts i Transact-SQL identifierare. Om ett dubbelt citattecken (") är en del av identifieraren kan det representeras av två dubbla citattecken ("").

  • BORT

    Identifierare kan inte vara inom citattecken och måste följa alla Transact-SQL regler för identifierare. Literaler kan avgränsas med enkla eller dubbla citattecken.

SQL Server gör också att identifierare kan avgränsas med hakparenteser ([ och ]). Hakparenteserade identifierare kan alltid användas, oavsett vilken inställning QUOTED_IDENTIFIER är. Mer information finns i Databasidentifierare.

När en tabell skapas lagras alternativet QUOTED IDENTIFIER alltid som PÅ i tabellens metadata. Alternativet lagras även om alternativet är inställt på AV när tabellen skapas.

Inställningar på anslutningsnivå som anges med set-instruktionen åsidosätter standarddatabasinställningen för QUOTED_IDENTIFIER. ODBC- och OLE DB-klienter utfärdar en set-instruktionsinställning på anslutningsnivå QUOTED_IDENTIFIER till PÅ som standard. Klienterna kör -instruktionen när du ansluter till en instans av SQL Server. Mer information finns i SET QUOTED_IDENTIFIER.

Du kan fastställa det här alternativets status genom att undersöka kolumnen is_quoted_identifier_on i sys.databases katalogvy. Du kan också fastställa statusen genom att undersöka egenskapen IsQuotedIdentifiersEnabled för funktionen DATABASEPROPERTYEX.

RECURSIVE_TRIGGERS { ON | AV }

  • Rekursiv avfyrning av AFTER-utlösare tillåts.

  • BORT

    Du kan fastställa det här alternativets status genom att undersöka kolumnen is_recursive_triggers_on i sys.databases katalogvy. Du kan också fastställa statusen genom att undersöka egenskapen IsRecursiveTriggersEnabled för funktionen DATABASEPROPERTYEX.

    Not

    Endast direkt rekursion förhindras när RECURSIVE_TRIGGERS är inställt på OFF. Om du vill inaktivera indirekt rekursion måste du också ange serveralternativet kapslade utlösare till 0.

Du kan fastställa det här alternativets status genom att undersöka kolumnen is_recursive_triggers_on i sys.databases katalogvy eller egenskapen IsRecursiveTriggersEnabled för funktionen DATABASEPROPERTYEX.

<target_recovery_time_option> ::=

target_recovery_time_option stöds inte på Azure SQL Managed Instance.

Anger frekvensen för indirekta kontrollpunkter per databas. Från och med SQL Server 2016 (13.x) är standardvärdet för nya databaser 1 minut, vilket indikerar att databasen använder indirekta kontrollpunkter. För äldre versioner är standardvärdet 0, vilket anger att databasen använder automatiska kontrollpunkter, vars frekvens beror på inställningen för återställningsintervall för serverinstansen. Microsoft rekommenderar 1 minut för de flesta system.

MED <avslutning> ::=

Anger när ofullständiga transaktioner ska återställas när databasen övergår från ett tillstånd till ett annat. Om avslutningssatsen utelämnas väntar ALTER DATABASE-instruktionen på obestämd tid om det finns något lås på databasen. Endast en avslutningssats kan anges och den följer SET-satserna.

Not

Alla databasalternativ använder inte satsen WITH <avslutning>. Mer information finns i tabellen under Ange alternativ i avsnittet "Kommentarer" i den här artikeln.

  • ÅTERSTÄLLNING EFTER heltal [SEKUNDER] | ÅTERSTÄLLNING OMEDELBART

    Anger om du vill återställa efter det angivna antalet sekunder eller omedelbart.

  • NO_WAIT

    Anger att begäran misslyckas om det begärda databastillståndet eller alternativändringen inte kan slutföras omedelbart. Att slutföra omedelbart innebär att inte vänta på att transaktioner ska checkas in eller återställas på egen hand.

<temporal_history_retention> ::=

Ange alternativ

Om du vill hämta aktuella inställningar för databasalternativ använder du sys.databases katalogvy eller DATABASEPROPERTYEX

När du har angett ett databasalternativ börjar den nya inställningen gälla omedelbart.

Du kan ändra standardvärdena för något av databasalternativen för alla nyligen skapade databaser. Det gör du genom att ändra lämpligt databasalternativ i model-systemdatabasen.

Exempel

A. Aktivera ögonblicksbildisolering på en databas

I följande exempel aktiveras alternativet för ramverk för ögonblicksbildisolering för AdventureWorks2022-databasen.

USE master;
GO
ALTER DATABASE [database_name]
SET ALLOW_SNAPSHOT_ISOLATION ON;
GO
-- Check the state of the snapshot_isolation_framework
-- in the database.
SELECT name, snapshot_isolation_state,
    snapshot_isolation_state_desc AS description
FROM sys.databases
WHERE name = N'[database_name]';
GO

Resultatuppsättningen visar att ramverket för ögonblicksbildisolering är aktiverat.

Namn snapshot_isolation_state beskrivning
[database_name] 1

B. Aktivera, ändra eller inaktivera ändringsspårning

I följande exempel aktiveras ändringsspårning för AdventureWorks2022-databasen och kvarhållningsperioden anges till 2 dagar.

ALTER DATABASE [database_name]
SET CHANGE_TRACKING = ON
(AUTO_CLEANUP = ON, CHANGE_RETENTION = 2 DAYS);

I följande exempel visas hur du ändrar kvarhållningsperioden till 3 dagar.

ALTER DATABASE [database_name]
SET CHANGE_TRACKING (CHANGE_RETENTION = 3 DAYS);

I följande exempel visas hur du inaktiverar ändringsspårning för AdventureWorks2022-databasen.

ALTER DATABASE [database_name]
SET CHANGE_TRACKING = OFF;

C. Aktivera Query Store

Följande exempel aktiverar Query Store och konfigurerar Query Store-parametrar.

ALTER DATABASE [database_name]
SET QUERY_STORE = ON
    (
      OPERATION_MODE = READ_WRITE,
      CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = 90 ),
      DATA_FLUSH_INTERVAL_SECONDS = 900,
      QUERY_CAPTURE_MODE = AUTO,
      MAX_STORAGE_SIZE_MB = 1024,
      INTERVAL_LENGTH_MINUTES = 60
    );

D. Aktivera Query Store med väntestatistik

I följande exempel aktiveras Query Store och dess parametrar konfigureras.

ALTER DATABASE [database_name]
SET QUERY_STORE = ON
    (
      OPERATION_MODE = READ_WRITE,
      CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = 90 ),
      DATA_FLUSH_INTERVAL_SECONDS = 900,
      MAX_STORAGE_SIZE_MB = 1024,
      INTERVAL_LENGTH_MINUTES = 60,
      SIZE_BASED_CLEANUP_MODE = AUTO,
      MAX_PLANS_PER_QUERY = 200,
      WAIT_STATS_CAPTURE_MODE = ON
    );

E. Aktivera Query Store med anpassade alternativ för avbildningsprinciper

I följande exempel aktiveras Query Store och dess parametrar konfigureras.

ALTER DATABASE [database_name]
SET QUERY_STORE = ON
    (
      OPERATION_MODE = READ_WRITE,
      CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = 90 ),
      DATA_FLUSH_INTERVAL_SECONDS = 900,
      MAX_STORAGE_SIZE_MB = 1024,
      INTERVAL_LENGTH_MINUTES = 60,
      SIZE_BASED_CLEANUP_MODE = AUTO,
      MAX_PLANS_PER_QUERY = 200,
      WAIT_STATS_CAPTURE_MODE = ON,
      QUERY_CAPTURE_MODE = CUSTOM,
      QUERY_CAPTURE_POLICY = (
        STALE_CAPTURE_POLICY_THRESHOLD = 24 HOURS,
        EXECUTION_COUNT = 30,
        TOTAL_COMPILE_CPU_TIME_MS = 1000,
        TOTAL_EXECUTION_CPU_TIME_MS = 100
      )
    );

* Azure Synapse
Analys *
 

 

Azure Synapse Analytics

Syntax

ALTER DATABASE { database_name }
SET
{
    <optionspec> [ ,...n ]
}
;

<option_spec>::=
{
    <auto_option>
  | <db_encryption_option>
  | <query_store_options>
  | <result_set_caching>
  | <snapshot_option>
}
;

<auto_option> ::=
{
    AUTO_CREATE_STATISTICS { OFF | ON }
}

<db_encryption_option> ::=
{
    ENCRYPTION { ON | OFF }
}

<query_store_option> ::=
{
    QUERY_STORE { OFF | ON }
}

<result_set_caching_option> ::=
{
    RESULT_SET_CACHING { ON | OFF }
}

<snapshot_option> ::=
{
    READ_COMMITTED_SNAPSHOT { ON | OFF }
}

Argument

database_name

Namnet på databasen som ska ändras.

<auto_option> ::=

Styr automatiska alternativ.

AUTO_CREATE_STATISTICS { ON | AV }

  • Query Optimizer skapar statistik för enskilda kolumner i frågepredikat, efter behov, för att förbättra frågeplaner och frågeprestanda. Den här statistiken med en kolumn skapas när Query Optimizer kompilerar frågor. Enkolumnsstatistiken skapas endast för kolumner som inte redan är den första kolumnen i ett befintligt statistikobjekt.

    Standardvärdet är PÅ. Vi rekommenderar att du använder standardinställningen för de flesta databaser.

  • BORT

    Frågeoptimeraren skapar inte statistik för enskilda kolumner i frågepredikat när den kompilerar frågor. Om du ställer in det här alternativet på AV kan det orsaka suboptimala frågeplaner och försämrad frågeprestanda.

Det här kommandot måste köras när du är ansluten till användardatabasen.

Du kan fastställa det här alternativets status genom att undersöka kolumnen is_auto_create_stats_on i sys.databases katalogvy. Du kan också fastställa statusen genom att undersöka egenskapen IsAutoCreateStatistics för funktionen DATABASEPROPERTYEX.

Mer information finns i avsnittet "Använda databasomfattande statistikalternativ" i Statistics.

<db_encryption_option> ::=

Styr databaskrypteringstillståndet.

KRYPTERING { PÅ | AV }

  • Anger att databasen ska krypteras.

  • BORT

    Anger att databasen inte ska krypteras.

Mer information om databaskryptering finns i Transparent datakryptering (TDE)och Transparent datakryptering för Azure SQL Database, Azure SQL Managed Instance och Azure Synapse Analytics.

När kryptering är aktiverat på databasnivå krypteras alla filgrupper. Alla nya filgrupper ärver den krypterade egenskapen. Om några filgrupper i databasen är inställda på SKRIVSKYDDad misslyckas databaskrypteringsåtgärden.

Du kan se krypteringstillståndet för databasen och krypteringsgenomsökningens tillstånd med hjälp av sys.dm_database_encryption_keys dynamisk hanteringsvy.

<query_store_option> ::=

Styr om Query Store är aktiverat i det här informationslagret.

QUERY_STORE { ON | AV }

  • Aktiverar Query Store.

  • BORT

    Inaktiverar Query Store. OFF är standardvärdet.

Not

För Azure Synapse Analytics måste du köra ALTER DATABASE SET QUERY_STORE från användardatabasen. Det går inte att köra -instruktionen från en annan instans av informationslagret.

Not

För Azure Synapse Analytics kan Query Store aktiveras som på andra plattformar, men ytterligare konfigurationsalternativ stöds inte.

<result_set_caching_option> ::=

gäller för: Azure Synapse Analytics

Styr om frågeresultatet cachelagras i databasen.

RESULT_SET_CACHING { ON | AV }

  • Anger att frågeresultatuppsättningar som returneras från den här databasen cachelagras i databasen.

  • BORT

    Anger att frågeresultatuppsättningar som returneras från den här databasen inte cachelagras i databasen.

Det här kommandot måste köras när det är anslutet till master-databasen. Ändringen av den här databasinställningen börjar gälla omedelbart. Lagringskostnader uppstår vid cachelagring av frågeresultatuppsättningar. När du har inaktiverat cachelagring av resultat för en databas tas den tidigare bevarade resultatcachen omedelbart bort från Azure Synapse-lagringen.

Kör det här kommandot för att kontrollera cachelagringskonfigurationen för en databas. Om cachelagring av resultatuppsättningar är aktiverat returnerar is_result_set_caching_on 1.

SELECT name, is_result_set_caching_on FROM sys.databases
WHERE name = <'Your_Database_Name'>

Kör det här kommandot för att kontrollera om en fråga kördes med cachelagrat resultat. Kolumnen result_cache_hit returnerar 1 för cacheträff, 0 för cachemiss och negativa värden av orsaker till varför cachelagring av resultatuppsättningar inte användes. Mer information finns i sys.dm_pdw_exec_requests.

SELECT request_id, command, result_cache_hit FROM sys.dm_pdw_exec_requests
WHERE request_id = <'Your_Query_Request_ID'>

Not

Cachelagring av resultatuppsättningar ska inte användas tillsammans med DECRYPTBYKEY. Om den här kryptografiska funktionen måste användas kontrollerar du att cachelagring av resultatuppsättningar är inaktiverad (antingen på sessionsnivå eller databasnivå) vid tidpunkten för körningen.

Viktig

Åtgärder för att skapa resultatuppsättningscache och hämta data från cachen sker på kontrollnoden för en datalagerinstans. När cachelagring av resultatuppsättningar är aktiverat kan körning av frågor som returnerar stora resultatuppsättningar (till exempel >1 miljon rader) orsaka hög CPU-användning på kontrollnoden och sakta ned det övergripande frågesvaret på instansen. Dessa frågor används ofta vid datautforskning eller ETL-åtgärder. För att undvika att betona kontrollnoden och orsaka prestandaproblem bör användarna inaktivera cachelagring av resultatuppsättningar i databasen innan de kör dessa typer av frågor.

Mer information om prestandajustering med cachelagring av resultatuppsättningar finns i Vägledning för prestandajustering.

Behörigheter

Om du vill ange alternativet RESULT_SET_CACHING behöver en användare inloggning på servernivå (den som skapades av etableringsprocessen) eller vara medlem i dbmanager databasrollen.

<snapshot_option> ::=

gäller för: Azure Synapse Analytics

Styr transaktionsisoleringsnivån för en databas.

READ_COMMITTED_SNAPSHOT { ON | AV }

  • Aktiverar alternativet READ_COMMITTED_SNAPSHOT på databasnivå.

  • BORT

    Inaktivera alternativet READ_COMMITTED_SNAPSHOT på databasnivå.

Det här kommandot måste köras när det är anslutet till master-databasen. Om du aktiverar READ_COMMITTED_SNAPSHOT på eller av för en användardatabas avbryts alla öppna anslutningar till den här databasen. Du bör göra den här ändringen under en databasunderhållsperiod eller vänta tills det inte finns någon aktiv anslutning till databasen förutom anslutningen som kör KOMMANDOT ALTER DATABASE. Databasen behöver inte vara i enanvändarläge. Det går inte att ändra READ_COMMITTED_SNAPSHOT inställning på sessionsnivå. Kontrollera den här inställningen för en databas genom att kontrollera kolumnen is_read_committed_snapshot_on i sys.databases.

I en databas med READ_COMMITTED_SNAPSHOT aktiverad kan frågor få långsammare prestanda på grund av genomsökningen av versioner om flera dataversioner finns. Långöppna transaktioner kan också orsaka en ökning av databasens storlek. Det här problemet uppstår om det finns dataändringar av dessa transaktioner som blockerar versionsrensning.

Behörigheter

Om du vill ange alternativet READ_COMMITTED_SNAPSHOT behöver en användare ALTER-behörighet för databasen.

Exempel

Kontrollera statistikinställningen för en databas

SELECT name, is_auto_create_stats_on FROM sys.databases

Aktivera Query Store för en databas

ALTER DATABASE [database_name]
SET QUERY_STORE = ON;

Aktivera cachelagring av resultatuppsättningar för en databas

-- Run this command when connecting to the MASTER database

ALTER DATABASE [database_name]
SET RESULT_SET_CACHING ON;

Kontrollera cachelagringsinställningen för resultatuppsättningen för en databas

SELECT name, is_result_set_caching_on
FROM sys.databases;

Aktivera alternativet Read_Committed_Snapshot för en databas

Kör det här kommandot när du ansluter till master-databasen.

ALTER DATABASE MyDatabase
SET READ_COMMITTED_SNAPSHOT ON;

Microsoft Fabric

 

Microsoft Fabric

Använd ALTER DATABASE ... SET för att hantera ett Microsoft Fabric Warehouse.

Syntax

-- Microsoft Fabric

ALTER DATABASE { warehouse_name | CURRENT }
SET
{
    <option_spec> [ ,...n ] 
}

<option_spec> ::=
{
    <data_lake_log_publishing>
  | <vorder>
}
;

<data_lake_log_publishing> ::=
{
    DATA_LAKE_LOG_PUBLISHING { PAUSED | AUTO }
}

<vorder> ::=
{
    VORDER = OFF
}

Anmärkningar

För närvarande är pausning av Delta Lake-loggpublicering och inaktivering av V-Order-beteende i ett lager de enda användningsområdena för ALTER DATABASE ... SET i Microsoft Fabric.

Behörigheter

Användaren måste vara medlem i administratörs-, medlems- eller deltagarrollerna på arbetsytan Infrastruktur.

Exempel

A. Pausa publiceringen av Delta Lake-loggar

Följande T-SQL-kommando pausar Delta Lake Log-publiceringen i den aktuella lagerkontexten.

ALTER DATABASE CURRENT SET DATA_LAKE_LOG_PUBLISHING = PAUSED;

Om du vill kontrollera den aktuella statusen för Delta Lake Log-publicering på alla lager, på din arbetsyta, använder du följande T-SQL-kod för att fråga sys.databases i ett nytt frågefönster:

SELECT [name], [DATA_LAKE_LOG_PUBLISHING_DESC] FROM sys.databases;