Sdílet prostřednictvím


Možnosti ALTER DATABASE SET (Transact-SQL)

Nastaví možnosti databáze v Microsoft SQL Serveru, Azure SQL Database a Azure Synapse Analytics. Další možnosti ALTER DATABASE naleznete v tématu ALTER DATABASE.

Poznámka

Nastavení některých možností pomocí příkazu ALTER DATABASE může vyžadovat výhradní přístup k databázi. Pokud příkaz ALTER DATABASE není dokončen včas, zkontrolujte, jestli relace ALTER DATABASE neblokují jiné relace v databázi.

Další informace o konvencích syntaxe najdete v tématu Transact-SQL konvence syntaxe.

Výběr produktu

V následujícím řádku vyberte název produktu, který vás zajímá. Tímto způsobem se na této webové stránce zobrazí jiný obsah, který je vhodný pro vámi vybraný produkt.

* SQL Server *  

SQL Database

spravované instance SQL

 

SQL Server

Zrcadlení databáze, skupiny dostupnosti AlwaysOn a úrovně kompatibility jsou SET možnosti, ale jsou popsány v samostatných článcích kvůli jejich délce. Další informace naleznete v tématu ALTER DATABASE Database Mirroring, ALTER DATABASE SET HADRa ÚROVEŇ kompatibility ALTER DATABASE.

Konfigurace s vymezeným oborem databáze se používají k nastavení několika konfigurací databáze na úrovni jednotlivých databází. Další informace naleznete v tématu ALTER DATABASE SCOPED CONFIGURATION.

Poznámka

Mnoho možností sady databází je možné nakonfigurovat pro aktuální relaci pomocí příkazů SET a aplikace je často konfigurují při připojení. Možnosti sady na úrovni relace přepíší hodnoty ALTER DATABASE SET. Možnosti databáze popsané v následujících částech jsou hodnoty, které můžete nastavit pro relace, které explicitně neposkytují další hodnoty možností sady.

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 }

Argumenty

database_name

Název databáze, která se má upravit.

SOUČASNÝ

platí pro: SQL Server (počínaje SQL Serverem 2012 (11.x))

Spustí akci v aktuální databázi. CURRENT nejsou podporované pro všechny možnosti ve všech kontextech. Pokud CURRENT selže, zadejte název databáze.

<accelerated_database_recovery> ::=

platí pro: SQL Server (počínaje SQL Serverem 2019 (15.x))

Povolízrychleného obnovení databáze (ADR). Ve výchozím nastavení je V SQL Serveru 2019 (15.x) a novějším nastavená možnost ADR vypnutá. Pomocí této syntaxe můžete určit konkrétní skupinu souborů pro data trvalého úložiště verzí (PVS). Pokud není zadána žádná skupina souborů, soubor PVS se uloží do skupiny souborů PRIMARY. Další informace najdete v tématu Správa zrychleného obnovení databáze.

<auto_option> ::=

Řídí automatické možnosti.

AUTO_CLOSE { ON | VYPNUTO }

  • NA

    Databáze se vypne čistě a jeho prostředky se uvolní po ukončení posledního uživatele.

    Databáze se automaticky znovu otevře, když se uživatel pokusí databázi znovu použít. K tomuto chování dochází například v případě, že uživatel vydá příkaz USE database_name. Databáze se může čistě vypnout s AUTO_CLOSE nastavenou na zapnuto. Pokud ano, databáze se znovu neotevře, dokud se uživatel pokusí databázi použít při příštím restartování databázového stroje.

    Po vypnutí databáze se při příštím pokusu aplikace o použití databáze musí nejprve otevřít a stav se změní na online. Může to nějakou dobu trvat a může dojít k vypršení časového limitu aplikace.

  • PRYČ

    Databáze zůstane otevřená po ukončení posledního uživatele.

    Možnost AUTO_CLOSE je užitečná pro desktopové databáze, protože umožňuje správu databázových souborů jako běžných souborů. Dají se přesunout, zkopírovat a zálohovat nebo dokonce poslat e-mailem jiným uživatelům. Proces AUTO_CLOSE je asynchronní; opakovaným otevřením a zavřením databáze nedojde ke snížení výkonu.

Poznámka

Možnost AUTO_CLOSE není dostupná v databázi s omezením nebo ve službě SQL Database. Stav této možnosti můžete určit prozkoumáním sloupce is_auto_close_on v zobrazení katalogu sys.databases nebo vlastností IsAutoClose funkce DATABASEPROPERTY EX.

Pokud je AUTO_CLOSE nastavena na hodnotu ZAPNUTO, některé sloupce v zobrazení katalogu sys.databases a funkce DATABASEPROPERTYEX vrátí hodnotu NULL, protože databáze není k dispozici k načtení dat. Pokud chcete tento problém vyřešit, spusťte příkaz USE pro otevření databáze.

Zrcadlení databáze vyžaduje AUTO_CLOSE vypnuto.

Pokud je databáze nastavena na AUTOCLOSE = ON, operace, která iniciuje automatické vypnutí databáze vymaže mezipaměť plánu pro instanci SQL Serveru. Vymazání mezipaměti plánu způsobí rekompilace všech následných plánů spuštění a může způsobit náhlé dočasné snížení výkonu dotazů. Od verze SQL Server 2005 (9.x) Service Pack 2 pro každé vymazané úložiště mezipaměti v mezipaměti plánu obsahuje protokol chyb SYSTÉMU SQL Server následující informační zprávu: 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. Tato zpráva se protokoluje každých pět minut, dokud se mezipaměť vyprázdní v daném časovém intervalu.

Nastavení AUTO_CLOSE může být užitečnou funkcí v některých výjimečných situacích, například v instanci SQL Serveru bez dostatečné paměti pro provoz s velkým počtem databází nebo pro starší 32bitovou instanci SQL Serveru s velkým počtem databází. V takových scénářích může být užitečné povolit AUTO_CLOSE a ušetřit prostředky paměti potřebné k tomu, aby byla databáze otevřená, když databáze nepoužívá žádnou aplikaci. Když je databáze otevřená, vyžadují se některé výchozí přidělení paměti (například interní struktury představující různé objekty metadat databáze a vyrovnávací paměti transakčních protokolů).

AUTO_CREATE_STATISTICS { ON | VYPNUTO }

  • NA

    Optimalizátor dotazů vytváří statistiky pro jednotlivé sloupce v predikátech dotazů podle potřeby za účelem zlepšení plánů dotazů a výkonu dotazů. Tyto statistiky s jedním sloupcem se vytvoří, když Optimalizátor dotazů zkompiluje dotazy. Statistiky s jedním sloupcem se vytvářejí jenom u sloupců, které ještě nejsou prvním sloupcem existujícího objektu statistiky.

    Výchozí nastavení je ZAPNUTO. Pro většinu databází doporučujeme použít výchozí nastavení.

  • PRYČ

    Optimalizátor dotazů nevytváří statistiky pro jednotlivé sloupce v predikátech dotazů při kompilaci dotazů. Nastavením této možnosti na vypnuto může dojít k neoptimálním plánům dotazů a snížení výkonu dotazů.

Stav této možnosti můžete určit prozkoumáním sloupce is_auto_create_stats_on v zobrazení katalogu sys.databases. Stav můžete také určit prozkoumáním IsAutoCreateStatistics vlastnosti DATABASEPROPERTYEX.

Další informace najdete v části "Použití možností statistiky pro celou databázi" v Statistika.

PŘÍRŮSTKOVÉ = ZAPNUTO | PRYČ

platí pro: SQL Server (počínaje SQL Serverem 2014 (12.x)) a Azure SQL Database

Nastavte AUTO_CREATE_STATISTICS na ZAPNUTO a nastavte PŘÍRŮSTKOVÉ na ZAPNUTO. Tato sada automaticky vytvoří statistiky jako přírůstkové, kdykoli se podporují přírůstkové statistiky. Výchozí hodnota je VYPNUTÁ. Další informace naleznete v tématu CREATE STATISTICS.

AUTO_SHRINK { ON | VYPNUTO }

  • NA

    Soubory databáze jsou kandidáty na pravidelné zmenšení. Pokud nemáte konkrétní požadavek, nenastavujte možnost AUTO_SHRINK databáze na hodnotu ZAPNUTO. Další informace naleznete v tématu Zmenšení databáze.

    Datové soubory i soubory protokolu se dají automaticky zmenšit. AUTO_SHRINK zmenšuje velikost transakčního protokolu pouze v případě, že nastavíte databázi na JEDNODUCHÝ model obnovení nebo pokud zálohujete protokol. Když nastavíte AUTO_SHRINK na vypnuto, soubory databáze se při pravidelných kontrolách nevyužitého místa automaticky nezvětší.

    Možnost AUTO_SHRINK zmenší soubory, pokud více než 25 procent souboru obsahuje nevyužité místo. Zmenší soubor na jednu ze dvou velikostí (podle toho, co je větší):

    • Velikost, ve které je 25 procent souboru nevyužité místo
    • Velikost souboru při jeho vytvoření

    Databázi jen pro čtení nemůžete zmenšit.

  • PRYČ

    Soubory databáze se při pravidelných kontrolách nevyužitého místa automaticky nezřetěší.

Stav této možnosti můžete určit prozkoumáním sloupce is_auto_shrink_on v zobrazení katalogu sys.databases. Stav můžete také určit prozkoumáním IsAutoShrink vlastnosti DATABASEPROPERTYEX.

Poznámka

Možnost AUTO_SHRINK není dostupná v databázi s omezením.

AUTO_UPDATE_STATISTICS { ON | VYPNUTO }

  • NA

    Určuje, že optimalizátor dotazů aktualizuje statistiky, když je používá dotaz a kdy může být zastaralý. Statistiky se po vložení, aktualizaci, odstranění nebo sloučení změní distribuci dat v tabulce nebo indexovém zobrazení. Optimalizátor dotazů určuje, kdy statistiky můžou být zastaralé, počítáním počtu úprav dat od poslední aktualizace statistiky a porovnáním počtu úprav s prahovou hodnotou. Prahová hodnota je založená na počtu řádků v tabulce nebo indexovaném zobrazení.

    Optimalizátor dotazů před kompilací dotazu zkontroluje zastaralé statistiky a spustí plán dotazů uložený v mezipaměti. Optimalizátor dotazů používá sloupce, tabulky a indexovaná zobrazení v predikáte dotazu k určení, které statistiky můžou být zastaralé. Optimalizátor dotazů určuje tyto informace před kompilací dotazu. Před spuštěním plánu dotazů v mezipaměti databázový stroj ověří, že plán dotazu odkazuje na up-tostatistiky -date.

    Možnost AUTO_UPDATE_STATISTICS se vztahuje na statistiky vytvořené pro indexy, jednosloupcové v predikátech dotazů a statistiky vytvořené pomocí příkazu CREATE STATISTICS. Tato možnost platí také pro filtrované statistiky.

    Výchozí hodnota je ZAPNUTÁ. Pro většinu databází doporučujeme použít výchozí nastavení.

    Pomocí možnosti AUTO_UPDATE_STATISTICS_ASYNC určete, jestli se statistiky aktualizují synchronně nebo asynchronně.

  • PRYČ

    Určuje, že optimalizátor dotazů neaktualizuje statistiky, když je používá dotaz. Optimalizátor dotazů také neaktualizuje statistiky, když můžou být zastaralé. Nastavením této možnosti na vypnuto může dojít k neoptimálním plánům dotazů a snížení výkonu dotazů.

Stav této možnosti můžete určit prozkoumáním sloupce is_auto_update_stats_on v zobrazení katalogu sys.databases. Stav můžete také určit prozkoumáním IsAutoUpdateStatistics vlastnosti DATABASEPROPERTYEX.

Další informace najdete v části "Použití možností statistiky pro celou databázi" v Statistika.

AUTO_UPDATE_STATISTICS_ASYNC { ON | VYPNUTO }

  • NA

    Určuje, že aktualizace statistik pro možnost AUTO_UPDATE_STATISTICS jsou asynchronní. Optimalizátor dotazů nečeká na dokončení aktualizací statistik, než zkompiluje dotazy.

    Nastavení této možnosti na HODNOTU ON nemá žádný vliv, pokud není AUTO_UPDATE_STATISTICS nastavena na hodnotu ZAPNUTO.

    Ve výchozím nastavení je možnost AUTO_UPDATE_STATISTICS_ASYNC vypnutá a optimalizátor dotazů aktualizuje statistiky synchronně.

  • PRYČ

    Určuje, že aktualizace statistik pro možnost AUTO_UPDATE_STATISTICS jsou synchronní. Optimalizátor dotazů čeká na dokončení aktualizací statistiky, než zkompiluje dotazy.

    Poznámka

    Nastavení této možnosti na vypnuto nemá žádný vliv, pokud není AUTO_UPDATE_STATISTICS nastavena na zapnuto.

Stav této možnosti můžete určit prozkoumáním sloupce is_auto_update_stats_async_on v zobrazení katalogu sys.databases.

Další informace, které popisují, kdy použít synchronní nebo asynchronní statistiky aktualizace, naleznete v části Možnosti statistiky v Statistika.

<automatic_tuning_option> ::=

platí pro: SQL Server (počínaje SQL Serverem 2017 (14.x))

Povolí nebo zakáže FORCE_LAST_GOOD_PLANmožnost automatického ladění. Stav této možnosti můžete zobrazit v zobrazení sys.database_automatic_tuning_options.

FORCE_LAST_GOOD_PLAN = { DEFAULT | ZAPNUTO | VYPNUTO }

  • VÝCHOZÍ

    Výchozí hodnota pro SQL Server je VYPNUTÁ.

  • NA

    Databázový stroj automaticky vynutí poslední známý dobrý plán na Transact-SQL dotazy, kde nový plán dotazů způsobuje regrese výkonu. Databázový stroj nepřetržitě monitoruje výkon dotazů Transact-SQL dotazu s vynuceným plánem.

    Pokud dojde k nárůstu výkonu, databázový stroj bude dál používat poslední známý dobrý plán. Pokud se nezjistí zvýšení výkonu, databázový stroj vytvoří nový plán dotazu. Příkaz selže, pokud úložiště dotazů není povolené nebo pokud úložiště dotazů není v režimu pro čtení i zápis.

  • PRYČ

    Databázový stroj hlásí potenciální regrese výkonu dotazů způsobené změnami plánu dotazů v zobrazení sys.dm_db_tuning_recommendations. Tato doporučení se ale nepoužijí automaticky. Uživatelé můžou monitorovat aktivní doporučení a opravovat zjištěné problémy pomocí Transact-SQL skriptů zobrazených v zobrazení. Výchozí hodnota je VYPNUTÁ.

<change_tracking_option> ::=

platí pro: SQL Server a Azure SQL Database

Řídí možnosti sledování změn. Můžete povolit sledování změn, nastavit možnosti, možnosti změn a zakázat sledování změn. Příklady najdete v části Příklady dále v tomto článku.

  • NA

    Povolí sledování změn pro databázi. Když povolíte sledování změn, můžete také nastavit možnosti AUTOMATICKÉHO VYČIŠTĚNÍ a UCHOVÁVÁNÍ ZMĚN.

  • AUTO_CLEANUP = { ON | VYPNUTO }

    • NA

      Informace o sledování změn se po zadané době uchovávání automaticky odeberou.

    • PRYČ

      Data sledování změn se z databáze automaticky neodeberou.

  • CHANGE_RETENTION = retention_period { DAYS | HODINY | MINUTES }

    Určuje minimální dobu pro uchovávání informací o sledování změn v databázi. Data se odeberou jenom v případech, kdy je hodnota AUTO_CLEANUP zapnutá.

    retention_period je celé číslo, které určuje číselnou součást doby uchovávání.

    Výchozí doba uchovávání je 2 dny. Minimální doba uchovávání je 1 minuta. Výchozí typ uchovávání je DAYS.

  • VYPNUTO Zakáže sledování změn pro databázi. Před zakázání sledování změn v databázi zakažte sledování změn u všech tabulek.

<containment_option> ::=

platí pro: SQL Server (počínaje SQL Serverem 2012 (11.x))

Řídí možnosti zahrnutí databáze.

ZAHRNUTÍ = { NONE | PARTIAL}

  • ŽÁDNÝ

    Databáze není obsažená databáze.

  • ČÁSTEČNÝ

    Databáze je obsažená databáze. Nastavení zahrnutí databáze na částečnou chybu, pokud má databáze povolenou replikaci, zachytávání dat změn nebo sledování změn. Kontrola chyb se zastaví po jednom selhání. Další informace o databázích s omezením naleznete v tématu Databáze s omezením.

<cursor_option> ::=

Řídí možnosti kurzoru.

CURSOR_CLOSE_ON_COMMIT { ON | VYPNUTO }

  • NA

    Všechny kurzory otevřené při potvrzení nebo vrácení transakce se zavře.

  • PRYČ

    Kurzory zůstávají otevřené při potvrzení transakce; vrácení zpět transakce zavře všechny kurzory, s výjimkou těch, které jsou definovány jako INSENSITIVE nebo STATIC.

Nastavení na úrovni připojení, která jsou nastavená pomocí příkazu SET, přepíší výchozí nastavení databáze pro CURSOR_CLOSE_ON_COMMIT. Klienti ODBC a OLE DB vydávají nastavení příkazu SET na úrovni připojení CURSOR_CLOSE_ON_COMMIT pro relaci ve výchozím nastavení vypnuto. Klienti spustí příkaz při připojení k instanci SQL Serveru. Další informace naleznete v tématu SET CURSOR_CLOSE_ON_COMMIT.

Stav této možnosti můžete určit prozkoumáním sloupce is_cursor_close_on_commit_on v zobrazení katalogu sys.databases nebo vlastností IsCloseCursorsOnCommitEnabled funkce DATABASEPROPERTY EX.

CURSOR_DEFAULT { LOCAL | GLOBAL }

platí pro: SQL Server

Určuje, zda obor kurzoru používá MÍSTNÍ nebo GLOBÁLNÍ.

  • MÍSTNÍ

    Když zadáte HODNOTU LOCAL a při vytváření kurzoru nedefinujete kurzor jako GLOBÁLNÍ, bude obor kurzoru místní. Konkrétně je obor místní pro dávku, uloženou proceduru nebo trigger, ve kterém jste vytvořili kurzor. Název kurzoru je platný pouze v rámci tohoto oboru.

    Na kurzor lze odkazovat pomocí místních proměnných kurzoru v dávce, uložené proceduře nebo triggeru nebo parametru OUTPUT uložené procedury. Kurzor je implicitně uvolněn, když dávka, uložená procedura nebo aktivační událost skončí. Kurzor je uvolněn, pokud nebyl předán zpět v parametru OUTPUT. Kurzor může být předán zpět v parametru OUTPUT. Pokud kurzor předá tento způsob zpět, je kurzor uvolněn, když poslední proměnná, která odkazuje na kurzor je uvolněna nebo přejde mimo rozsah.

  • GLOBÁLNÍ

    Pokud je zadaná funkce GLOBAL a kurzor není při vytváření definován jako LOCAL, je obor kurzoru pro připojení globální. Na název kurzoru se dá odkazovat v libovolné uložené proceduře nebo dávce spuštěné připojením.

    Kurzor je implicitně uvolněn pouze při odpojení. Další informace naleznete v tématu DECLARE CURSOR.

Stav této možnosti můžete určit prozkoumáním sloupce is_local_cursor_default v zobrazení katalogu sys.databases. Stav můžete také určit prozkoumáním IsLocalCursorsDefault vlastnosti DATABASEPROPERTYEX.

<temporal_history_retention> ::=

TEMPORAL_HISTORY_RETENTION { ON | VYPNUTO }

Ve výchozím nastavení je zapnuto, ale také automaticky nastaveno na VYPNUTO po operaci obnovení k určitému bodu v čase. Další informace, včetně toho, jak toto nastavení povolit, najdete v tématu Jak nakonfigurovat zásady uchovávání informací.

<data_retention_policy> ::=

platí jenom pro: Azure SQL Edge.

DATA_RETENTION { ON | VYPNUTO }

  • NA

    Umožňuje vyčištění na základě zásad uchovávání dat v databázi.

  • PRYČ

    Zakáže vyčištění na základě zásad uchovávání dat v databázi.

<database_mirroring>

platí pro: SQL Server

Popisy argumentů naleznete v tématu ALTER DATABASE Database Mirroring.

<date_correlation_optimization_option> ::=

platí pro: SQL Server

Řídí možnost date_correlation_optimization.

DATE_CORRELATION_OPTIMIZATION { ON | VYPNUTO }

  • NA

    SQL Server udržuje statistiku korelace, kde omezení CIZÍ KLÍČ propojuje všechny dvě tabulky v databázi a tabulky mají sloupce data a času.

  • PRYČ

    Statistika korelace se neudržuje.

Pokud chcete nastavit DATE_CORRELATION_OPTIMIZATION na HODNOTU ON, nesmí existovat žádná aktivní připojení k databázi s výjimkou připojení, které spouští příkaz ALTER DATABASE. Následně se podporuje více připojení.

Aktuální nastavení této možnosti lze určit prozkoumáním sloupce is_date_correlation_on v zobrazení katalogu sys.databases.

<db_encryption_option> ::=

Řídí stav šifrování databáze.

ŠIFROVÁNÍ { ZAPNUTO | VYPNUTO | SUSPEND | RESUME }

  • NA

    Nastaví databázi, která se má šifrovat.

  • PRYČ

    Nastaví databázi tak, aby nebyla šifrovaná.

  • PŘERUŠIT

    platí pro: SQL Server (počínaje SQL Serverem 2019 (15.x))

    Dá se použít k pozastavení kontroly šifrování po povolení nebo zakázání transparentního šifrování dat nebo po změně šifrovacího klíče.

  • POKRAČOVAT

    platí pro: SQL Server (počínaje SQL Serverem 2019 (15.x))

    Dá se použít k obnovení dříve pozastavené kontroly šifrování.

Další informace o šifrování databáze najdete v tématu transparentního šifrování dat (TDE)a transparentního šifrování dat pro službu Azure SQL Database, azure SQL Managed Instance aAzure Synapse Analytics.

Pokud je šifrování povolené na úrovni databáze, všechny skupiny souborů se šifrují. Všechny nové skupiny souborů dědí zašifrovanou vlastnost. Pokud jsou některé skupiny souborů v databázi nastaveny jen pro čtení, operace šifrování databáze selže.

Stav šifrování databáze a stav kontroly šifrování můžete zobrazit pomocí sys.dm_database_encryption_keys zobrazení dynamické správy.

<db_state_option> ::=

platí pro: SQL Server

Řídí stav databáze.

  • OFFLINE

    Databáze se zavře, čistě vypne a označí se jako offline. Databázi není možné upravovat, pokud je offline.

  • ONLINE

    Databáze je otevřená a dostupná pro použití.

  • NOUZOVÉ

    Databáze je označena jako READ_ONLY, protokolování je zakázané a přístup je omezený na členy pevné role serveru správce systému. TÍSŇOVÉ VOLÁNÍ se primárně používá pro účely řešení potíží. Například databáze označená jako podezřelá kvůli poškozenému souboru protokolu může být nastavena na stav TÍSŇOVÉHO VOLÁNÍ. Toto nastavení může správci systému povolit přístup k databázi jen pro čtení. Databázi na stav TÍSŇOVÉHO VOLÁNÍ můžou nastavit jenom členové pevné role serveru sysadmin.

Vyžaduje oprávnění ALTER DATABASE pro databázi subjektu, změnit databázi do offline stavu nebo stavu tísňového volání a úroveň serveru ALTER ANY DATABASE oprávnění k přesunutí databáze z offline do online režimu.

Stav této možnosti můžete určit prozkoumáním sloupců state a state_desc v zobrazení katalogu sys.databases. Stav můžete také určit prozkoumáním Status vlastnosti DATABASEPROPERTYEX. Další informace naleznete v tématu Stavy databáze.

Databázi označenou jako OBNOVENÍ nejde nastavit na OFFLINE, ONLINE nebo TÍSŇOVÉ VOLÁNÍ. Databáze může být ve stavu OBNOVENÍ během aktivní operace obnovení nebo v případě, že operace obnovení databáze nebo souboru protokolu selže kvůli poškozenému záložnímu souboru.

<db_update_option> ::=

Určuje, jestli jsou v databázi povolené aktualizace.

  • READ_ONLY

    Uživatelé mohou číst data z databáze, ale nemůžou je upravovat.

    Poznámka

    Pokud chcete zvýšit výkon dotazů, aktualizujte statistiky před nastavením databáze na READ_ONLY. Pokud jsou po nastavení READ_ONLY databáze potřeba další statistiky, databázový stroj vytvoří statistiku v systémové databázi tempdb. Další informace o statistikách pro databázi jen pro čtení naleznete v tématu Statistika.

  • READ_WRITE

    Databáze je k dispozici pro operace čtení a zápisu.

Pokud chcete tento stav změnit, musíte mít výhradní přístup k databázi. Další informace najdete v klauzuli SINGLE_USER.

Poznámka

Ve federovaných databázích Azure SQL Database je SET { READ_ONLY | READ_WRITE } zakázaná.

<db_user_access_option> ::=

Řídí uživatelský přístup k databázi.

SINGLE_USER

platí pro: SQL Server

Určuje, že k databázi má přístup pouze jeden uživatel najednou. Pokud zadáte SINGLE_USER a jiný uživatel se připojí k databázi, příkaz ALTER DATABASE se zablokuje, dokud se všichni uživatelé neodpojí od zadané databáze. Pokud chcete toto chování přepsat, přečtěte si klauzuli <ukončení>.

Databáze zůstane v režimu SINGLE_USER i v případě, že se uživatel, který nastavil možnost, odhlásí. V tomto okamžiku se k databázi může připojit jiný uživatel, ale jenom jeden.

Než nastavíte databázi na SINGLE_USER, ověřte, že je možnost AUTO_UPDATE_STATISTICS_ASYNC vypnutá. Pokud je nastavená hodnota ZAPNUTO, vlákno na pozadí použité k aktualizaci statistiky převezme připojení k databázi a v režimu jednoho uživatele nemáte přístup k databázi. Pokud chcete zobrazit stav této možnosti, zadejte dotaz na sloupec is_auto_update_stats_async_on v zobrazení katalogu sys.databases. Pokud je tato možnost nastavená na zapnuto, proveďte následující úlohy:

  1. Nastavte AUTO_UPDATE_STATISTICS_ASYNC na VYPNUTO.

  2. Zkontrolujte aktivní asynchronní statistické úlohy dotazováním sys.dm_exec_background_job_queue zobrazení dynamické správy.

Pokud existují aktivní úlohy, buď povolte dokončení úloh, nebo je ručně ukončete pomocí KILL STATS JOB.

RESTRICTED_USER

Umožňuje připojení k databázi pouze členům db_owner pevné databázové role a dbcreator a sysadmin pevných rolí serveru. RESTRICTED_USER neomezuje jejich počet. Odpojte všechna připojení k databázi pomocí časového rámce určeného klauzulí ukončení příkazu ALTER DATABASE. Po přechodu databáze do stavu RESTRICTED_USER budou pokusy o připojení nekvalifikovaných uživatelů odmítnuty.

MULTI_USER

Všichni uživatelé, kteří mají příslušná oprávnění pro připojení k databázi, jsou povoleni. Stav této možnosti můžete určit prozkoumáním sloupce user_access v zobrazení katalogu sys.databases. Stav můžete také určit prozkoumáním UserAccess vlastnosti DATABASEPROPERTYEX.

<delayed_durability_option> ::=

platí pro: SQL Server (počínaje SQL Serverem 2014 (12.x))

Určuje, zda transakce potvrdí plně trvalé nebo zpožděné trvalé.

  • INVALIDNÍ

    Všechny transakce následující SET DISABLED jsou plně odolné. Všechny možnosti odolnosti nastavené v atomovém bloku nebo příkazu commit jsou ignorovány.

  • POVOLENÝ

    Všechny transakce následující SET ALLOWED jsou buď plně odolné nebo zpožděné, v závislosti na možnosti stálosti nastavené v atomovém bloku nebo příkazu commit.

  • VYNUCENÝ

    Všechny transakce následující SET FORCED jsou zpožděné trvalé. Všechny možnosti odolnosti nastavené v atomovém bloku nebo příkazu commit jsou ignorovány.

<external_access_option> ::=

platí pro: SQL Server

Určuje, zda je databáze přístupná externími prostředky, jako jsou například objekty z jiné databáze.

DB_CHAINING { ON | VYPNUTO }

  • NA

    Databáze může být zdrojem nebo cílem řetězu vlastnictví mezi databázemi.

  • PRYČ

    Databáze se nemůže účastnit řetězení vlastnictví mezi databázemi.

Důležitý

Instance SQL Serveru toto nastavení rozpozná, pokud je možnost řetězení vlastnictví mezi databázemi 0 (VYPNUTO). Pokud je řetězení vlastnictví mezi databázemi 1 (ZAPNUTO), můžou se všechny uživatelské databáze účastnit řetězů vlastnictví napříč databázemi bez ohledu na hodnotu této možnosti. Tato možnost je nastavena pomocí sp_configure.

Pokud chcete tuto možnost nastavit, vyžaduje CONTROL SERVER oprávnění k databázi.

Možnost DB_CHAINING nelze nastavit v systémových databázích master, modela tempdb.

Stav této možnosti můžete určit prozkoumáním sloupce is_db_chaining_on v zobrazení katalogu sys.databases.

DŮVĚRYHODNÉ { ON | VYPNUTO }

  • NA

    Databázové moduly (například uživatelem definované funkce nebo uložené procedury), které používají kontext zosobnění, mají přístup k prostředkům mimo databázi.

  • PRYČ

    Databázové moduly v kontextu zosobnění nemají přístup k prostředkům mimo databázi.

    FUNKCE TRUSTWORTHY je při připojení databáze nastavena na hodnotu VYPNUTO.

Ve výchozím nastavení mají všechny systémové databáze s výjimkou databáze msdb nastavenou hodnotu TRUSTWORTHY vypnuto. Hodnotu nelze změnit pro databáze model a tempdb. Pro databázi master doporučujeme nikdy nastavit možnost TRUSTWORTHY na HODNOTU ON.

Pokud chcete tuto možnost nastavit, vyžaduje CONTROL SERVER oprávnění k databázi.

Stav této možnosti můžete určit prozkoumáním sloupce is_trustworthy_on v zobrazení katalogu sys.databases.

DEFAULT_FULLTEXT_LANGUAGE

platí pro: SQL Server (počínaje SQL Serverem 2012 (11.x))

Určuje výchozí hodnotu jazyka pro fulltextové indexované sloupce.

Důležitý

Tato možnost je povolená pouze v případě, že je funkce CONTAINMENT nastavená na ČÁSTEČNOU. Pokud je funkce CONTAINMENT nastavená na HODNOTU NONE, dojde k chybám.

DEFAULT_LANGUAGE

platí pro: SQL Server (počínaje SQL Serverem 2012 (11.x))

Určuje výchozí jazyk pro všechna nově vytvořená přihlášení. Jazyk lze zadat zadáním místního ID (lcid), názvu jazyka nebo aliasu jazyka. Seznam přijatelných názvů jazyků a aliasů naleznete v tématu sys.syslanguages. Tato možnost je povolená pouze v případě, že je funkce CONTAINMENT nastavená na ČÁSTEČNOU. Pokud je funkce CONTAINMENT nastavená na HODNOTU NONE, dojde k chybám.

NESTED_TRIGGERS

platí pro: SQL Server (počínaje SQL Serverem 2012 (11.x))

Určuje, zda aktivační událost AFTER může kaskádovat; to znamená, že proveďte akci, která inicializuje jinou aktivační událost, která inicializuje jinou aktivační událost atd. Tato možnost je povolená pouze v případě, že je funkce CONTAINMENT nastavená na ČÁSTEČNOU. Pokud je funkce CONTAINMENT nastavená na HODNOTU NONE, dojde k chybám.

TRANSFORM_NOISE_WORDS

platí pro: SQL Server (počínaje SQL Serverem 2012 (11.x))

Používá se k potlačení chybové zprávy, pokud se slova šumu nebo stopwords, způsobí selhání logické operace v fulltextovém dotazu. Tato možnost je povolená pouze v případě, že je funkce CONTAINMENT nastavená na ČÁSTEČNOU. Pokud je funkce CONTAINMENT nastavená na HODNOTU NONE, dojde k chybám.

TWO_DIGIT_YEAR_CUTOFF

platí pro: SQL Server (počínaje SQL Serverem 2012 (11.x))

Určuje celé číslo od 1753 do 9999, které představuje rok pro odříznutí pro interpretaci dvouciferných roků jako čtyřmístných roků. Tato možnost je povolená pouze v případě, že je funkce CONTAINMENT nastavená na ČÁSTEČNOU. Pokud je funkce CONTAINMENT nastavená na HODNOTU NONE, dojde k chybám.

<FILESTREAM_option> ::=

platí pro: SQL Server (počínaje SQL Serverem 2012 (11.x))

Řídí nastavení pro FileTables.

NON_TRANSACTED_ACCESS = { OFF | READ_ONLY | FULL }

  • PRYČ

    Neaktuální přístup k datům FileTable je zakázaný.

  • READ_ONLY

    Data FILESTREAM v FileTables v této databázi lze číst neaktuálními procesy.

  • PLNÝ

    Umožňuje úplný, neaktuální přístup k datům FILESTREAM v FileTables je povolený.

DIRECTORY_NAME = <directory_name>

Název adresáře kompatibilního s Windows. Tento název by měl být jedinečný mezi všemi názvy adresářů na úrovni databáze v instanci SQL Serveru. Porovnání jedinečnosti nerozlišuje malá a velká písmena bez ohledu na nastavení kolace. Tato možnost musí být nastavená před vytvořením tabulky FileTable v této databázi.

<HADR_options> ::=

platí pro: SQL Server

Viz ALTER DATABASE SET HADR.

<mixed_page_allocation_option> ::=

platí pro: SQL Server (počínaje SQL Serverem 2016 (13.x))

Určuje, zda databáze může vytvořit počáteční stránky v smíšeném rozsahu pro prvních osm stránek tabulky nebo indexu.

MIXED_PAGE_ALLOCATION { VYPNUTO | ON }

  • PRYČ

    Databáze vždy vytváří počáteční stránky pomocí jednotných rozsahů. Vypnuto je výchozí hodnota.

  • NA

    Databáze může vytvářet počáteční stránky pomocí smíšených rozsahů.

Toto nastavení je zapnuté pro všechny systémové databáze. Systémová databáze tempdb je jediná systémová databáze, která podporuje funkci VYPNUTO.

<PARAMETERIZATION_option> ::=

Řídí možnost parametrizace. Další informace o parametrizaci naleznete v Průvodce architekturou zpracování dotazů.

PARAMETRIZACE { SIMPLE | FORCED }

  • JEDNODUCHÝ

    Dotazy jsou parametrizovány na základě výchozího chování databáze.

  • VYNUCENÝ

    SQL Server parametrizuje všechny dotazy v databázi.

Aktuální nastavení této možnosti lze určit prozkoumáním sloupce is_parameterization_forced v zobrazení katalogu sys.databases.

<query_store_options> ::=

platí pro: SQL Server (počínaje SQL Serverem 2016 (13.x))

ZAPNUTO | OFF [ ( VYNUCENO ) ] | CLEAR [ ALL ]

Určuje, jestli je v této databázi povolené úložiště dotazů, a také určuje odebrání obsahu úložiště dotazů. Další informace najdete v tématu Scénáře použití úložiště dotazů.

  • NA

    Povolí úložiště dotazů.

    Mnoho nových funkcí výkonu SQL Serveru 2022 (16.x), jako jsou rady úložiště dotazů, zpětná vazba CE, stupeň paralelismu (DOP) a trvalost zpětné vazby pro udělení paměti (MGF) vyžaduje povolení úložiště dotazů. Pro databáze, které byly obnoveny z jiných instancí SQL Serveru a pro databáze upgradované z místního upgradu na SQL Server 2022 (16.x), tyto databáze zachovávají předchozí nastavení úložiště dotazů. Pokud je problém s režijním úložištěm dotazů, můžou správci využít vlastní zásady zachycení s QUERY_CAPTURE_MODE = CUSTOM. Příklady povolení úložiště dotazů s vlastními možnostmi zásad zachycení najdete v části Příklady dále v tomto článku.

  • OFF [ ( VYNUCENO ) ]

    Zakáže úložiště dotazů. FUNKCE FORCED je volitelná. VYNUCENě přeruší všechny spuštěné úlohy na pozadí úložiště dotazů a při vypnutí úložiště dotazů přeskočí synchronní vyprázdnění. Způsobí, že úložiště dotazů se co nejrychleji vypne. FORCED platí pro SQL Server 2016 (13.x) SP2 CU14, SQL Server 2017 (14.x) CU21, SQL Server 2019 (15.x) CU6 a novější buildy.

    Poznámka

    Úložiště dotazů nelze ve službě Azure SQL Database zakázat. Provádění ALTER DATABASE [database] SET QUERY_STORE = OFF vrátí upozornění 'QUERY_STORE=OFF' is not supported in this version of SQL Server..

  • CLEAR [ ALL ]

    Odebere data související s dotazy z úložiště dotazů. All je volitelné. Funkce ALL odebere data a metadata související s dotazy z úložiště dotazů.

OPERATION_MODE { READ_ONLY | READ_WRITE }

Popisuje režim operace úložiště dotazů.

READ_WRITE

Úložiště dotazů shromažďuje a uchovává informace o plánech dotazů a statistikách spouštění modulu runtime.

READ_ONLY

Informace se dají číst z úložiště dotazů, ale nepřidají se nové informace. Pokud došlo k vyčerpání maximálního vystaveného místa úložiště dotazů, změní úložiště dotazů režim operace na READ_ONLY.

CLEANUP_POLICY

Popisuje zásady uchovávání dat úložiště dotazů. STALE_QUERY_THRESHOLD_DAYS určuje počet dnů, po které se informace pro dotaz uchovávají v úložišti dotazů. STALE_QUERY_THRESHOLD_DAYS je typ bigint. Výchozí hodnota je 30.

DATA_FLUSH_INTERVAL_SECONDS

Určuje frekvenci, s jakou se data zapsaná do úložiště dotazů zachovají na disk. Kvůli optimalizaci výkonu se data shromážděná úložištěm dotazů asynchronně zapisují na disk. Frekvence, s jakou k tomuto asynchronnímu přenosu dochází, je nakonfigurována pomocí argumentu DATA_FLUSH_INTERVAL_SECONDS. DATA_FLUSH_INTERVAL_SECONDS je typ bigint. Výchozí hodnota je 900 (15 min).

MAX_STORAGE_SIZE_MB

Určuje prostor vystavený úložišti dotazů. MAX_STORAGE_SIZE_MB je typ bigint. Výchozí hodnota je 100 MB pro SQL Server (SQL Server 2016 (13.x) až SQL Server 2017 (14.x)). Počínaje SQL Serverem 2019 (15.x) je výchozí hodnota 1000 MB.

MAX_STORAGE_SIZE_MB limit není striktně vynucený. Velikost úložiště se kontroluje jenom v případech, kdy úložiště dotazů zapisuje data na disk. Tento interval je nastaven možností DATA_FLUSH_INTERVAL_SECONDS nebo možností dialogového okna Úložiště dotazů v sadě Management Studio Interval vyprázdnění dat. Výchozí hodnota intervalu je 900 sekund (nebo 15 minut).

Pokud úložiště dotazů porušilo limit MAX_STORAGE_SIZE_MB mezi kontrolami velikosti úložiště, přejde do režimu jen pro čtení. Pokud je povolená SIZE_BASED_CLEANUP_MODE, aktivuje se také mechanismus čištění, který vynucuje limit MAX_STORAGE_SIZE_MB.

Jakmile se vymaže dostatek místa, režim úložiště dotazů se automaticky přepne zpět na čtení i zápis.

Důležitý

Pokud si myslíte, že zachytávání úloh vyžaduje více než 10 GB místa na disku, měli byste pravděpodobně znovu zvážit a optimalizovat úlohy tak, aby opakovaně používaly plány dotazů (například pomocí vynucené parametrizacenebo upravte konfigurace úložiště dotazů. Počínaje SQL Serverem 2019 (15.x) a v Azure SQL Database můžete nastavit QUERY_CAPTURE_MODE na VLASTNÍ, abyste získali další kontrolu nad zásadami zachytávání dotazů.

INTERVAL_LENGTH_MINUTES

Určuje časový interval, ve kterém se data statistik spouštění modulu runtime agregují do úložiště dotazů. Pro optimalizaci využití místa se statistiky spouštění modulu runtime v úložišti statistik modulu runtime agregují v rámci pevného časového intervalu. Toto pevné časové okno je nakonfigurováno pomocí argumentu INTERVAL_LENGTH_MINUTES. INTERVAL_LENGTH_MINUTES je typ bigint. Výchozí hodnota je 60.

SIZE_BASED_CLEANUP_MODE { AUTO | VYPNUTO }

Určuje, jestli se čištění automaticky aktivuje, když se celkové množství dat blíží maximální velikosti.

  • AUTO

    Čištění na základě velikosti se automaticky aktivuje, když velikost na disku dosáhne 90% MAX_STORAGE_SIZE_MB. Čištění na základě velikosti nejprve odebere nejméně nákladné a nejstarší dotazy. Zastaví se přibližně na 80% MAX_STORAGE_SIZE_MB. Tato hodnota je výchozí konfigurační hodnotou.

  • PRYČ

    Čištění na základě velikosti se neaktivuje automaticky.

SIZE_BASED_CLEANUP_MODE je typ nvarchar.

QUERY_CAPTURE_MODE { ALL | AUTO | VLASTNÍ | NONE }

Určuje aktuálně aktivní režim zachytávání dotazů. Každý režim definuje konkrétní zásady zachytávání dotazů. QUERY_CAPTURE_MODE je typ nvarchar.

Poznámka

Kurzory, dotazy uvnitř uložených procedur a nativně kompilované dotazy se vždy zaznamenávají, když je režim zachytávání dotazů nastavený na ALL, AUTO nebo CUSTOM.

  • VŠICHNI

    Zachytává všechny dotazy. ALL je výchozí hodnota konfigurace PRO SQL Server (SQL Server 2016 (13.x) až SQL Server 2017 (14.x)).

  • AUTO

    Zachyťte relevantní dotazy na základě počtu spuštění a spotřeby prostředků. Toto je výchozí hodnota konfigurace PRO SQL Server (počínaje SQL Serverem 2019 (15.x)) a službou Azure SQL Database.

  • ŽÁDNÝ

    Zastavte zachytávání nových dotazů. Úložiště dotazů nadále shromažďuje statistiky kompilace a modulu runtime pro dotazy, které už byly zachyceny. Tuto konfiguraci používejte s opatrností, protože byste mohli vynechat zachytávání důležitých dotazů.

  • ZVYK

    platí pro: SQL Server (počínaje SQL Serverem 2019 (15.x))

    Umožňuje kontrolu nad možnostmi QUERY_CAPTURE_POLICY. Vlastní zásady zachytávání vám můžou pomoct zachytit nejdůležitější dotazy ve vaší úloze. V <query_capture_policy_option_list> najdete přizpůsobitelné možnosti.

MAX_PLANS_PER_QUERY

Definuje maximální počet plánů udržovaných pro každý dotaz. MAX_PLANS_PER_QUERY je typ int. Výchozí hodnota je 200.

WAIT_STATS_CAPTURE_MODE { ON | VYPNUTO }

platí pro: SQL Server (počínaje SQL Serverem 2017 (14.x))

Určuje, jestli se zachytávají statistiky čekání na dotaz.

  • NA

    Zachytí se informace o statistikách čekání na dotaz. Tato hodnota je výchozí konfigurační hodnotou.

  • PRYČ

    Informace o statistikách čekání na dotaz se nezaznamenají.

<query_capture_policy_option_list> :: =

platí pro: SQL Server (počínaje SQL Serverem 2019 (15.x))

Řídí možnosti zásad úložiště dotazů zachycení. S výjimkou STALE_CAPTURE_POLICY_THRESHOLD tyto možnosti definují podmínky OR, ke kterým musí dojít, aby dotazy byly zachyceny v definované prahové hodnotě zásad zachytávání zastaralých.

Počínaje SQL Serverem 2019 (15.x) nastavení QUERY_CAPTURE_MODE = AUTO zaznamenává podrobnosti úložiště dotazů, když dojde k dosažení některé z následujících prahových hodnot:

  • EXECUTION_COUNT = 30 spuštění = počet spuštění
  • TOTAL_COMPILE_CPU_TIME_MS = 1 sekunda = čas kompilace v milisekundách
  • TOTAL_EXECUTION_CPU_TIME_MS = 100 ms = doba spouštění procesoru v milisekundách

Například:

EXECUTION_COUNT = 30,
TOTAL_COMPILE_CPU_TIME_MS = 1000,
TOTAL_EXECUTION_CPU_TIME_MS = 100

Tyto možnosti můžete přizpůsobit pomocí QUERY_CAPTURE_MODE = CUSTOM:

  • STALE_CAPTURE_POLICY_THRESHOLD = celé číslo { DAYS | HODINY }

    Definuje období intervalu vyhodnocení, které určuje, jestli se má dotaz zachytit. Výchozí hodnota je 1 den a dá se nastavit od 1 hodiny do sedmi dnů.

  • EXECUTION_COUNT = celočíselná

    Definuje, kolikrát se dotaz provádí během období vyhodnocení. Výchozí hodnota je 30, což znamená, že pro výchozí prahovou hodnotu zastaralých zásad zachytávání musí dotaz provést nejméně 30krát za jeden den, aby se zachoval v úložišti dotazů. EXECUTION_COUNT je typ int.

  • TOTAL_COMPILE_CPU_TIME_MS = celočíselná

    Definuje celkovou uplynulou dobu kompilace procesoru používanou dotazem během období vyhodnocení. Výchozí hodnota je 1000, což znamená, že pro výchozí prahovou hodnotu zastaralých zásad zachytávání musí mít dotaz celkem alespoň jednu sekundu času stráveného během kompilace dotazu v jednom dni, aby se zachoval v úložišti dotazů. TOTAL_COMPILE_CPU_TIME_MS je typ int.

  • TOTAL_EXECUTION_CPU_TIME_MS = celočíselná

    Definuje celkovou uplynulou dobu výkonu procesoru používanou dotazem během období vyhodnocení. Výchozí hodnota je 100, což znamená, že pro výchozí prahovou hodnotu zastaralé zásady zachytávání musí mít dotaz celkem alespoň 100 ms času stráveného během provádění v jednom dni, aby se zachoval v úložišti dotazů. TOTAL_EXECUTION_CPU_TIME_MS je typ int.

<recovery_option> ::=

platí pro: SQL Server

Řídí možnosti obnovení databáze a kontrolu vstupně-výstupních chyb disku.

  • PLNÝ

    Poskytuje úplné obnovení po selhání média pomocí záloh transakčních protokolů. Pokud je datový soubor poškozen, obnovení médií může obnovit všechny potvrzené transakce. Další informace naleznete v tématu modely obnovení.

  • BULK_LOGGED

    Poskytuje obnovení po selhání média. Kombinuje nejlepší výkon a minimální využití prostoru protokolu pro určité rozsáhlé nebo hromadné operace. Informace o tom, jaké operace lze minimální protokolovat, naleznete v tématu Transakční protokol. V rámci modelu obnovení BULK_LOGGED je protokolování pro tyto operace minimální. Další informace naleznete v tématu modely obnovení.

  • JEDNODUCHÝ

    K dispozici je jednoduchá strategie zálohování, která používá minimální prostor protokolu. Prostor protokolu se dá automaticky znovu použít, pokud už není nutný pro obnovení serveru. Další informace naleznete v tématu modely obnovení.

    Důležitý

    Jednoduchý model obnovení je jednodušší spravovat než ostatní dva modely, ale na úkor větší ztráty dat expozice v případě poškození datového souboru. Všechny změny od poslední databáze nebo rozdílového zálohování databáze se ztratí a je nutné je znovu zadat ručně.

Výchozí model obnovení je určen modelem obnovení systémové databáze model. Další informace o výběru vhodného modelu obnovení naleznete v tématu Modely obnovení.

Stav této možnosti můžete určit prozkoumáním sloupců recovery_model a recovery_model_desc v zobrazení katalogu sys.databases. Stav můžete také určit prozkoumáním Recovery vlastnosti DATABASEPROPERTYEX.

TORN_PAGE_DETECTION { ON | VYPNUTO }

  • NA

    Databázový stroj může zjistit neúplné stránky.

  • PRYČ

    Databázový stroj nedetekuje neúplné stránky.

Důležitý

Struktura syntaxe TORN_PAGE_DETECTION ON | Funkce OFF bude odebrána v budoucí verzi SQL Serveru. Vyhněte se použití této struktury syntaxe v nové vývojové práci a naplánujte úpravu aplikací, které aktuálně používají strukturu syntaxe. Místo toho použijte možnost PAGE_VERIFY.

PAGE_VERIFY { CHECKSUM | TORN_PAGE_DETECTION | NONE }

Zjišťuje poškozené databázové stránky způsobené chybami vstupně-výstupní cesty disku. Chyby vstupně-výstupní cesty disku můžou být příčinou problémů s poškozením databáze. Tyto chyby jsou nejčastěji způsobeny selháním napájení nebo selháním hardwaru disku, ke kterým dochází v době zápisu stránky na disk.

  • KONTROLNÍ SOUČET

    Vypočítá kontrolní součet nad obsahem celé stránky a uloží hodnotu v záhlaví stránky při zápisu stránky na disk. Při čtení stránky z disku se kontrolní součet přepočítá a porovná s hodnotou kontrolního součtu uloženou v záhlaví stránky. Pokud se hodnoty neshodovaly, zobrazí se chybová zpráva 824 (označující selhání kontrolního součtu) do protokolu chyb SQL Serveru i do protokolu událostí systému Windows. Selhání kontrolního součtu značí problém s vstupně-výstupní cestou. K určení původní příčiny je potřeba prozkoumat hardware, ovladače firmwaru, BIOS, ovladače filtru (například antivirový software) a další součásti vstupně-výstupní cesty.

  • TORN_PAGE_DETECTION

    Uloží určitý 2bitový vzor pro každý 512bajtový sektor na stránce databáze 8 kilobajtů (KB) a uloží do záhlaví stránky databáze při zápisu stránky na disk. Při čtení stránky z disku se bity roztrhané v záhlaví stránky porovnávají se skutečnými informacemi o sektorech stránek.

    Chybějící hodnoty označují, že se na disk zapisovala jenom část stránky. V takovém případě je chybová zpráva 824 (označující chybu stránky roztrhané stránky) hlášena do protokolu chyb SQL Serveru i do protokolu událostí Systému Windows. Stránky s roztrženými soubory se obvykle detekují obnovením databáze, pokud se jedná o skutečně neúplný zápis stránky. Jiné selhání vstupně-výstupní cesty ale můžou kdykoli způsobit roztrženou stránku.

  • ŽÁDNÝ

    Zápisy na stránku databáze nevygenerují hodnotu CHECKSUM ani TORN_PAGE_DETECTION. SQL Server během čtení neověřuje kontrolní součet ani stránku s roztrženou stránkou, a to ani v případě, že je v záhlaví stránky hodnota CHECKSUM nebo TORN_PAGE_DETECTION.

Při použití možnosti PAGE_VERIFY zvažte následující důležité body:

  • Výchozí hodnota je CHECKSUM.

  • Při upgradu uživatelské nebo systémové databáze na SQL Server 2005 (9.x) nebo novější verze se hodnota PAGE_VERIFY (NONE nebo TORN_PAGE_DETECTION) nezmění. Doporučujeme změnit kontrolní součet.

    Poznámka

    V dřívějších verzích SQL Serveru je možnost PAGE_VERIFY databáze nastavená na NONE pro tempdb databázi a nelze ji upravit. Počínaje sql Serverem 2008 (10.0.x) je výchozí hodnota pro databázi tempdb CHECKSUM pro nové instalace SQL Serveru. Při upgradu instalačního SQL Serveru zůstane výchozí hodnota NONE. Možnost lze upravit. Doporučujeme použít funkci CHECKSUM pro tempdb databázi.

  • TORN_PAGE_DETECTION může používat méně prostředků, ale poskytuje minimální podmnožinu ochrany CHECKSUM.

  • PAGE_VERIFY lze nastavit bez přecházení databáze do offline režimu, uzamčení databáze nebo jiného zajištění souběžnosti databáze.

  • FUNKCE CHECKSUM se vzájemně vylučují TORN_PAGE_DETECTION. Obě možnosti nejde povolit současně.

Když se zjistí selhání stránky nebo kontrolního součtu, můžete obnovit obnovením dat nebo potenciálním opětovným sestavením indexu, pokud je selhání omezeno pouze na stránky indexu. Pokud dojde k selhání kontrolního součtu, abyste zjistili typ ovlivněné stránky databáze nebo stránek, spusťte DBCC CHECKDB. Další informace o možnostech obnovení naleznete v tématu argumenty RESTORE. I když obnovení dat vyřeší problém s poškozením dat, měla by být co nejdříve diagnostikována a opravena původní příčina (například selhání hardwaru disku), aby se zabránilo pokračování chyb.

SQL Server opakuje všechny chyby čtení, které selže s kontrolním součtem, stránkou roztrhané nebo jinou vstupně-výstupní chybou čtyřikrát. Pokud je čtení úspěšné v některém z pokusů o opakování, zpráva se zapíše do protokolu chyb. Příkaz, který aktivoval čtení, pokračuje. Příkaz selže s chybovou zprávou 824, pokud pokusy o opakování selžou.

Další informace o chybových zprávách 823, 824 a 825 najdete v tématech:

Aktuální nastavení této možnosti lze určit prozkoumáním sloupce page_verify_option v zobrazení sys.databases katalogu nebo vlastností IsTornPageDetectionEnabledDATABASEPROPERTYEX funkce.

<remote_data_archive_option> ::=

platí pro: SQL Server (počínaje SQL Serverem 2016 (13.x))

Povolí nebo zakáže funkci Stretch Database pro databázi. Další informace najdete v tématu Stretch Database.

Důležitý

Funkce Stretch Database je v SQL Serveru 2022 (16.x) a Azure SQL Database zastaralá. Tato funkce bude odebrána v budoucí verzi databázového stroje. Nepoužívejte tuto funkci v nové vývojové práci a naplánujte úpravu aplikací, které tuto funkci aktuálně používají.

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

  • NA

    Povolí funkci Stretch Database pro databázi. Další informace, včetně dalších požadavků, najdete v tématu Povolení funkce Stretch Database pro databázi.

    K povolení funkce Stretch Database pro tabulku vyžaduje db_owner oprávnění. Vyžaduje oprávnění db_owner a CONTROL DATABASE k povolení funkce Stretch Database pro databázi.

    • SERVER = <server_name>

      Určuje adresu serveru Azure. Zahrňte .database.windows.net část názvu. Například MyStretchDatabaseServer.database.windows.net.

    • CREDENTIAL = <db_scoped_credential_name>

      Určuje přihlašovací údaje v oboru databáze, které instance SQL Serveru používá pro připojení k serveru Azure. Před spuštěním tohoto příkazu se ujistěte, že přihlašovací údaje existují. Další informace naleznete v tématu CREATE DATABASE SCOPED CREDENTIAL.

    • FEDERATED_SERVICE_ACCOUNT = { ON | VYPNUTO }

      Účet federované služby můžete pro místní SQL Server použít ke komunikaci se vzdáleným serverem Azure, pokud jsou splněné následující podmínky.

      • Účet služby, pod kterým je spuštěná instance SQL Serveru, je účet domény.
      • Účet domény patří do domény, jejíž služba Active Directory je federovaná s ID Microsoft Entra.
      • Vzdálený server Azure je nakonfigurovaný tak, aby podporoval ověřování Microsoft Entra.
      • Účet služby, pod kterým je spuštěná instance SQL Serveru, musí být nakonfigurovaný jako účet dbmanager nebo sysadmin na vzdáleném serveru Azure.

      Pokud zadáte, že účet federované služby je zapnutý, nemůžete také zadat argument CREDENTIAL. Pokud zadáte HODNOTU OFF, zadejte argument CREDENTIAL.

  • PRYČ

    Zakáže funkci Stretch Database pro databázi. Další informace najdete v tématu Zakázání funkce Stretch Database a vrácení vzdálených dat.

    Funkci Stretch Database můžete zakázat pouze po tom, co databáze již neobsahuje žádné tabulky, které jsou povoleny pro funkci Stretch Database. Po zakázání funkce Stretch Database se migrace dat zastaví. Výsledky dotazu už také neobsahují výsledky ze vzdálených tabulek.

    Zakázání funkce Stretch Database neodebere vzdálenou databázi. Pokud chcete vzdálenou databázi odstranit, odstraňte ji pomocí webu Azure Portal.

PERSISTENT_LOG_BUFFER

platí pro: SQL Server 2017 (14.x) a novější.

Pokud je tato možnost zadaná, vyrovnávací paměť transakčního protokolu se vytvoří na svazku umístěném na diskovém zařízení zálohovaného pamětí třídy úložiště (NVDIMM-N nevolatilním úložištěm), označované také jako trvalá vyrovnávací paměť protokolu. Další informace naleznete v tématu Akcelerace latence potvrzení transakce pomocí paměti třídy úložiště a Přidat trvalou vyrovnávací paměť protokolu do databáze.

<service_broker_option> ::=

platí pro: SQL Server

Řídí následující možnosti služby Service Broker: povolí nebo zakáže doručování zpráv, nastaví nový identifikátor služby Service Broker nebo nastaví priority konverzací na ZAPNUTO nebo VYPNUTO.

ENABLE_BROKER

Určuje, že je pro zadanou databázi povolená služba Service Broker. Je spuštěno doručování zpráv a příznak is_broker_enabled je v zobrazení katalogu sys.database s nastaven na hodnotu true. Databáze uchovává existující identifikátor služby Service Broker. Službu Service Broker není možné povolit, pokud je databáze instančním objektem v konfiguraci zrcadlení databáze.

Poznámka

ENABLE_BROKER vyžaduje výhradní zámek databáze. Pokud ostatní relace mají v databázi uzamčené prostředky, ENABLE_BROKER počká, až ostatní relace uvolní jejich zámky. Pokud chcete povolit službu Service Broker v uživatelské databázi, před spuštěním příkazu ALTER DATABASE SET ENABLE_BROKER se ujistěte, že databáze nepoužívá žádné jiné relace, například vložením databáze do režimu jednoho uživatele. Chcete-li povolit službu Service Broker v databázi msdb, nejprve zastavte agenta SQL Serveru, aby služba Service Broker mohla získat potřebný zámek.

DISABLE_BROKER

Určuje, že služba Service Broker je pro zadanou databázi zakázaná. Doručení zprávy je zastaveno a příznak is_broker_enabled je nastaven na false v zobrazení katalogu sys.databases. Databáze uchovává existující identifikátor služby Service Broker.

NEW_BROKER

Určuje, že databáze by měla obdržet nový identifikátor zprostředkovatele. Databáze funguje jako nový zprostředkovatel služeb. Všechny existující konverzace v databázi se proto okamžitě odeberou, aniž by se vytvářely koncové dialogové zprávy. Všechny trasy, které odkazují na starý identifikátor služby Service Broker, musí být znovu vytvořeny s novým identifikátorem.

ERROR_BROKER_CONVERSATIONS

Určuje, že je povolené doručování zpráv služby Service Broker. Toto nastavení zachovává existující identifikátor služby Service Broker pro databázi. Service Broker ukončí všechny konverzace v databázi chybou. Toto nastavení umožňuje aplikacím spouštět pravidelné čištění stávajících konverzací.

HONOR_BROKER_PRIORITY { ON | VYPNUTO }

  • NA

    Operace odesílání berou v úvahu úrovně priority, které jsou přiřazeny ke konverzacím. Zprávy z konverzací s vysokou prioritou se odesílají před zprávami z konverzací, které mají přiřazené úrovně s nízkou prioritou.

  • PRYČ

    Operace odesílání se spouštějí, jako by všechny konverzace měly výchozí úroveň priority.

Změny možnosti HONOR_BROKER_PRIORITY se projeví okamžitě u nových dialogových oken nebo dialogových oken, které nemají žádné zprávy čekající na odeslání. Dialogy se zprávami, které se mají odeslat při spuštění příkazu ALTER DATABASE, nezabíjejí nové nastavení, dokud se neodesílají některé zprávy dialogového okna. Doba, po kterou můžou všechna dialogová okna začít používat nové nastavení, se může výrazně lišit.

Aktuální nastavení této vlastnosti je hlášeno ve sloupci is_broker_priority_honored v zobrazení katalogu sys.databases.

<snapshot_option> ::=

Vypočítá úroveň izolace transakce.

ALLOW_SNAPSHOT_ISOLATION { ON | VYPNUTO }

  • NA

    Povolí možnost Snímek na úrovni databáze. Když je povolená, příkazy DML začnou generovat verze řádků, i když žádná transakce nepoužívá izolaci snímků. Po povolení této možnosti mohou transakce zadat úroveň izolace transakce SNAPSHOT. Když transakce běží na úrovni izolace SNAPSHOT, všechny příkazy uvidí snímek dat, protože existuje na začátku transakce. Pokud transakce spuštěná na úrovni izolace SNAPSHOT přistupuje k datům ve více databázích, musí být buď ALLOW_SNAPSHOT_ISOLATION nastavena na ON ve všech databázích, nebo každý příkaz v transakci musí používat zamykání nápovědy pro všechny odkazy v klauzuli FROM na tabulku v databázi, kde ALLOW_SNAPSHOT_ISOLATION je vypnutá.

  • PRYČ

    Vypne možnost Snímek na úrovni databáze. Transakce nemohou určit úroveň izolace transakce SNAPSHOT.

Když nastavíte ALLOW_SNAPSHOT_ISOLATION na nový stav (od ZAPNUTO do VYPNUTO nebo VYPNUTO na ZAPNUTO), funkce ALTER DATABASE nevrátí řízení volajícímu, dokud nebudou potvrzeny všechny existující transakce v databázi. Pokud je databáze již ve stavu zadaném v příkazu ALTER DATABASE, vrátí se ovládací prvek volajícímu okamžitě. Pokud příkaz ALTER DATABASE nevrací rychle, použijte sys.dm_tran_active_snapshot_database_transactions k určení, zda existují dlouhotrvající transakce. Pokud je příkaz ALTER DATABASE zrušen, databáze zůstane ve stavu, ve který byla spuštěna funkce ALTER DATABASE. Zobrazení katalogu sys.databases označuje stav transakcí izolace snímků v databázi. Pokud snapshot_isolation_state_desc = IN_TRANSITION_TO_ON, příkaz ALTER DATABASE ... ALLOW_SNAPSHOT_ISOLATION OFF pozastaví šest sekund a opakuje operaci.

Pokud je databáze offline, nemůžete změnit stav ALLOW_SNAPSHOT_ISOLATION.

Pokud nastavíte ALLOW_SNAPSHOT_ISOLATION v databázi READ_ONLY, nastavení se zachová, pokud je databáze později nastavená na READ_WRITE.

Můžete změnit nastavení ALLOW_SNAPSHOT_ISOLATION pro databáze master, model, msdba tempdb. Nastavení se uchovává při každém zastavení instance databázového stroje a restartování, pokud změníte nastavení pro tempdb. Pokud změníte nastavení pro model, toto nastavení se stane výchozím nastavením pro všechny nově vytvořené databáze s výjimkou tempdb.

Možnost je ve výchozím nastavení zapnutá pro databáze master a msdb.

Aktuální nastavení této možnosti lze určit prozkoumáním sloupce snapshot_isolation_state v zobrazení katalogu sys.databases.

READ_COMMITTED_SNAPSHOT { ON | VYPNUTO }

  • NA

    Povolí možnost Read-Committed Snímek na úrovni databáze. Když je povolená, příkazy DML začnou generovat verze řádků, i když žádná transakce nepoužívá izolaci snímků. Jakmile je tato možnost povolená, transakce, které určují úroveň izolace potvrzené čtení, místo uzamčení používají správu verzí řádků. Všechny příkazy vidí snímek dat, protože existuje na začátku příkazu, když transakce běží na úrovni izolace READ COMMITTED.

  • PRYČ

    Vypne možnost Read-Committed Snímek na úrovni databáze. Transakce určující úroveň izolace READ COMMITTED používají uzamčení.

Pokud chcete nastavit READ_COMMITTED_SNAPSHOT ZAPNUTO nebo VYPNUTO, nesmí existovat žádná aktivní připojení k databázi s výjimkou připojení spuštěného příkazem ALTER DATABASE. Databáze ale nemusí být v režimu jednoho uživatele. Pokud je databáze offline, nemůžete změnit stav této možnosti.

Pokud nastavíte READ_COMMITTED_SNAPSHOT v databázi READ_ONLY, nastavení se zachová, když je databáze později nastavená na READ_WRITE.

READ_COMMITTED_SNAPSHOT nelze zapnout pro systémové databáze master, tempdbnebo msdb. Pokud změníte nastavení pro model, toto nastavení se stane výchozím nastavením pro všechny nově vytvořené databáze s výjimkou tempdb.

Aktuální nastavení této možnosti lze určit prozkoumáním sloupce is_read_committed_snapshot_on v zobrazení katalogu sys.databases.

Varování

Při vytvoření tabulky s DURABILITY = SCHEMA_ONLYa READ_COMMITTED_SNAPSHOT se následně změní pomocí ALTER DATABASE, data v tabulce budou ztracena.

MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT { ON | VYPNUTO }

platí pro: SQL Server (počínaje SQL Serverem 2014 (12.x))

  • NA

    Pokud je úroveň izolace transakce nastavena na libovolnou úroveň izolace nižší než SNAPSHOT, všechny interpretované Transact-SQL operace s tabulkami optimalizovanými pro paměť se spouští pod izolací SNAPSHOT. Příklady úrovní izolace nižší než snímky jsou READ COMMITTED nebo READ UNCOMMITTED. Tyto operace se spouští, jestli je úroveň izolace transakce nastavena explicitně na úrovni relace, nebo se implicitně používá výchozí hodnota.

  • PRYČ

    Nezvyšuje úroveň izolace transakcí pro interpretované operace Transact-SQL v tabulkách optimalizovaných pro paměť.

Pokud je databáze offline, nemůžete změnit stav MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT.

Výchozí možnost je VYPNUTÁ.

Aktuální nastavení této možnosti lze určit prozkoumáním sloupce is_memory_optimized_elevate_to_snapshot_on v zobrazení katalogu sys.databases.

<sql_option> ::=

Řídí možnosti dodržování předpisů ANSI na úrovni databáze.

ANSI_NULL_DEFAULT { ON | VYPNUTO }

Určuje výchozí hodnotu, HODNOTU NULL nebo NOT NULL sloupce nebo uživatelem definovaný typ CLR, pro který není explicitně definována v příkazech CREATE TABLE nebo ALTER TABLE. Sloupce definované s omezeními se řídí pravidly omezení bez ohledu na to, co toto nastavení může být.

  • NA

    Výchozí hodnota nedefinovaného sloupce je NULL.

  • PRYČ

    Výchozí hodnota nedefinovaného sloupce není NULL.

Nastavení na úrovni připojení, která jsou nastavená pomocí příkazu SET, přepíší výchozí nastavení na úrovni databáze pro ANSI_NULL_DEFAULT. Klienti ODBC a OLE DB ve výchozím nastavení vydávají nastavení příkazu SET na úrovni připojení ANSI_NULL_DEFAULT zapnuto pro relaci. Klienti spustí příkaz při připojení k instanci SQL Serveru. Další informace naleznete v tématu SET ANSI_NULL_DFLT_ON.

V případě kompatibility ANSI nastavení možnosti databáze ANSI_NULL_DEFAULT na HODNOTU ON změní výchozí hodnotu databáze na HODNOTU NULL.

Stav této možnosti můžete určit prozkoumáním sloupce is_ansi_null_default_on v zobrazení katalogu sys.databases. Stav můžete také určit prozkoumáním IsAnsiNullDefault vlastnosti DATABASEPROPERTYEX.

ANSI_NULLS { ON | VYPNUTO }

  • NA

    Všechna porovnání s hodnotou null se vyhodnotí jako UNKNOWN.

  • PRYČ

    Porovnání hodnot, které nejsou unicode, na hodnotu null se vyhodnotí jako PRAVDA, pokud obě hodnoty mají hodnotu NULL.

Důležitý

V budoucí verzi SQL Serveru bude ANSI_NULLS vždy zapnuté a všechny aplikace, které explicitně nastavily možnost VYPNUTO, způsobí chybu. Nepoužívejte tuto funkci v nové vývojové práci a naplánujte úpravu aplikací, které tuto funkci aktuálně používají.

Nastavení na úrovni připojení, která jsou nastavena pomocí příkazu SET, přepíší výchozí nastavení databáze pro ANSI_NULLS. Klienti ODBC a OLE DB ve výchozím nastavení vydávají nastavení příkazu SET na úrovni připojení ANSI_NULLS zapnuto pro relaci. Klienti spustí příkaz při připojení k instanci SQL Serveru. Další informace naleznete v tématu SET ANSI_NULLS.

Důležitý

NASTAVENÍ ANSI_NULLS musí být také při vytváření nebo provádění změn indexů ve vypočítaných sloupcích nebo indexovaných zobrazeních nastaveno na hodnotu ZAPNUTO.

Stav této možnosti můžete určit prozkoumáním sloupce is_ansi_nulls_on v zobrazení katalogu sys.databases. Stav můžete také určit prozkoumáním IsAnsiNullsEnabled vlastnosti DATABASEPROPERTYEX.

ANSI_PADDING { ON | VYPNUTO }

  • NA

    Řetězce jsou před převodem vycpané na stejnou délku. Před vložením do varchar nebo nvarchar datového typu se také vložil na stejnou délku.

  • PRYČ

    Vloží koncové mezery v hodnotách znaků do varchar nebo nvarchar sloupců. Také ponechá koncové nuly v binárních hodnotách, které se vloží do varbinárních sloupců. Hodnoty nejsou vycpané na délku sloupce.

    Pokud je toto nastavení vypnuté, ovlivní pouze definici nových sloupců.

Důležitý

V budoucí verzi SQL Serveru budou ANSI_PADDING vždy zapnuté a všechny aplikace, které explicitně nastaví možnost VYPNUTO, způsobí chybu. Nepoužívejte tuto funkci v nové vývojové práci a naplánujte úpravu aplikací, které tuto funkci aktuálně používají. Doporučujeme, abyste vždy nastavili ANSI_PADDING na ZAPNUTO. ANSI_PADDING musí být zapnuté při vytváření nebo manipulaci s indexy ve vypočítaných sloupcích nebo indexovaných zobrazeních.

znak(n) a binární (n) sloupce, které umožňují vložit hodnoty null na délku sloupce, pokud je ANSI_PADDING nastavena na zapnuto. Koncové prázdné hodnoty a nuly se oříznou, když je ANSI_PADDING vypnutý. char(n) a binary(n) sloupce, které neumožňují, jsou vždy vycpané na délku sloupce.

Nastavení na úrovni připojení nastavená pomocí příkazu SET přepíší výchozí nastavení na úrovni databáze pro ANSI_PADDING. Klienti ODBC a OLE DB ve výchozím nastavení vydávají nastavení příkazu SET na úrovni připojení ANSI_PADDING zapnuto pro relaci. Klienti spustí příkaz při připojení k instanci SQL Serveru. Další informace naleznete v tématu SET ANSI_PADDING.

Stav této možnosti můžete určit prozkoumáním sloupce is_ansi_padding_on v zobrazení katalogu sys.databases. Stav můžete také určit prozkoumáním IsAnsiPaddingEnabled vlastnosti DATABASEPROPERTYEX.

ANSI_WARNINGS { ON | VYPNUTO }

  • NA

    Chyby nebo upozornění se vydávají v případě, že dojde k podmínkám, jako je dělení nulou. Chyby a upozornění se vydávají také v případech, kdy se hodnoty null zobrazují v agregačních funkcích.

  • PRYČ

    Při výskytu podmínek, jako je například dělení nulou, se nevrací žádná upozornění a hodnoty null se vrátí.

Důležitý

Nastavení ANSI_WARNINGS musí být při vytváření nebo provádění změn indexů ve vypočítaných sloupcích nebo indexovaných zobrazeních nastaveno na hodnotu ZAPNUTO.

Nastavení na úrovni připojení, která jsou nastavena pomocí příkazu SET, přepíší výchozí nastavení databáze pro ANSI_WARNINGS. Klienti ODBC a OLE DB ve výchozím nastavení vydávají nastavení příkazu SET na úrovni připojení ANSI_WARNINGS zapnuto pro relaci. Klienti spustí příkaz při připojení k instanci SQL Serveru. Další informace naleznete v tématu SET ANSI_WARNINGS.

Stav této možnosti můžete určit prozkoumáním sloupce is_ansi_warnings_on v zobrazení katalogu sys.databases. Stav můžete také určit prozkoumáním IsAnsiWarningsEnabled vlastnosti DATABASEPROPERTYEX.

ARITHABORT { ON | VYPNUTO }

  • NA

    Dotaz se ukončí, když během provádění dotazu dojde k chybě přetečení nebo dělení nulou.

  • PRYČ

    Při výskytu jedné z těchto chyb se zobrazí zpráva s upozorněním. Dotaz, dávka nebo transakce pokračuje v procesu, jako kdyby nedošlo k žádné chybě, i když se zobrazí upozornění.

Důležitý

Nastavení ARITHABORT musí být při vytváření nebo provádění změn indexů ve vypočítaných sloupcích nebo indexovaných zobrazeních nastaveno na hodnotu ZAPNUTO.

Stav této možnosti můžete určit prozkoumáním sloupce is_arithabort_on v zobrazení katalogu sys.databases. Stav můžete také určit prozkoumáním IsArithmeticAbortEnabled vlastnosti DATABASEPROPERTYEX.

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

Další informace naleznete v tématu ÚROVEŇ kompatibility ALTER DATABASE.

CONCAT_NULL_YIELDS_NULL { ON | VYPNUTO }

  • NA

    Výsledek operace zřetězení je NULL, pokud je oba operandy NULL. Například zřetězení řetězce znaků "This is" a NULL vrátí hodnotu NULL místo hodnoty "This is".

  • PRYČ

    Hodnota null je považována za prázdný řetězec znaků.

Důležitý

CONCAT_NULL_YIELDS_NULL musí být při vytváření nebo provádění změn indexů ve vypočítaných sloupcích nebo indexovaných zobrazeních nastavena na hodnotu ZAPNUTO.

V nadcházejících verzích SQL Serveru budou CONCAT_NULL_YIELDS_NULL vždy zapnuté a všechny aplikace, které explicitně nastavily možnost VYPNUTO, aktivují chybu. Nepoužívejte tuto funkci v nové vývojové práci a naplánujte úpravu aplikací, které tuto funkci aktuálně používají.

Nastavení na úrovni připojení, která jsou nastavena pomocí příkazu SET, přepíší výchozí nastavení databáze pro CONCAT_NULL_YIELDS_NULL. Ve výchozím nastavení vydávají klienti ODBC a OLE DB nastavení příkazu SET na úrovni připojení CONCAT_NULL_YIELDS_NULL pro relaci při připojování k instanci SQL Serveru. Další informace naleznete v tématu SET CONCAT_NULL_YIELDS_NULL.

Stav této možnosti můžete určit prozkoumáním sloupce is_concat_null_yields_null_on v zobrazení katalogu sys.databases. Stav můžete také určit prozkoumáním IsNullConcat vlastnosti DATABASEPROPERTYEX.

NUMERIC_ROUNDABORT { ON | VYPNUTO }

  • NA

    Při ztrátě přesnosti ve výrazu se vygeneruje chyba.

  • PRYČ

    Ztráta přesnosti nevygeneruje chybovou zprávu a výsledek se zaokrouhlí na přesnost sloupce nebo proměnné, do které se výsledek uloží.

    Důležitý

    NUMERIC_ROUNDABORT musí být při vytváření nebo změnách indexů ve vypočítaných sloupcích nebo indexovaných zobrazeních nastavena na hodnotu VYPNUTO.

Stav této možnosti můžete určit ve sloupci is_numeric_roundabort_on v zobrazení katalogu sys.databases. Stav můžete také určit prozkoumáním IsNumericRoundAbortEnabled vlastnosti DATABASEPROPERTYEX.

QUOTED_IDENTIFIER { ON | VYPNUTO }

  • NA

    Dvojité uvozovky lze použít k uzavření identifikátorů s oddělovači.

    Všechny řetězce oddělené dvojitými uvozovkami se interpretují jako identifikátory objektů. Identifikátory uvozových čísel nemusí dodržovat pravidla Transact-SQL identifikátorů. Můžou to být klíčová slova a můžou obsahovat znaky, které nejsou povolené v identifikátorech Transact-SQL. Pokud je uvozovka (") součástí identifikátoru, může být reprezentována dvěma uvozovkami ("").

  • PRYČ

    Identifikátory nemohou být v uvozovkách a musí dodržovat všechna pravidla Transact-SQL identifikátorů. Literály můžou být oddělené jednoduchými nebo dvojitými uvozovkami.

SQL Server také umožňuje oddělovat identifikátory hranatými závorkami ([ a ]). Identifikátory v hranatých závorkách je možné vždy použít bez ohledu na to, co je nastavení QUOTED_IDENTIFIER. Další informace naleznete v tématu Identifikátory databáze.

Při vytvoření tabulky je možnost QUOTED IDENTIFIER vždy uložena jako ON v metadatech tabulky. Tato možnost se uloží i v případě, že je tato možnost při vytváření tabulky nastavená na VYPNUTO.

Nastavení na úrovni připojení nastavená pomocí příkazu SET přepíší výchozí nastavení databáze pro QUOTED_IDENTIFIER. Klienti ODBC a OLE DB ve výchozím nastavení vydávají nastavení příkazu SET na úrovni připojení QUOTED_IDENTIFIER zapnuto. Klienti spustí příkaz při připojení k instanci SQL Serveru. Další informace naleznete v tématu SET QUOTED_IDENTIFIER.

Stav této možnosti můžete určit prozkoumáním sloupce is_quoted_identifier_on v zobrazení katalogu sys.databases. Stav můžete také určit prozkoumáním IsQuotedIdentifiersEnabled vlastnosti DATABASEPROPERTYEX.

RECURSIVE_TRIGGERS { ON | VYPNUTO }

  • NA

    Je povoleno rekurzivní aktivaci triggerů AFTER.

  • PRYČ

    Stav této možnosti můžete určit prozkoumáním sloupce is_recursive_triggers_on v zobrazení katalogu sys.databases. Stav můžete také určit prozkoumáním IsRecursiveTriggersEnabled vlastnosti DATABASEPROPERTYEX.

Poznámka

Pokud je RECURSIVE_TRIGGERS nastavená na VYPNUTO, zabrání se pouze přímá rekurze. Pokud chcete zakázat nepřímou rekurzi, musíte také nastavit možnost serveru vnořených triggerů na hodnotu 0.

Stav této možnosti můžete určit prozkoumáním sloupce is_recursive_triggers_on v zobrazení katalogu sys.databases nebo vlastností IsRecursiveTriggersEnabled funkce DATABASEPROPERTY EX.

<suspend_for_snapshot_backup> ::=

platí pro: SQL Server (počínaje SQL Serverem 2022 (16.x))

Pozastaví databáze pro zálohování snímků. Může definovat skupinu jedné nebo více databází. Může určit režim pouze kopírování.

SET SUSPEND_FOR_SNAPSHOT_BACKUP = { ON | OFF }

Pozastaví nebo pozastaví databáze. Výchozí vypnuto.

MODE = COPY_ONLY

Volitelný. Používá COPY_ONLY režim.

<target_recovery_time_option> ::=

platí pro: SQL Server (počínaje SQL Serverem 2012 (11.x))

Určuje frekvenci nepřímých kontrolních bodů pro jednotlivé databáze. Počínaje SQL Serverem 2016 (13.x) je výchozí hodnota pro nové databáze 1 minutu, což znamená, že databáze používá nepřímé kontrolní body. Ve starších verzích je výchozí hodnota 0, což značí, že databáze používá automatické kontrolní body, jejichž frekvence závisí na nastavení intervalu obnovení instance serveru. Microsoft doporučuje pro většinu systémů 1 minutu.

TARGET_RECOVERY_TIME = target_recovery_time { SECONDS | MINUTES }

  • target_recovery_time

    Určuje maximální mez času obnovení zadané databáze v případě chybového ukončení. target_recovery_time je typ int.

  • SEKUNDY

    Označuje, že target_recovery_time se vyjadřuje jako počet sekund.

  • MINUTY

    Označuje, že target_recovery_time se vyjadřuje jako počet minut.

Další informace o nepřímých kontrolních bodech naleznete v tématu Databázové kontrolní body.

> ukončení <WITH::=

Určuje, kdy se mají vrátit neúplné transakce při přechodu databáze z jednoho stavu do druhého. Pokud je klauzule ukončení vynechána, příkaz ALTER DATABASE počká na neomezenou dobu, pokud je v databázi nějaký zámek. Lze zadat pouze jednu klauzuli ukončení a řídí se klauzulí SET.

Poznámka

Ne všechny možnosti databáze používají klauzuli> ukončení <WITH. Další informace najdete v tabulce v části Nastavení části Poznámky v tomto článku.

  • VRÁCENÍ ZPĚT PO celé číslo [SEKUNDY] | OKAMŽITÉ VRÁCENÍ ZPĚT

    Určuje, jestli se má vrátit zpět po zadaném počtu sekund nebo okamžitě.

  • NO_WAIT

    Určuje, že požadavek selže, pokud požadovaný stav databáze nebo změna možnosti nelze dokončit okamžitě. Dokončení okamžitě znamená, že nečeká na transakce, které se potvrdí nebo vrátí zpět samy.

Nastavení možností

Chcete-li načíst aktuální nastavení pro možnosti databáze, použijte zobrazení katalogu sys.databases nebo DATABASEPROPERTYEX

Po nastavení možnosti databáze se nové nastavení projeví okamžitě.

Výchozí hodnoty pro libovolnou z možností databáze pro všechny nově vytvořené databáze můžete změnit. Uděláte to tak, že v databázi model změníte příslušnou možnost databáze.

Ne všechny možnosti databáze používají klauzuli <ukončení> nebo je možné ji zadat v kombinaci s jinými možnostmi. Následující tabulka uvádí tyto možnosti a jejich možnosti a stav ukončení.

Kategorie Možnosti Lze zadat s dalšími možnostmi. Může použít klauzuli> ukončení <WITH.
<db_state_option> Ano Ano
<db_user_access_option> Ano Ano
<db_update_option> Ano Ano
<delayed_durability_option> Ano Ano
<external_access_option> Ano Ne
<cursor_option> Ano Ne
<auto_option> Ano Ne
<sql_option> Ano Ne
<recovery_option> Ano Ne
<target_recovery_time_option> Ne Ano
<database_mirroring_option> Ne Ne
ALLOW_SNAPSHOT_ISOLATION Ne Ne
READ_COMMITTED_SNAPSHOT Ne Ano
MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT Ano Ano
<service_broker_option> Ano Ne
DATE_CORRELATION_OPTIMIZATION Ano Ano
<parameterization_option> Ano Ano
<change_tracking_option> Ano Ano
<db_encryption_option> Ano Ne
<accelerated_database_recovery> Ano Ano

Mezipaměť plánu pro instanci SQL Serveru se vymaže nastavením jedné z následujících možností:

OFFLINE

ONLINE

MODIFY_NAME

KOLACIONOVAT

READ_ONLY

READ_WRITE

ZMĚNA VÝCHOZÍHO NASTAVENÍ FILEGROUP

ÚPRAVA READ_WRITE FILEGROUP

ÚPRAVA READ_ONLY FILEGROUP

Mezipaměť plánu se také vyprázdní v následujících scénářích.

  • Databáze má možnost AUTO_CLOSE databáze nastavenou na zapnuto. Pokud žádné odkazy na připojení uživatele nebo nepoužívá databázi, úloha na pozadí se pokusí databázi zavřít a vypnout automaticky.
  • Na databázi s výchozími možnostmi spustíte několik dotazů. Databáze se pak zahodí.
  • Snímek databáze zdrojové databáze se zahodí.
  • Úspěšně znovu sestavíte transakční protokol pro databázi.
  • Obnovíte zálohu databáze.
  • Odpojte databázi.

Vymazání mezipaměti plánu způsobí rekompilace všech následných plánů spuštění a může způsobit náhlé dočasné snížení výkonu dotazů. Pro každé vymazané úložiště mezipaměti v mezipaměti plánu obsahuje protokol chyb SYSTÉMU SQL Server následující informační zprávu: 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. Tato zpráva se protokoluje každých pět minut, dokud se mezipaměť vyprázdní v daném časovém intervalu.

Příklady

A. Nastavení možností v databázi

Následující příklad nastaví možnosti ověření modelu obnovení a datové stránky pro ukázkovou databázi AdventureWorks2022.

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

B. Nastavení databáze na READ_ONLY

Změna stavu databáze nebo skupiny souborů na READ_ONLY nebo READ_WRITE vyžaduje výhradní přístup k databázi. Následující příklad nastaví databázi na SINGLE_USER režim získat výhradní přístup. Příklad pak nastaví stav AdventureWorks2022 databáze na READ_ONLY a vrátí přístup k databázi všem uživatelům.

Poznámka

Tento příklad používá možnost ukončení WITH ROLLBACK IMMEDIATE v prvním příkazu ALTER DATABASE. Všechny neúplné transakce se vrátí zpět a všechna další připojení k databázi AdventureWorks2022 se okamžitě odpojí.

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. Povolení izolace snímků v databázi

Následující příklad umožňuje architekturu izolace snímků pro databázi AdventureWorks2022.

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

Sada výsledků ukazuje, že je povolená architektura izolace snímků.

Jméno snapshot_isolation_state popis
[database_name] 1 NA

D. Povolení, úprava nebo zakázání sledování změn

Následující příklad umožňuje sledování změn pro databázi AdventureWorks2022 a nastaví dobu uchovávání na 2 dnů.

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

Následující příklad ukazuje, jak změnit dobu uchovávání na 3 dnů.

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

Následující příklad ukazuje, jak zakázat sledování změn pro AdventureWorks2022 databázi.

ALTER DATABASE [database_name]
SET CHANGE_TRACKING = OFF;

E. Povolení úložiště dotazů

platí pro: SQL Server (počínaje SQL Serverem 2016 (13.x))

Následující příklad povolí úložiště dotazů a nakonfiguruje jeho parametry.

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. Povolení úložiště dotazů se statistikami čekání

platí pro: SQL Server (počínaje SQL Serverem 2017 (14.x))

Následující příklad povolí úložiště dotazů a nakonfiguruje jeho parametry.

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. Povolení úložiště dotazů s vlastními možnostmi zásad zachycení

platí pro: SQL Server (počínaje SQL Serverem 2019 (15.x))

Následující příklad povolí úložiště dotazů a nakonfiguruje jeho parametry.

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 *  

spravované instance SQL

 

SQL Database

Úrovně kompatibility jsou SET možnosti, ale jsou popsány v úrovni kompatibility ALTER DATABASE.

Poznámka

Mnoho možností sady databází lze pro aktuální relaci nakonfigurovat pomocí příkazy SET a aplikace je často konfigurují při připojení. Možnosti sady na úrovni relace přepíší hodnoty ALTER DATABASE SET. Možnosti databáze popsané v následujících částech jsou hodnoty, které je možné nastavit pro relace, které explicitně neposkytují další nastavené hodnoty možností.

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 }

Argumenty

database_name

Název databáze, která se má upravit.

  • SOUČASNÝ

    CURRENT spustí akci v aktuální databázi. CURRENT nejsou podporované pro všechny možnosti ve všech kontextech. Pokud CURRENT selže, zadejte název databáze.

<auto_option> ::=

Řídí automatické možnosti.

AUTO_CREATE_STATISTICS { ON | VYPNUTO }

  • NA

    Optimalizátor dotazů podle potřeby vytváří statistiky pro jednotlivé sloupce v predikátech dotazů, aby se zlepšily plány dotazů a výkon dotazů. Tyto statistiky s jedním sloupcem se vytvoří, když Optimalizátor dotazů zkompiluje dotazy. Statistiky s jedním sloupcem se vytvářejí jenom u sloupců, které ještě nejsou prvním sloupcem existujícího objektu statistiky.

    Výchozí hodnota je ZAPNUTÁ. Pro většinu databází doporučujeme použít výchozí nastavení.

  • PRYČ

    Optimalizátor dotazů při kompilaci dotazů nevytváří statistiky o jednotlivých sloupcích v predikátech dotazů. Nastavením této možnosti na vypnuto může dojít k neoptimálním plánům dotazů a snížení výkonu dotazů.

Stav této možnosti můžete určit prozkoumáním sloupce is_auto_create_stats_on v zobrazení katalogu sys.databases. Stav můžete také určit prozkoumáním IsAutoCreateStatistics vlastnosti DATABASEPROPERTYEX.

Další informace naleznete v části Možnosti statistiky v Statistika.

PŘÍRŮSTKOVÉ = ZAPNUTO | PRYČ

Nastavte AUTO_CREATE_STATISTICS na ZAPNUTO a nastavte PŘÍRŮSTKOVÉ na ZAPNUTO. Toto nastavení vytváří automaticky vytvořené statistiky jako přírůstkové, kdykoli jsou podporovány přírůstkové statistiky. Výchozí hodnota je VYPNUTÁ. Další informace naleznete v tématu CREATE STATISTICS.

AUTO_SHRINK { ON | VYPNUTO }

  • NA

    Soubory databáze jsou kandidáty na pravidelné zmenšení. Pokud nemáte konkrétní požadavek, nenastavujte možnost AUTO_SHRINK databáze na hodnotu ZAPNUTO. Další informace naleznete v tématu Zmenšení databáze.

Datové soubory i soubory protokolu se dají automaticky zmenšit. AUTO_SHRINK zmenšuje velikost transakčního protokolu pouze v případě, že nastavíte databázi na JEDNODUCHÝ model obnovení nebo pokud zálohujete protokol. Pokud je tato možnost vypnutá, soubory databáze se při pravidelných kontrolách nevyužitého místa automaticky nezvětšují.

Možnost AUTO_SHRINK způsobí, že se soubory zvětší, když více než 25 procent souboru obsahuje nevyužité místo. Tato možnost způsobí, že se soubor zmenší na jednu ze dvou velikostí. Zmenší se na tu, která je větší:

  • Velikost, ve které je 25 procent souboru nevyužité místo
  • Velikost souboru při jeho vytvoření

Databázi jen pro čtení nemůžete zmenšit.

  • PRYČ

    Soubory databáze se při pravidelných kontrolách nevyužitého místa automaticky nezřetěší.

Stav této možnosti můžete určit prozkoumáním sloupce is_auto_shrink_on v zobrazení katalogu sys.databases. Stav můžete také určit prozkoumáním IsAutoShrink vlastnosti DATABASEPROPERTYEX.

Poznámka

Možnost AUTO_SHRINK není dostupná v databázi s omezením.

AUTO_UPDATE_STATISTICS { ON | VYPNUTO }

  • NA

    Určuje, že optimalizátor dotazů aktualizuje statistiky, když je používá dotaz a kdy může být zastaralý. Statistiky se po vložení, aktualizaci, odstranění nebo sloučení změní distribuci dat v tabulce nebo indexovém zobrazení. Optimalizátor dotazů určuje, kdy statistiky můžou být zastaralé, počítáním počtu úprav dat od poslední aktualizace statistiky a porovnáním počtu úprav s prahovou hodnotou. Prahová hodnota je založená na počtu řádků v tabulce nebo indexovaném zobrazení.

    Optimalizátor dotazů před kompilací dotazu zkontroluje zastaralé statistiky a spustí plán dotazů uložený v mezipaměti. Optimalizátor dotazů používá sloupce, tabulky a indexovaná zobrazení v predikáte dotazu k určení, které statistiky můžou být zastaralé. Optimalizátor dotazů určuje tyto informace před kompilací dotazu. Před spuštěním plánu dotazů v mezipaměti databázový stroj ověří, že plán dotazu odkazuje na up-tostatistiky -date.

    Možnost AUTO_UPDATE_STATISTICS se vztahuje na statistiky vytvořené pro indexy, jednosloupcové v predikátech dotazů a statistiky vytvořené pomocí příkazu CREATE STATISTICS. Tato možnost platí také pro filtrované statistiky.

    Výchozí hodnota je ZAPNUTÁ. Pro většinu databází doporučujeme použít výchozí nastavení.

    Pomocí možnosti AUTO_UPDATE_STATISTICS_ASYNC určete, jestli se statistiky aktualizují synchronně nebo asynchronně.

  • PRYČ

    Určuje, že optimalizátor dotazů neaktualizuje statistiky, když je používá dotaz. Optimalizátor dotazů také neaktualizuje statistiky, když můžou být zastaralé. Nastavením této možnosti na vypnuto může dojít k neoptimálním plánům dotazů a snížení výkonu dotazů.

    Stav této možnosti můžete určit prozkoumáním sloupce is_auto_update_stats_on v zobrazení katalogu sys.databases. Stav můžete také určit prozkoumáním IsAutoUpdateStatistics vlastnosti DATABASEPROPERTYEX.

    Další informace naleznete v části Možnosti statistiky v Statistika.

AUTO_UPDATE_STATISTICS_ASYNC { ON | VYPNUTO }

  • NA

    Určuje, že aktualizace statistik pro možnost AUTO_UPDATE_STATISTICS jsou asynchronní. Optimalizátor dotazů nečeká na dokončení aktualizací statistik, než zkompiluje dotazy.

    Nastavení této možnosti na HODNOTU ON nemá žádný vliv, pokud není AUTO_UPDATE_STATISTICS nastavena na hodnotu ZAPNUTO.

    Ve výchozím nastavení je možnost AUTO_UPDATE_STATISTICS_ASYNC nastavená na VYPNUTO a optimalizátor dotazů aktualizuje statistiky synchronně.

  • PRYČ

    Určuje, že aktualizace statistik pro možnost AUTO_UPDATE_STATISTICS jsou synchronní. Optimalizátor dotazů čeká na dokončení aktualizací statistiky, než zkompiluje dotazy.

    Nastavení této možnosti na vypnuto nemá žádný vliv, pokud není AUTO_UPDATE_STATISTICS nastavena na zapnuto.

Stav této možnosti můžete určit prozkoumáním sloupce is_auto_update_stats_async_on v zobrazení katalogu sys.databases.

Další informace, které popisují, kdy použít synchronní nebo asynchronní statistiky aktualizace, naleznete v části Možnosti statistiky v Statistika.

<automatic_tuning_option> ::=

Řídí automatické možnosti pro automatické ladění. Možnosti pro následující nastavení můžete zobrazit na webu Azure Portal nebo prostřednictvím T-SQL v zobrazení sys.database_automatic_tuning_options.

AUTOMATIC_TUNING = { AUTO | DĚDIT | CUSTOM }

  • AUTO

    Nastavení hodnoty automatického ladění na auto použije výchozí hodnoty konfigurace Azure pro automatické ladění. Na webu Azure Portal se zobrazí možnost zdědit z výchozích hodnot Azure.

  • ZDĚDIT

    Použití hodnoty INHERIT dědí výchozí konfiguraci z nadřazeného serveru. Na webu Azure Portal se zobrazí možnost Dědit z: Server. To je užitečné zejména v případě, že chcete přizpůsobit konfiguraci automatického ladění na nadřazený server a mít všechny databáze na tomto serveru DĚDIT tato vlastní nastavení. Aby dědičnost fungovala, musí se tři jednotlivé možnosti ladění FORCE_LAST_GOOD_PLAN, CREATE_INDEX a DROP_INDEX u databází nastavit na VÝCHOZÍ.

  • ZVYK

    Pomocí vlastní hodnoty je potřeba nakonfigurovat každou z možností automatického ladění dostupných v databázích. Na webu Azure Portal se zobrazí možnost Dědit z: Nedědit.

CREATE_INDEX = { DEFAULT | ZAPNUTO | VYPNUTO }

Povolí nebo zakáže automatickou správu indexů CREATE_INDEX možnost automatického ladění. Stav této možnosti můžete zobrazit na webu Azure Portal nebo prostřednictvím T-SQL v zobrazení sys.database_automatic_tuning_options.

  • VÝCHOZÍ

    Dědí výchozí nastavení ze serveru. V tomto případě jsou možnosti povolení nebo zakázání jednotlivých funkcí automatického ladění definovány na úrovni serveru.

  • NA

    Pokud je tato možnost povolená, v databázi se automaticky vygenerují chybějící indexy. Po vytvoření indexu se ověří zvýšení výkonu úlohy. Pokud takový vytvořený index již neposkytuje výhody výkonu úloh, automaticky se vrátí. Automaticky vytvořené indexy se označí jako indexované systémem.

  • PRYČ

    Nevygeneruje automaticky chybějící indexy v databázi.

DROP_INDEX = { DEFAULT | ZAPNUTO | VYPNUTO }

Povolí nebo zakáže automatickou správu indexů DROP_INDEX možnost automatického ladění. Stav této možnosti můžete zobrazit na webu Azure Portal nebo prostřednictvím T-SQL v zobrazení sys.database_automatic_tuning_options.

  • VÝCHOZÍ

    Dědí výchozí nastavení ze serveru. V tomto případě jsou možnosti povolení nebo zakázání jednotlivých funkcí automatického ladění definovány na úrovni serveru.

  • NA

    Automaticky zahodí duplicitní indexy nebo už nebudou užitečné indexy úlohy výkonu.

  • PRYČ

    Automaticky nezahazuje chybějící indexy v databázi.

FORCE_LAST_GOOD_PLAN = { DEFAULT | ZAPNUTO | VYPNUTO }

Povolí nebo zakáže automatickou opravu plánu FORCE_LAST_GOOD_PLAN možnost automatického ladění. Stav této možnosti můžete zobrazit na webu Azure Portal nebo prostřednictvím T-SQL v zobrazení sys.database_automatic_tuning_options.

  • VÝCHOZÍ

    Dědí výchozí nastavení ze serveru. V tomto případě jsou možnosti povolení nebo zakázání jednotlivých funkcí automatického ladění definovány na úrovni serveru. Toto je výchozí hodnota. Výchozí hodnota pro nové servery Azure SQL je zapnutá, což znamená, že nové databáze ve výchozím nastavení dědí nastavení ZAPNUTO.

  • NA

    Databázový stroj automaticky vynutí poslední známý dobrý plán na Transact-SQL dotazy, kde nový plán dotazů způsobuje regrese výkonu. Databázový stroj nepřetržitě monitoruje výkon dotazů Transact-SQL dotazu s vynuceným plánem. Pokud dojde k nárůstu výkonu, databázový stroj bude dál používat poslední známý dobrý plán. Pokud se nezjistí zvýšení výkonu, databázový stroj vytvoří nový plán dotazu. Příkaz selže, pokud úložiště dotazů není povolené nebo není v režimu pro čtení i zápis.

  • PRYČ

    Databázový stroj hlásí potenciální regrese výkonu dotazů způsobené změnami plánu dotazů v zobrazení sys.dm_db_tuning_recommendations. Tato doporučení se ale nepoužijí automaticky. Uživatelé můžou monitorovat aktivní doporučení a opravovat zjištěné problémy pomocí Transact-SQL skriptů zobrazených v zobrazení.

<change_tracking_option> ::=

Řídí možnosti sledování změn. Můžete povolit sledování změn, nastavit možnosti, možnosti změn a zakázat sledování změn. Příklady najdete v části Příklady dále v tomto článku.

  • NA

    Povolí sledování změn pro databázi. Když povolíte sledování změn, můžete také nastavit možnosti AUTOMATICKÉHO VYČIŠTĚNÍ a UCHOVÁVÁNÍ ZMĚN.

    • AUTO_CLEANUP = { ON | VYPNUTO }

      • NA

        Informace o sledování změn se po zadané době uchovávání automaticky odeberou.

      • PRYČ

        Data sledování změn se z databáze neodeberou.

    • CHANGE_RETENTION = retention_period { DAYS | HODINY | MINUTES }

      Určuje minimální dobu pro uchovávání informací o sledování změn v databázi. Data se odeberou jenom v případech, kdy je hodnota AUTO_CLEANUP zapnutá.

      retention_period je celé číslo, které určuje číselnou součást doby uchovávání.

      Výchozí doba uchovávání je 2 dny. Minimální doba uchovávání je 1 minuta. Výchozí typ uchovávání je DAYS.

  • PRYČ

    Zakáže sledování změn pro databázi. Před zakázání sledování změn v databázi zakažte sledování změn u všech tabulek.

<cursor_option> ::=

Řídí možnosti kurzoru.

CURSOR_CLOSE_ON_COMMIT { ON | VYPNUTO }

  • NA

    Všechny kurzory otevřené při potvrzení nebo vrácení transakce se zavře.

  • PRYČ

    Kurzory zůstávají otevřené při potvrzení transakce; vrácení zpět transakce zavře všechny kurzory s výjimkou těch kurzorů definovaných jako INSENSITIVE nebo STATIC.

Nastavení na úrovni připojení, která jsou nastavená pomocí příkazu SET, přepíší výchozí nastavení databáze pro CURSOR_CLOSE_ON_COMMIT. Klienti ODBC a OLE DB vydávají nastavení příkazu SET na úrovni připojení CURSOR_CLOSE_ON_COMMIT pro relaci ve výchozím nastavení vypnuto. Klienti spustí příkaz při připojení k instanci SQL Serveru. Další informace naleznete v tématu SET CURSOR_CLOSE_ON_COMMIT.

Stav této možnosti můžete určit prozkoumáním sloupce is_cursor_close_on_commit_on v zobrazení katalogu sys.databases nebo vlastností IsCloseCursorsOnCommitEnabled funkce DATABASEPROPERTY EX. Kurzor je implicitně uvolněn pouze při odpojení. Další informace naleznete v tématu DECLARE CURSOR.

<db_encryption_option> ::=

Řídí stav šifrování databáze.

ŠIFROVÁNÍ { ZAPNUTO | VYPNUTO }

Nastaví databázi tak, aby byla zašifrována (ZAPNUTO) nebo není zašifrovaná (VYPNUTO). Další informace o šifrování databáze najdete v tématu transparentního šifrování dat (TDE)a transparentního šifrování dat pro službu Azure SQL Database, azure SQL Managed Instance aAzure Synapse Analytics.

Pokud je šifrování povolené na úrovni databáze, všechny skupiny souborů se šifrují. Všechny nové skupiny souborů dědí zašifrovanou vlastnost. Pokud jsou některé skupiny souborů v databázi nastaveny jen pro čtení, operace šifrování databáze selže.

Stav šifrování databáze můžete zobrazit pomocí zobrazení sys.dm_database_encryption_keys dynamické správy.

<db_update_option> ::=

Určuje, jestli jsou v databázi povolené aktualizace.

  • READ_ONLY

    Uživatelé mohou číst data z databáze, ale nemůžou je upravovat.

    Poznámka

    Pokud chcete zvýšit výkon dotazů, aktualizujte statistiky před nastavením databáze na READ_ONLY. Pokud jsou po nastavení READ_ONLY databáze potřeba další statistiky, vytvoří databázový stroj statistiku v tempdb. Další informace o statistikách pro databázi jen pro čtení naleznete v tématu Statistika.

  • READ_WRITE

    Databáze je k dispozici pro operace čtení a zápisu.

Pokud chcete tento stav změnit, musíte mít výhradní přístup k databázi. Další informace najdete v klauzuli SINGLE_USER.

Poznámka

Ve federovaných databázích Azure SQL Database je SET { READ_ONLY | READ_WRITE } zakázaná.

<db_user_access_option> ::=

Řídí uživatelský přístup k databázi.

  • RESTRICTED_USER

    Umožňuje připojení k databázi jenom členům db_owner pevné databázové role a dbcreator a sysadmin pevných rolí serveru, ale neomezuje jejich počet. Všechna připojení k databázi jsou odpojena v časovém rámci určeném klauzulí ukončení příkazu ALTER DATABASE. Po přechodu databáze do stavu RESTRICTED_USER budou pokusy o připojení nekvalifikovaných uživatelů odmítnuty. Ve službě Azure SQL Database by se mělo spouštět z uživatelské databáze. V databázi master se může zobrazit chybová zpráva 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

    Všichni uživatelé, kteří mají příslušná oprávnění pro připojení k databázi, jsou povoleni. Stav této možnosti můžete určit prozkoumáním sloupce user_access v zobrazení katalogu sys.databases nebo vlastností UserAccess funkce DATABASEPROPERTY EX. Ve službě Azure SQL Database by se mělo spouštět z uživatelské databáze. V databázi master se může zobrazit chybová zpráva 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> ::=

Určuje, zda transakce potvrdí plně trvalé nebo zpožděné trvalé.

  • INVALIDNÍ

    Všechny transakce následující SET DISABLED jsou plně odolné. Všechny možnosti odolnosti nastavené v atomovém bloku nebo příkazu commit jsou ignorovány.

  • POVOLENÝ

    Všechny transakce následující SET ALLOWED jsou buď plně odolné nebo zpožděné, v závislosti na možnosti stálosti nastavené v atomovém bloku nebo příkazu commit.

  • VYNUCENÝ

    Všechny transakce následující SET FORCED jsou zpožděné trvalé. Všechny možnosti odolnosti nastavené v atomovém bloku nebo příkazu commit jsou ignorovány.

<PARAMETERIZATION_option> ::=

Řídí možnost parametrizace.

PARAMETRIZACE { SIMPLE | FORCED }

  • JEDNODUCHÝ

    Dotazy jsou parametrizovány na základě výchozího chování databáze.

  • VYNUCENÝ

    SQL Server parametrizuje všechny dotazy v databázi.

Aktuální nastavení této možnosti lze určit prozkoumáním sloupce is_parameterization_forced v zobrazení katalogu sys.databases.

<query_store_options> ::=

  • ZAPNUTO | VYPNUTO | CLEAR [ ALL ]

    Určuje, jestli je v této databázi povolené úložiště dotazů, a také určuje odebrání obsahu úložiště dotazů.

    • NA

      Povolí úložiště dotazů. Zapnuto je výchozí hodnota.

    • PRYČ

      Zakáže úložiště dotazů.

      Poznámka

      Úložiště dotazů nejde zakázat v jednoúčelové databázi Azure SQL Database a elastickém fondu. Provádění ALTER DATABASE [database] SET QUERY_STORE = OFF vrátí upozornění 'QUERY_STORE=OFF' is not supported in this version of SQL Server..

    • JASNÝ

      Odeberte obsah úložiště dotazů.

OPERATION_MODE

Popisuje režim operace úložiště dotazů. Platné hodnoty jsou READ_ONLY a READ_WRITE. V READ_WRITE režimu úložiště dotazů shromažďuje a uchovává informace o plánu dotazu a spouštění za běhu. V READ_ONLY režimu je možné informace číst z úložiště dotazů, ale nepřidají se nové informace. Pokud došlo k vyčerpání maximálního přiděleného prostoru úložiště dotazů, změní úložiště dotazů režim operace na READ_ONLY.

CLEANUP_POLICY

Popisuje zásady uchovávání dat úložiště dotazů. STALE_QUERY_THRESHOLD_DAYS určuje počet dnů, po které se informace pro dotaz uchovávají v úložišti dotazů. STALE_QUERY_THRESHOLD_DAYS je typ bigint. Výchozí hodnota je 30. Pro edici SQL Database Basic je výchozí 7 dnů.

DATA_FLUSH_INTERVAL_SECONDS

Určuje frekvenci, s jakou se data zapsaná do úložiště dotazů zachovají na disk. Kvůli optimalizaci výkonu se data shromážděná úložištěm dotazů asynchronně zapisují na disk. Frekvence, s jakou k tomuto asynchronnímu přenosu dochází, je nakonfigurována pomocí argumentu DATA_FLUSH_INTERVAL_SECONDS. DATA_FLUSH_INTERVAL_SECONDS je typ bigint. Výchozí hodnota je 900 (15 min).

MAX_STORAGE_SIZE_MB

Určuje prostor přidělený úložišti dotazů. MAX_STORAGE_SIZE_MB je typ bigint.

Poznámka

Ve službě Azure SQL Database se výchozí hodnota MAX_STORAGE_SIZE_MB liší podle úrovně služby: Premium, Business Critical a Hyperscale: 1 024 MB; Standard a Pro obecné účely: 100 MB; Základní: 10 MB Maximální povolená hodnota MAX_STORAGE_SIZE_MB je 10 240 MB.

Poznámka

MAX_STORAGE_SIZE_MB limit není striktně vynucený. Velikost úložiště se kontroluje jenom v případech, kdy úložiště dotazů zapisuje data na disk. Tento interval je nastaven možností DATA_FLUSH_INTERVAL_SECONDS nebo možností dialogového okna Úložiště dotazů v sadě Management Studio Interval vyprázdnění dat. Výchozí hodnota intervalu je 900 sekund (nebo 15 minut). Pokud úložiště dotazů porušilo limit MAX_STORAGE_SIZE_MB mezi kontrolami velikosti úložiště, přejde do režimu jen pro čtení. Pokud je povolená SIZE_BASED_CLEANUP_MODE, aktivuje se také mechanismus čištění, který vynucuje limit MAX_STORAGE_SIZE_MB. Jakmile se vymaže dostatek místa, režim úložiště dotazů se automaticky přepne zpět na čtení i zápis.

Důležitý

Pokud si myslíte, že zachytávání úloh vyžaduje více než 10 GB místa na disku, měli byste pravděpodobně znovu zvážit a optimalizovat úlohy tak, aby opakovaně používaly plány dotazů (například pomocí vynucené parametrizacenebo upravte konfigurace úložiště dotazů. Počínaje SQL Serverem 2019 (15.x) a v Azure SQL Database můžete nastavit QUERY_CAPTURE_MODE na VLASTNÍ, abyste získali další kontrolu nad zásadami zachytávání dotazů.

INTERVAL_LENGTH_MINUTES

Určuje časový interval, ve kterém se data statistik spouštění modulu runtime agregují do úložiště dotazů. Pro optimalizaci využití místa se statistiky spouštění modulu runtime v úložišti statistik modulu runtime agregují v rámci pevného časového intervalu. Toto pevné časové okno je nakonfigurováno pomocí argumentu INTERVAL_LENGTH_MINUTES. INTERVAL_LENGTH_MINUTES je typ bigint. Výchozí hodnota je 60.

SIZE_BASED_CLEANUP_MODE = { AUTO | VYPNUTO }

Určuje, jestli se čištění aktivuje automaticky, když se celkové množství dat blíží maximální velikosti.

  • PRYČ

    Čištění na základě velikosti se neaktivuje automaticky.

  • AUTO

    Čištění na základě velikosti se automaticky aktivuje, když velikost na disku dosáhne 90% max_storage_size_mb. Čištění na základě velikosti nejprve odebere nejméně nákladné a nejstarší dotazy. Zastaví se přibližně na 80% max_storage_size_mb. Toto je výchozí hodnota konfigurace.

SIZE_BASED_CLEANUP_MODE je typ nvarchar.

QUERY_CAPTURE_MODE { ALL | AUTO | VLASTNÍ | NONE }

Určuje aktuálně aktivní režim zachytávání dotazů. Každý režim definuje konkrétní zásady zachytávání dotazů.

Poznámka

Kurzory, dotazy uvnitř uložených procedur a nativně kompilované dotazy se vždy zaznamenávají, když je režim zachytávání dotazů nastavený na ALL, AUTO nebo CUSTOM.

  • VŠICHNI

    Zachytává všechny dotazy.

  • AUTO

    Zachyťte relevantní dotazy na základě počtu spuštění a spotřeby prostředků. Toto je výchozí hodnota konfigurace pro Azure SQL Database.

  • ŽÁDNÝ

    Zastavte zachytávání nových dotazů. Úložiště dotazů nadále shromažďuje statistiky kompilace a modulu runtime pro dotazy, které už byly zachyceny. Tuto konfiguraci používejte s opatrností, protože byste mohli vynechat zachytávání důležitých dotazů.

  • ZVYK

    Umožňuje kontrolu nad možnostmi QUERY_CAPTURE_POLICY.

QUERY_CAPTURE_MODE je typ nvarchar.

MAX_PLANS_PER_QUERY

Definuje maximální počet plánů udržovaných pro každý dotaz. MAX_PLANS_PER_QUERY je typ int. Výchozí hodnota je 200.

WAIT_STATS_CAPTURE_MODE { ON | VYPNUTO }

Určuje, jestli se zachytávají statistiky čekání na dotaz.

  • NA

    Zachytí se informace o statistikách čekání na dotaz. Tato hodnota je výchozí konfigurační hodnotou.

  • PRYČ

    Informace o statistikách čekání na dotaz se nezaznamenají.

<query_capture_policy_option_list> :: =

Řídí možnosti zásad zachycení úložiště dotazů. S výjimkou STALE_CAPTURE_POLICY_THRESHOLD tyto možnosti definují podmínky OR, ke kterým musí dojít, aby dotazy byly zachyceny v definované prahové hodnotě zásad zachytávání zastaralých.

STALE_CAPTURE_POLICY_THRESHOLD = celé číslo { DAYS | HODINY }

Definuje období intervalu vyhodnocení, které určuje, jestli se má dotaz zachytit. Výchozí hodnota je 1 den a dá se nastavit od 1 hodiny do sedmi dnů. číslo je typ .

EXECUTION_COUNT = celočíselná

Definuje, kolikrát se dotaz provádí během období vyhodnocení. Výchozí hodnota je 30, což znamená, že pro výchozí prahovou hodnotu zastaralých zásad zachytávání musí dotaz provést nejméně 30krát za jeden den, aby se zachoval v úložišti dotazů. EXECUTION_COUNT je typ int.

TOTAL_COMPILE_CPU_TIME_MS = celočíselná

Definuje celkovou uplynulou dobu kompilace procesoru používanou dotazem během období vyhodnocení. Výchozí hodnota je 1000, což znamená, že pro výchozí prahovou hodnotu zastaralých zásad zachytávání musí mít dotaz celkem alespoň jednu sekundu času stráveného během kompilace dotazu v jednom dni, aby se zachoval v úložišti dotazů. TOTAL_COMPILE_CPU_TIME_MS je typ int.

TOTAL_EXECUTION_CPU_TIME_MS = celočíselná

Definuje celkovou uplynulou dobu výkonu procesoru používanou dotazem během období vyhodnocení. Výchozí hodnota je 100, což znamená, že pro výchozí prahovou hodnotu zastaralé zásady zachytávání musí mít dotaz celkem alespoň 100 ms času stráveného během provádění v jednom dni, aby se zachoval v úložišti dotazů. TOTAL_EXECUTION_CPU_TIME_MS je typ int.

<snapshot_option> ::=

Určuje úroveň izolace transakce.

ALLOW_SNAPSHOT_ISOLATION { ON | VYPNUTO }

  • NA

    Povolí možnost Snímek na úrovni databáze. Když je povolená, příkazy DML začnou generovat verze řádků, i když žádná transakce nepoužívá izolaci snímků. Po povolení této možnosti mohou transakce zadat úroveň izolace transakce SNAPSHOT. Když transakce běží na úrovni izolace SNAPSHOT, všechny příkazy uvidí snímek dat, protože existuje na začátku transakce. Pokud transakce spuštěná na úrovni izolace SNAPSHOT přistupuje k datům ve více databázích, musí být buď ALLOW_SNAPSHOT_ISOLATION nastavena na ON ve všech databázích, nebo každý příkaz v transakci musí používat zamykání nápovědy pro všechny odkazy v klauzuli FROM na tabulku v databázi, kde ALLOW_SNAPSHOT_ISOLATION je vypnutá.

  • PRYČ

    Vypne možnost Snímek na úrovni databáze. Transakce nemohou určit úroveň izolace transakce SNAPSHOT.

Když nastavíte ALLOW_SNAPSHOT_ISOLATION na nový stav (od ZAPNUTO do VYPNUTO nebo VYPNUTO na ZAPNUTO), funkce ALTER DATABASE nevrátí řízení volajícímu, dokud nebudou potvrzeny všechny existující transakce v databázi. Pokud je databáze již ve stavu zadaném v příkazu ALTER DATABASE, vrátí se ovládací prvek volajícímu okamžitě. Pokud příkaz ALTER DATABASE nevrací rychle, použijte sys.dm_tran_active_snapshot_database_transactions k určení, zda existují dlouhotrvající transakce. Pokud je příkaz ALTER DATABASE zrušen, databáze zůstane ve stavu, ve který byla spuštěna funkce ALTER DATABASE. Zobrazení katalogu sys.databases označuje stav transakcí izolace snímků v databázi. Pokud snapshot_isolation_state_desc = IN_TRANSITION_TO_ON, příkaz ALTER DATABASE .... ALLOW_SNAPSHOT_ISOLATION OFF pozastaví šest sekund a opakuje operaci.

Pokud je databáze offline, nemůžete změnit stav ALLOW_SNAPSHOT_ISOLATION.

Pokud nastavíte ALLOW_SNAPSHOT_ISOLATION v databázi READ_ONLY, nastavení se zachová, pokud je databáze později nastavená na READ_WRITE.

Aktuální nastavení této možnosti lze určit prozkoumáním sloupce snapshot_isolation_state v zobrazení katalogu sys.databases.

READ_COMMITTED_SNAPSHOT { ON | VYPNUTO }

  • NA

    Povolí možnost Read-Committed Snímek na úrovni databáze. Když je povolená, příkazy DML začnou generovat verze řádků, i když žádná transakce nepoužívá izolaci snímků. Jakmile je tato možnost povolená, transakce určující úroveň izolace READ COMMITTED místo uzamčení používají správu verzí řádků. Všechny příkazy vidí snímek dat, protože existuje na začátku příkazu, když transakce běží na úrovni izolace READ COMMITTED.

  • PRYČ

    Vypne možnost Read-Committed Snímek na úrovni databáze. Transakce určující úroveň izolace READ COMMITTED používají uzamčení.

Pokud chcete nastavit READ_COMMITTED_SNAPSHOT ZAPNUTO nebo VYPNUTO, nesmí existovat žádná aktivní připojení k databázi s výjimkou připojení spuštěného příkazem ALTER DATABASE. Databáze ale nemusí být v režimu jednoho uživatele. Pokud je databáze offline, nemůžete změnit stav této možnosti.

Pokud nastavíte READ_COMMITTED_SNAPSHOT v databázi READ_ONLY, nastavení se zachová, když je databáze později nastavená na READ_WRITE.

READ_COMMITTED_SNAPSHOT nelze zapnout pro systémové databáze master, tempdbnebo msdb. Pokud změníte nastavení pro model, toto nastavení se stane výchozím nastavením pro všechny nově vytvořené databáze s výjimkou tempdb.

Aktuální nastavení této možnosti lze určit prozkoumáním sloupce is_read_committed_snapshot_on v zobrazení katalogu sys.databases.

Varování

Když se vytvoří tabulka s DURABILITY = SCHEMA_ONLYa READ_COMMITTED_SNAPSHOT se následně změní pomocí ALTER DATABASE, data v tabulce se ztratí.

Spropitné

Ve službě Azure SQL Database musí být příkaz ALTER DATABASE, který nastaví READ_COMMITTED_SNAPSHOT zapnuto nebo vypnuto pro databázi v databázi master.

MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT { ON | VYPNUTO }

  • NA

    Pokud je úroveň izolace transakce nastavena na libovolnou úroveň izolace nižší než SNAPSHOT, všechny interpretované Transact-SQL operace s tabulkami optimalizovanými pro paměť se spouští pod izolací SNAPSHOT. Příklady úrovní izolace nižší než snímky jsou READ COMMITTED nebo READ UNCOMMITTED. Tyto operace se spouští, jestli je úroveň izolace transakce nastavena explicitně na úrovni relace, nebo se implicitně používá výchozí hodnota.

  • PRYČ

    Nezvyšuje úroveň izolace transakcí pro interpretované operace Transact-SQL v tabulkách optimalizovaných pro paměť.

Pokud je databáze offline, nemůžete změnit stav MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT.

Výchozí hodnota je VYPNUTÁ.

Aktuální nastavení této možnosti lze určit prozkoumáním sloupce is_memory_optimized_elevate_to_snapshot_on v zobrazení katalogu sys.databases.

<sql_option> ::=

Řídí možnosti dodržování předpisů ANSI na úrovni databáze.

ANSI_NULL_DEFAULT { ON | VYPNUTO }

Určuje výchozí hodnotu, HODNOTU NULL nebo NOT NULL sloupce nebo uživatelem definovaný typ CLR, pro který není explicitně definována v příkazech CREATE TABLE nebo ALTER TABLE. Sloupce definované s omezeními se řídí pravidly omezení bez ohledu na to, co toto nastavení může být.

  • NA

    Výchozí hodnota je NULL.

  • PRYČ

    Výchozí hodnota není NULL.

Nastavení na úrovni připojení, která jsou nastavená pomocí příkazu SET, přepíší výchozí nastavení na úrovni databáze pro ANSI_NULL_DEFAULT. Klienti ODBC a OLE DB ve výchozím nastavení vydávají nastavení příkazu SET na úrovni připojení ANSI_NULL_DEFAULT zapnuto pro relaci. Klienti spustí příkaz při připojení k instanci SQL Serveru. Další informace naleznete v tématu SET ANSI_NULL_DFLT_ON.

V případě kompatibility ANSI nastavení možnosti databáze ANSI_NULL_DEFAULT na HODNOTU ON změní výchozí hodnotu databáze na HODNOTU NULL.

Stav této možnosti můžete určit prozkoumáním sloupce is_ansi_null_default_on v zobrazení katalogu sys.databases. Stav můžete také určit prozkoumáním IsAnsiNullDefault vlastnosti DATABASEPROPERTYEX.

ANSI_NULLS { ON | VYPNUTO }

  • NA

    Všechna porovnání s hodnotou null se vyhodnotí jako UNKNOWN.

  • PRYČ

    Porovnání hodnot, které nejsou unicode, na hodnotu null se vyhodnotí jako PRAVDA, pokud obě hodnoty mají hodnotu NULL.

Důležitý

V budoucí verzi SQL Serveru bude ANSI_NULLS vždy zapnuté a všechny aplikace, které explicitně nastavily možnost VYPNUTO, způsobí chybu. Nepoužívejte tuto funkci v nové vývojové práci a naplánujte úpravu aplikací, které tuto funkci aktuálně používají.

Nastavení na úrovni připojení, která jsou nastavena pomocí příkazu SET, přepíší výchozí nastavení databáze pro ANSI_NULLS. Klienti ODBC a OLE DB ve výchozím nastavení vydávají nastavení příkazu SET na úrovni připojení ANSI_NULLS zapnuto pro relaci. Klienti spustí příkaz při připojení k instanci SQL Serveru. Další informace naleznete v tématu SET ANSI_NULLS.

Poznámka

NASTAVENÍ ANSI_NULLS musí být také při vytváření nebo provádění změn indexů ve vypočítaných sloupcích nebo indexovaných zobrazeních nastaveno na hodnotu ZAPNUTO.

Stav této možnosti můžete určit prozkoumáním sloupce is_ansi_nulls_on v zobrazení katalogu sys.databases. Stav můžete také určit prozkoumáním IsAnsiNullsEnabled vlastnosti DATABASEPROPERTYEX.

ANSI_PADDING { ON | VYPNUTO }

  • NA

    Řetězce jsou před převodem vycpané na stejnou délku. Před vložením do varchar nebo nvarchar datového typu se také vložil na stejnou délku.

  • PRYČ

    Vloží koncové mezery v hodnotách znaků do varchar nebo nvarchar sloupců. Také ponechá koncové nuly v binárních hodnotách, které se vloží do varbinárních sloupců. Hodnoty nejsou vycpané na délku sloupce.

    Pokud je toto nastavení vypnuté, ovlivní pouze definici nových sloupců.

Důležitý

V budoucí verzi SQL Serveru budou ANSI_PADDING vždy zapnuté a všechny aplikace, které explicitně nastaví možnost VYPNUTO, způsobí chybu. Nepoužívejte tuto funkci v nové vývojové práci a naplánujte úpravu aplikací, které tuto funkci aktuálně používají. Doporučujeme, abyste vždy nastavili ANSI_PADDING na ZAPNUTO. ANSI_PADDING musí být zapnuté při vytváření nebo manipulaci s indexy ve vypočítaných sloupcích nebo indexovaných zobrazeních.

znak(n) a binární (n) sloupce, které umožňují vložit hodnoty null na délku sloupce, pokud je ANSI_PADDING nastavena na zapnuto. Koncové prázdné hodnoty a nuly se oříznou, když je ANSI_PADDING vypnutý. char(n) a binary(n) sloupce, které neumožňují, jsou vždy vycpané na délku sloupce.

Nastavení na úrovni připojení nastavená pomocí příkazu SET přepíší výchozí nastavení na úrovni databáze pro ANSI_PADDING. Klienti ODBC a OLE DB ve výchozím nastavení vydávají nastavení příkazu SET na úrovni připojení ANSI_PADDING zapnuto pro relaci. Klienti spustí příkaz při připojení k instanci SQL Serveru. Další informace naleznete v tématu SET ANSI_PADDING.

Stav této možnosti můžete určit prozkoumáním sloupce is_ansi_padding_on v zobrazení katalogu sys.databases. Stav můžete také určit prozkoumáním IsAnsiPaddingEnabled vlastnosti DATABASEPROPERTYEX.

ANSI_WARNINGS { ON | VYPNUTO }

  • NA

    Chyby nebo upozornění se vydávají v případě, že dojde k podmínkám, jako je dělení nulou. Chyby a upozornění se vydávají také v případech, kdy se hodnoty null zobrazují v agregačních funkcích.

  • PRYČ

    Při výskytu podmínek, jako je například dělení nulou, se nevrací žádná upozornění a hodnoty null se vrátí.

Poznámka

Nastavení ANSI_WARNINGS musí být při vytváření nebo provádění změn indexů ve vypočítaných sloupcích nebo indexovaných zobrazeních nastaveno na hodnotu ZAPNUTO.

Nastavení na úrovni připojení, která jsou nastavena pomocí příkazu SET, přepíší výchozí nastavení databáze pro ANSI_WARNINGS. Klienti ODBC a OLE DB ve výchozím nastavení vydávají nastavení příkazu SET na úrovni připojení ANSI_WARNINGS zapnuto pro relaci. Klienti spustí příkaz při připojení k instanci SQL Serveru. Další informace naleznete v tématu SET ANSI_WARNINGS.

Stav této možnosti můžete určit prozkoumáním sloupce is_ansi_warnings_on v zobrazení katalogu sys.databases. Stav můžete také určit prozkoumáním IsAnsiWarningsEnabled vlastnosti DATABASEPROPERTYEX.

ARITHABORT { ON | VYPNUTO }

  • NA

    Dotaz se ukončí, když během provádění dotazu dojde k chybě přetečení nebo dělení nulou.

  • PRYČ

    Při výskytu jedné z těchto chyb se zobrazí zpráva s upozorněním. Dotaz, dávka nebo transakce pokračuje v procesu, jako kdyby nedošlo k žádné chybě, i když se zobrazí upozornění.

Poznámka

Nastavení ARITHABORT musí být při vytváření nebo provádění změn indexů ve vypočítaných sloupcích nebo indexovaných zobrazeních nastaveno na hodnotu ZAPNUTO.

Stav této možnosti můžete určit prozkoumáním sloupce is_arithabort_on v zobrazení katalogu sys.databases. Stav můžete také určit prozkoumáním IsArithmeticAbortEnabled vlastnosti DATABASEPROPERTYEX.

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

Další informace naleznete v tématu ÚROVEŇ kompatibility ALTER DATABASE.

CONCAT_NULL_YIELDS_NULL { ON | VYPNUTO }

  • NA

    Výsledek operace zřetězení je NULL, pokud je oba operandy NULL. Například zřetězení řetězce znaků "This is" a NULL způsobí hodnotu NULL místo hodnoty "This is".

  • PRYČ

    Hodnota null je považována za prázdný řetězec znaků.

Poznámka

CONCAT_NULL_YIELDS_NULL musí být při vytváření nebo provádění změn indexů ve vypočítaných sloupcích nebo indexovaných zobrazeních nastavena na hodnotu ZAPNUTO.

V budoucí verzi SQL Serveru bude CONCAT_NULL_YIELDS_NULL vždy zapnuté a všechny aplikace, které explicitně nastavily možnost VYPNUTO, způsobí chybu. Nepoužívejte tuto funkci v nové vývojové práci a naplánujte úpravu aplikací, které tuto funkci aktuálně používají.

Nastavení na úrovni připojení, která jsou nastavena pomocí příkazu SET, přepíší výchozí nastavení databáze pro CONCAT_NULL_YIELDS_NULL. Ve výchozím nastavení vydávají klienti ODBC a OLE DB nastavení příkazu SET na úrovni připojení CONCAT_NULL_YIELDS_NULL pro relaci při připojování k instanci SQL Serveru. Další informace naleznete v tématu SET CONCAT_NULL_YIELDS_NULL.

Stav této možnosti můžete určit prozkoumáním sloupce is_concat_null_yields_null_on v zobrazení katalogu sys.databases. Stav můžete také určit prozkoumáním IsNullConcat vlastnosti DATABASEPROPERTYEX.

NUMERIC_ROUNDABORT { ON | VYPNUTO }

  • NA

    Při ztrátě přesnosti ve výrazu se vygeneruje chyba.

  • PRYČ

    Ztráta přesnosti nevygeneruje chybovou zprávu a výsledek se zaokrouhlí na přesnost sloupce nebo proměnné, do které se výsledek uloží.

Důležitý

NUMERIC_ROUNDABORT musí být při vytváření nebo změnách indexů ve vypočítaných sloupcích nebo indexovaných zobrazeních nastavena na hodnotu VYPNUTO.

Stav této možnosti můžete určit ve sloupci is_numeric_roundabort_on v zobrazení katalogu sys.databases. Stav můžete také určit prozkoumáním IsNumericRoundAbortEnabled vlastnosti DATABASEPROPERTYEX.

QUOTED_IDENTIFIER { ON | VYPNUTO }

  • NA

    Dvojité uvozovky lze použít k uzavření identifikátorů s oddělovači.

    Všechny řetězce oddělené dvojitými uvozovkami se interpretují jako identifikátory objektů. Identifikátory uvozových čísel nemusí dodržovat pravidla Transact-SQL identifikátorů. Můžou to být klíčová slova a můžou obsahovat znaky, které nejsou povolené v identifikátorech Transact-SQL. Pokud je uvozovka (") součástí identifikátoru, může být reprezentována dvěma uvozovkami ("").

  • PRYČ

    Identifikátory nemohou být v uvozovkách a musí dodržovat všechna pravidla Transact-SQL identifikátorů. Literály můžou být oddělené jednoduchými nebo dvojitými uvozovkami.

SQL Server také umožňuje oddělovat identifikátory hranatými závorkami ([ a ]). Identifikátory v hranatých závorkách je možné vždy použít bez ohledu na to, co je nastavení QUOTED_IDENTIFIER. Další informace naleznete v tématu Identifikátory databáze.

Při vytvoření tabulky je možnost QUOTED IDENTIFIER vždy uložena jako ON v metadatech tabulky. Tato možnost se uloží i v případě, že je tato možnost při vytváření tabulky nastavená na VYPNUTO.

Nastavení na úrovni připojení nastavená pomocí příkazu SET přepíší výchozí nastavení databáze pro QUOTED_IDENTIFIER. Klienti ODBC a OLE DB ve výchozím nastavení vydávají nastavení příkazu SET na úrovni připojení QUOTED_IDENTIFIER zapnuto. Klienti spustí příkaz při připojení k instanci SQL Serveru. Další informace naleznete v tématu SET QUOTED_IDENTIFIER.

Stav této možnosti můžete určit prozkoumáním sloupce is_quoted_identifier_on v zobrazení katalogu sys.databases. Stav můžete také určit prozkoumáním IsQuotedIdentifiersEnabled vlastnosti DATABASEPROPERTYEX.

RECURSIVE_TRIGGERS { ON | VYPNUTO }

  • NA

    Je povoleno rekurzivní aktivaci triggerů AFTER.

  • PRYČ

    Stav této možnosti můžete určit prozkoumáním sloupce is_recursive_triggers_on v zobrazení katalogu sys.databases. Stav můžete také určit prozkoumáním IsRecursiveTriggersEnabled vlastnosti DATABASEPROPERTYEX.

Poznámka

Pokud je RECURSIVE_TRIGGERS nastavená na VYPNUTO, zabrání se pouze přímá rekurze. Pokud chcete zakázat nepřímou rekurzi, musíte také nastavit možnost serveru vnořených triggerů na hodnotu 0.

Stav této možnosti můžete určit prozkoumáním sloupce is_recursive_triggers_on v zobrazení katalogu sys.databases nebo vlastností IsRecursiveTriggersEnabled funkce DATABASEPROPERTY EX.

<target_recovery_time_option> ::=

Určuje frekvenci nepřímých kontrolních bodů pro jednotlivé databáze. Počínaje SQL Serverem 2016 (13.x) je výchozí hodnota pro nové databáze 1 minutu, což znamená, že databáze používá nepřímé kontrolní body. Ve starších verzích je výchozí hodnota 0, což značí, že databáze používá automatické kontrolní body, jejichž frekvence závisí na nastavení intervalu obnovení instance serveru. Microsoft doporučuje pro většinu systémů 1 minutu.

TARGET_RECOVERY_TIME = target_recovery_time { SECONDS | MINUTES }

  • target_recovery_time

    Určuje maximální mez času obnovení zadané databáze v případě chybového ukončení. target_recovery_time je typ int.

  • SEKUNDY

    Označuje, že target_recovery_time se vyjadřuje jako počet sekund.

  • MINUTY

    Označuje, že target_recovery_time se vyjadřuje jako počet minut.

Další informace o nepřímých kontrolních bodech naleznete v tématu Databázové kontrolní body.

> ukončení <WITH::=

Určuje, kdy se mají vrátit neúplné transakce při přechodu databáze z jednoho stavu do druhého. Pokud je klauzule ukončení vynechána, příkaz ALTER DATABASE počká na neomezenou dobu, pokud je v databázi nějaký zámek. Lze zadat pouze jednu klauzuli ukončení a řídí se klauzulí SET.

Poznámka

Ne všechny možnosti databáze používají klauzuli> ukončení <WITH. Další informace najdete v tabulce v části Nastavení části Poznámky v tomto článku.

  • VRÁCENÍ ZPĚT PO celé číslo [SEKUNDY] | OKAMŽITÉ VRÁCENÍ ZPĚT

    Určuje, jestli se má vrátit zpět po zadaném počtu sekund nebo okamžitě.

  • NO_WAIT

    Určuje, že požadavek selže, pokud požadovaný stav databáze nebo změna možnosti nelze dokončit okamžitě. Dokončení okamžitě znamená, že nečeká na transakce, které se potvrdí nebo vrátí zpět samy.

<temporal_history_retention> ::=

Nastavení možností

Chcete-li načíst aktuální nastavení pro možnosti databáze, použijte zobrazení katalogu sys.databases nebo DATABASEPROPERTYEX

Po nastavení možnosti databáze se nové nastavení projeví okamžitě.

Výchozí hodnoty pro libovolnou z možností databáze pro všechny nově vytvořené databáze můžete změnit. Uděláte to tak, že v databázi model změníte příslušnou možnost databáze.

Ne všechny možnosti databáze používají klauzuli <ukončení> nebo je možné ji zadat v kombinaci s jinými možnostmi. Následující tabulka uvádí tyto možnosti a jejich možnosti a stav ukončení.

Kategorie Možnosti Lze zadat s dalšími možnostmi. Může použít klauzuli> ukončení <WITH.
<auto_option> Ano Ne
<change_tracking_option> Ano Ano
<cursor_option> Ano Ne
<db_encryption_option> Ano Ne
<db_update_option> Ano Ano
<db_user_access_option> Ano Ano
<delayed_durability_option> Ano Ano
<parameterization_option> Ano Ano
ALLOW_SNAPSHOT_ISOLATION Ne Ne
READ_COMMITTED_SNAPSHOT Ne Ano
MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT Ano Ano
DATE_CORRELATION_OPTIMIZATION Ano Ano
<sql_option> Ano Ne
<target_recovery_time_option> Ne Ano

Příklady

A. Nastavení databáze na READ_ONLY

Změna stavu databáze nebo skupiny souborů na READ_ONLY nebo READ_WRITE vyžaduje výhradní přístup k databázi a dokončení může trvat několik sekund. Následující příklad nastaví databázi na RESTRICTED_USER režim pro omezení přístupu. Příklad pak nastaví stav AdventureWorks2022 databáze na READ_ONLY a vrátí přístup k databázi všem uživatelům.

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

Nastavení databáze zpět do režimu čtení i zápisu:

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

Ověření:

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

B. Povolení izolace snímků v databázi

Následující příklad umožňuje architekturu izolace snímků pro databázi AdventureWorks2022.

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

Ověřte stav snapshot_isolation_framework v databázi.

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

Sada výsledků ukazuje, že je povolená architektura izolace snímků.

Jméno snapshot_isolation_state popis
[database_name] 1 NA

C. Povolení, úprava nebo zakázání sledování změn

Následující příklad umožňuje sledování změn pro databázi AdventureWorks2022 a nastaví dobu uchovávání na 2 dnů.

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

Následující příklad ukazuje, jak změnit dobu uchovávání na 3 dny.

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

Následující příklad ukazuje, jak zakázat sledování změn pro AdventureWorks2022 databázi.

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

D. Povolení úložiště dotazů

Následující příklad povolí úložiště dotazů a nakonfiguruje parametry úložiště dotazů.

--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. Povolení úložiště dotazů se statistikami čekání

Následující příklad povolí úložiště dotazů a nakonfiguruje jeho parametry.

--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. Povolení úložiště dotazů s vlastními možnostmi zásad zachycení

Následující příklad povolí úložiště dotazů a nakonfiguruje jeho parametry.

--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 Database

* SQL Managed Instance *  

 

Spravovaná instance Azure SQL

Úrovně kompatibility jsou SET možnosti, ale jsou popsány v úrovni kompatibility ALTER DATABASE.

Poznámka

Mnoho možností sady databází lze pro aktuální relaci nakonfigurovat pomocí příkazy SET a aplikace je často konfigurují při připojení. Možnosti sady na úrovni relace přepíší hodnoty ALTER DATABASE SET. Možnosti databáze popsané v následujících částech jsou hodnoty, které je možné nastavit pro relace, které explicitně neposkytují další nastavené hodnoty možností.

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 }

Argumenty

database_name

Název databáze, která se má upravit.

SOUČASNÝ

CURRENT spustí akci v aktuální databázi. CURRENT nejsou podporované pro všechny možnosti ve všech kontextech. Pokud CURRENT selže, zadejte název databáze.

<auto_option> ::=

Řídí automatické možnosti.

AUTO_CREATE_STATISTICS { ON | VYPNUTO }

  • NA

    Optimalizátor dotazů podle potřeby vytváří statistiky pro jednotlivé sloupce v predikátech dotazů, aby se zlepšily plány dotazů a výkon dotazů. Tyto statistiky s jedním sloupcem se vytvoří, když Optimalizátor dotazů zkompiluje dotazy. Statistiky s jedním sloupcem se vytvářejí jenom u sloupců, které ještě nejsou prvním sloupcem existujícího objektu statistiky.

    Výchozí hodnota je ZAPNUTÁ. Pro většinu databází doporučujeme použít výchozí nastavení.

  • PRYČ

    Optimalizátor dotazů při kompilaci dotazů nevytváří statistiky o jednotlivých sloupcích v predikátech dotazů. Nastavením této možnosti na vypnuto může dojít k neoptimálním plánům dotazů a snížení výkonu dotazů.

    Stav této možnosti můžete určit prozkoumáním sloupce is_auto_create_stats_on v zobrazení katalogu sys.databases. Stav můžete také určit prozkoumáním IsAutoCreateStatistics vlastnosti DATABASEPROPERTYEX.

    Další informace naleznete v části Možnosti statistiky v Statistika.

PŘÍRŮSTKOVÉ = ZAPNUTO | PRYČ

Nastavte AUTO_CREATE_STATISTICS na ZAPNUTO a nastavte PŘÍRŮSTKOVÉ na ZAPNUTO. Toto nastavení vytváří automaticky vytvořené statistiky jako přírůstkové, kdykoli jsou podporovány přírůstkové statistiky. Výchozí hodnota je VYPNUTÁ. Další informace naleznete v tématu CREATE STATISTICS.

AUTO_SHRINK { ON | VYPNUTO }

  • NA

    Soubory databáze jsou kandidáty na pravidelné zmenšení. Pokud nemáte konkrétní požadavek, nenastavujte možnost AUTO_SHRINK databáze na hodnotu ZAPNUTO. Další informace naleznete v tématu Zmenšení databáze.

    Datové soubory i soubory protokolu se dají automaticky zmenšit. AUTO_SHRINK zmenšuje velikost transakčního protokolu pouze v případě, že nastavíte databázi na JEDNODUCHÝ model obnovení nebo pokud zálohujete protokol. Pokud je tato možnost vypnutá, soubory databáze se při pravidelných kontrolách nevyužitého místa automaticky nezvětšují.

    Možnost AUTO_SHRINK způsobí, že se soubory zvětší, když více než 25 procent souboru obsahuje nevyužité místo. Tato možnost způsobí, že se soubor zmenší na jednu ze dvou velikostí. Zmenší se na tu, která je větší:

    • Velikost, ve které je 25 procent souboru nevyužité místo
    • Velikost souboru při jeho vytvoření

    Databázi jen pro čtení nemůžete zmenšit.

  • PRYČ

    Soubory databáze se při pravidelných kontrolách nevyužitého místa automaticky nezřetěší.

Stav této možnosti můžete určit prozkoumáním sloupce is_auto_shrink_on v zobrazení katalogu sys.databases. Stav můžete také určit prozkoumáním IsAutoShrink vlastnosti DATABASEPROPERTYEX.

Poznámka

Možnost AUTO_SHRINK není dostupná v databázi s omezením.

AUTO_UPDATE_STATISTICS { ON | VYPNUTO }

  • NA

    Určuje, že optimalizátor dotazů aktualizuje statistiky, když je používá dotaz a kdy může být zastaralý. Statistiky se po vložení, aktualizaci, odstranění nebo sloučení změní distribuci dat v tabulce nebo indexovém zobrazení. Optimalizátor dotazů určuje, kdy statistiky můžou být zastaralé, počítáním počtu úprav dat od poslední aktualizace statistiky a porovnáním počtu úprav s prahovou hodnotou. Prahová hodnota je založená na počtu řádků v tabulce nebo indexovaném zobrazení.

    Optimalizátor dotazů před kompilací dotazu zkontroluje zastaralé statistiky a spustí plán dotazů uložený v mezipaměti. Optimalizátor dotazů používá sloupce, tabulky a indexovaná zobrazení v predikáte dotazu k určení, které statistiky můžou být zastaralé. Optimalizátor dotazů určuje tyto informace před kompilací dotazu. Před spuštěním plánu dotazů v mezipaměti databázový stroj ověří, že plán dotazu odkazuje na up-tostatistiky -date.

    Možnost AUTO_UPDATE_STATISTICS se vztahuje na statistiky vytvořené pro indexy, jednosloupcové v predikátech dotazů a statistiky vytvořené pomocí příkazu CREATE STATISTICS. Tato možnost platí také pro filtrované statistiky.

    Výchozí hodnota je ZAPNUTÁ. Pro většinu databází doporučujeme použít výchozí nastavení.

    Pomocí možnosti AUTO_UPDATE_STATISTICS_ASYNC určete, jestli se statistiky aktualizují synchronně nebo asynchronně.

  • PRYČ

    Určuje, že optimalizátor dotazů neaktualizuje statistiky, když je používá dotaz. Optimalizátor dotazů také neaktualizuje statistiky, když můžou být zastaralé. Nastavením této možnosti na vypnuto může dojít k neoptimálním plánům dotazů a snížení výkonu dotazů.

Stav této možnosti můžete určit prozkoumáním sloupce is_auto_update_stats_on v zobrazení katalogu sys.databases. Stav můžete také určit prozkoumáním IsAutoUpdateStatistics vlastnosti DATABASEPROPERTYEX.

Další informace naleznete v části "Použití možností statistiky pro celou databázi" v Statistika.

AUTO_UPDATE_STATISTICS_ASYNC { ON | VYPNUTO }

  • NA

    Určuje, že aktualizace statistik pro možnost AUTO_UPDATE_STATISTICS jsou asynchronní. Optimalizátor dotazů nečeká na dokončení aktualizací statistik, než zkompiluje dotazy.

    Nastavení této možnosti na HODNOTU ON nemá žádný vliv, pokud není AUTO_UPDATE_STATISTICS nastavena na hodnotu ZAPNUTO.

    Ve výchozím nastavení je možnost AUTO_UPDATE_STATISTICS_ASYNC nastavená na VYPNUTO a optimalizátor dotazů aktualizuje statistiky synchronně.

  • PRYČ

    Určuje, že aktualizace statistik pro možnost AUTO_UPDATE_STATISTICS jsou synchronní. Optimalizátor dotazů čeká na dokončení aktualizací statistiky, než zkompiluje dotazy.

    Nastavení této možnosti na vypnuto nemá žádný vliv, pokud není AUTO_UPDATE_STATISTICS nastavena na zapnuto.

Stav této možnosti můžete určit prozkoumáním sloupce is_auto_update_stats_async_on v zobrazení katalogu sys.databases.

Další informace, které popisují, kdy použít synchronní nebo asynchronní statistiky aktualizace, naleznete v části Použití možností statistiky pro celou databázi v Statistika.

<automatic_tuning_option> ::=

Řídí automatické možnosti pro automatické ladění.

FORCE_LAST_GOOD_PLAN = { DEFAULT | ZAPNUTO | VYPNUTO }

Povolí nebo zakáže FORCE_LAST_GOOD_PLANmožnost automatického ladění.

  • VÝCHOZÍ

    Výchozí hodnota služby Azure SQL Managed Instance je zapnutá.

  • NA

    Databázový stroj automaticky vynutí poslední známý dobrý plán na Transact-SQL dotazy, kde nový plán dotazů způsobuje regrese výkonu. Databázový stroj nepřetržitě monitoruje výkon dotazů Transact-SQL dotazu s vynuceným plánem. Pokud dojde k nárůstu výkonu, databázový stroj bude dál používat poslední známý dobrý plán. Pokud se nezjistí zvýšení výkonu, databázový stroj vytvoří nový plán dotazu. Příkaz selže, pokud úložiště dotazů není povolené nebo není v režimu pro čtení i zápis. Toto je výchozí hodnota.

  • PRYČ

    Databázový stroj hlásí potenciální regrese výkonu dotazů způsobené změnami plánu dotazů v zobrazení sys.dm_db_tuning_recommendations. Tato doporučení se ale nepoužijí automaticky. Uživatelé můžou monitorovat aktivní doporučení a opravovat zjištěné problémy pomocí Transact-SQL skriptů zobrazených v zobrazení.

<change_tracking_option> ::=

Řídí možnosti sledování změn. Můžete povolit sledování změn, nastavit možnosti, možnosti změn a zakázat sledování změn. Příklady najdete v části Příklady dále v tomto článku.

  • NA

    Povolí sledování změn pro databázi. Když povolíte sledování změn, můžete také nastavit možnosti AUTOMATICKÉHO VYČIŠTĚNÍ a UCHOVÁVÁNÍ ZMĚN.

AUTO_CLEANUP = { ON | VYPNUTO }

  • NA

    Informace o sledování změn se po zadané době uchovávání automaticky odeberou.

  • PRYČ

    Data sledování změn se z databáze neodeberou.

CHANGE_RETENTION = retention_period { DAYS | HODINY | MINUTES }

Určuje minimální dobu pro uchovávání informací o sledování změn v databázi. Data se odeberou jenom v případech, kdy je hodnota AUTO_CLEANUP zapnutá.

retention_period je celé číslo, které určuje číselnou součást doby uchovávání.

Výchozí doba uchovávání je 2 dny. Minimální doba uchovávání je 1 minuta. Výchozí typ uchovávání je DAYS.

  • PRYČ

    Zakáže sledování změn pro databázi. Před zakázání sledování změn v databázi zakažte sledování změn u všech tabulek.

<cursor_option> ::=

Řídí možnosti kurzoru.

CURSOR_CLOSE_ON_COMMIT { ON | VYPNUTO }

  • NA

    Všechny kurzory otevřené při potvrzení nebo vrácení transakce se zavře.

  • PRYČ

    Kurzory zůstávají otevřené při potvrzení transakce; vrácení transakce zpět zavře všechny kurzory s výjimkou těch definovaných jako INSENSITIVE nebo STATIC.

Nastavení na úrovni připojení, která jsou nastavená pomocí příkazu SET, přepíší výchozí nastavení databáze pro CURSOR_CLOSE_ON_COMMIT. Klienti ODBC a OLE DB vydávají nastavení příkazu SET na úrovni připojení CURSOR_CLOSE_ON_COMMIT pro relaci ve výchozím nastavení vypnuto. Klienti spustí příkaz při připojení k instanci SQL Serveru. Další informace naleznete v tématu SET CURSOR_CLOSE_ON_COMMIT.

Stav této možnosti můžete určit prozkoumáním sloupce is_cursor_close_on_commit_on v zobrazení katalogu sys.databases nebo vlastnosti IsCloseCursorsOnCommitEnabled funkce DATABASEPROPERTYEX. Kurzor je implicitně uvolněn pouze při odpojení. Další informace naleznete v tématu DECLARE CURSOR.

<db_encryption_option> ::=

Řídí stav šifrování databáze.

ŠIFROVÁNÍ { ZAPNUTO | VYPNUTO }

Nastaví databázi tak, aby byla zašifrována (ZAPNUTO) nebo není zašifrovaná (VYPNUTO). Další informace o šifrování databáze najdete v tématu transparentního šifrování dat (TDE)a transparentního šifrování dat pro službu Azure SQL Database, azure SQL Managed Instance aAzure Synapse Analytics.

Pokud je šifrování povolené na úrovni databáze, všechny skupiny souborů se šifrují. Všechny nové skupiny souborů dědí zašifrovanou vlastnost. Pokud jsou některé skupiny souborů v databázi nastaveny jen pro čtení, operace šifrování databáze selže.

Stav šifrování databáze můžete zobrazit pomocí zobrazení sys.dm_database_encryption_keys dynamické správy.

<delayed_durability_option> ::=

Určuje, zda transakce potvrdí plně trvalé nebo zpožděné trvalé.

  • INVALIDNÍ

    Všechny transakce následující SET DISABLED jsou plně odolné. Všechny možnosti odolnosti nastavené v atomovém bloku nebo příkazu commit jsou ignorovány.

  • POVOLENÝ

    Všechny transakce následující SET ALLOWED jsou buď plně odolné nebo zpožděné, v závislosti na možnosti stálosti nastavené v atomovém bloku nebo příkazu commit.

  • VYNUCENÝ

    Všechny transakce následující SET FORCED jsou zpožděné trvalé. Všechny možnosti odolnosti nastavené v atomovém bloku nebo příkazu commit jsou ignorovány.

<PARAMETERIZATION_option> ::=

Řídí možnost parametrizace.

PARAMETRIZACE { SIMPLE | FORCED }

  • JEDNODUCHÝ

    Dotazy jsou parametrizovány na základě výchozího chování databáze.

  • VYNUCENÝ

SQL Server parametrizuje všechny dotazy v databázi.

Aktuální nastavení této možnosti lze určit prozkoumáním sloupce is_parameterization_forced v zobrazení katalogu sys.databases.

<query_store_options> ::=

  • ZAPNUTO | VYPNUTO | CLEAR [ ALL ]

    Určuje, jestli je v této databázi povolené úložiště dotazů, a také určuje odebrání obsahu úložiště dotazů.

    • NA

      Povolí úložiště dotazů.

    • PRYČ

      Zakáže úložiště dotazů. Toto je výchozí hodnota.

    • JASNÝ

      Odeberte obsah úložiště dotazů.

OPERATION_MODE

Popisuje režim operace úložiště dotazů. Platné hodnoty jsou READ_ONLY a READ_WRITE. V READ_WRITE režimu úložiště dotazů shromažďuje a uchovává informace o plánu dotazu a spouštění za běhu. V READ_ONLY režimu je možné informace číst z úložiště dotazů, ale nepřidají se nové informace. Pokud došlo k vyčerpání maximálního přiděleného prostoru úložiště dotazů, změní úložiště dotazů režim operace na READ_ONLY.

CLEANUP_POLICY

Popisuje zásady uchovávání dat úložiště dotazů. STALE_QUERY_THRESHOLD_DAYS určuje počet dnů, po které se informace pro dotaz uchovávají v úložišti dotazů. STALE_QUERY_THRESHOLD_DAYS je typ bigint. Výchozí hodnota je 30. Pro edici SQL Database Basic je výchozí 7 dnů.

DATA_FLUSH_INTERVAL_SECONDS

Určuje frekvenci, s jakou se data zapsaná do úložiště dotazů zachovají na disk. Kvůli optimalizaci výkonu se data shromážděná úložištěm dotazů asynchronně zapisují na disk. Frekvence, s jakou k tomuto asynchronnímu přenosu dochází, je nakonfigurována pomocí argumentu DATA_FLUSH_INTERVAL_SECONDS. DATA_FLUSH_INTERVAL_SECONDS je typ bigint. Výchozí hodnota je 900 (15 min).

MAX_STORAGE_SIZE_MB

Určuje prostor přidělený úložišti dotazů. MAX_STORAGE_SIZE_MB je typ bigint. Výchozí hodnota je 100 MB.

MAX_STORAGE_SIZE_MB limit není striktně vynucený. Velikost úložiště se kontroluje jenom v případech, kdy úložiště dotazů zapisuje data na disk. Tento interval je nastaven možností DATA_FLUSH_INTERVAL_SECONDS nebo možností dialogového okna Úložiště dotazů v sadě Management Studio Interval vyprázdnění dat. Výchozí hodnota intervalu je 900 sekund (nebo 15 minut).

Pokud úložiště dotazů porušilo limit MAX_STORAGE_SIZE_MB mezi kontrolami velikosti úložiště, přejde do režimu jen pro čtení. Pokud je povolená SIZE_BASED_CLEANUP_MODE, aktivuje se také mechanismus čištění, který vynucuje limit MAX_STORAGE_SIZE_MB.

Jakmile se vymaže dostatek místa, režim úložiště dotazů se automaticky přepne zpět na čtení i zápis.

Důležitý

  • Pokud si myslíte, že zachytávání úloh vyžaduje více než 10 GB místa na disku, měli byste pravděpodobně znovu zvážit a optimalizovat úlohy tak, aby opakovaně používaly plány dotazů (například pomocí vynucené parametrizacenebo upravte konfigurace úložiště dotazů.
  • Počínaje SQL Serverem 2019 (15.x) a v Azure SQL Database můžete nastavit QUERY_CAPTURE_MODE na VLASTNÍ, abyste získali další kontrolu nad zásadami zachytávání dotazů.
  • MAX_STORAGE_SIZE_MB limit nastavení je 10 240 MB ve službě Azure SQL Managed Instance.

INTERVAL_LENGTH_MINUTES

Určuje časový interval, ve kterém se data statistik spouštění modulu runtime agregují do úložiště dotazů. Pro optimalizaci využití místa se statistiky spouštění modulu runtime v úložišti statistik modulu runtime agregují v rámci pevného časového intervalu. Toto pevné časové okno je nakonfigurováno pomocí argumentu INTERVAL_LENGTH_MINUTES. INTERVAL_LENGTH_MINUTES je typ bigint. Výchozí hodnota je 60.

SIZE_BASED_CLEANUP_MODE = { AUTO | VYPNUTO }

Určuje, jestli se čištění aktivuje automaticky, když se celkové množství dat blíží maximální velikosti.

  • PRYČ

    Čištění na základě velikosti se neaktivuje automaticky.

  • AUTO

    Čištění na základě velikosti se automaticky aktivuje, když velikost na disku dosáhne 90% max_storage_size_mb. Čištění na základě velikosti nejprve odebere nejméně nákladné a nejstarší dotazy. Zastaví se přibližně na 80% max_storage_size_mb. Toto je výchozí hodnota konfigurace.

SIZE_BASED_CLEANUP_MODE je typ nvarchar.

QUERY_CAPTURE_MODE { ALL | AUTO | VLASTNÍ | NONE }

Určuje aktuálně aktivní režim zachytávání dotazů.

  • VŠICHNI

    Všechny dotazy jsou zachyceny.

  • AUTO

    Zachyťte relevantní dotazy na základě počtu spuštění a spotřeby prostředků. Toto je výchozí hodnota konfigurace pro Azure SQL Database.

  • ŽÁDNÝ

    Zastavte zachytávání nových dotazů. Úložiště dotazů nadále shromažďuje statistiky kompilace a modulu runtime pro dotazy, které už byly zachyceny. Tuto konfiguraci používejte s opatrností, protože byste mohli vynechat zachytávání důležitých dotazů.

QUERY_CAPTURE_MODE je typ nvarchar.

MAX_PLANS_PER_QUERY

Celé číslo představující maximální počet plánů udržovaných pro každý dotaz. MAX_PLANS_PER_QUERY je typ int. Výchozí hodnota je 200.

WAIT_STATS_CAPTURE_MODE { ON | VYPNUTO }

Určuje, jestli se zachytávají statistiky čekání na dotaz.

  • NA

    Zachytí se informace o statistikách čekání na dotaz. Tato hodnota je výchozí konfigurační hodnotou.

  • PRYČ

    Informace o statistikách čekání na dotaz se nezaznamenají.

<query_capture_policy_option_list> :: =

Řídí možnosti zásad zachycení úložiště dotazů. S výjimkou STALE_CAPTURE_POLICY_THRESHOLD tyto možnosti definují podmínky OR, ke kterým musí dojít, aby dotazy byly zachyceny v definované prahové hodnotě zásad zachytávání zastaralých.

STALE_CAPTURE_POLICY_THRESHOLD = celé číslo { DAYS | HODINY }

Definuje období intervalu vyhodnocení, které určuje, jestli se má dotaz zachytit. Výchozí hodnota je 1 den a dá se nastavit od 1 hodiny do sedmi dnů.

EXECUTION_COUNT = celočíselná

Definuje, kolikrát se dotaz provádí během období vyhodnocení. Výchozí hodnota je 30, což znamená, že pro výchozí prahovou hodnotu zastaralých zásad zachytávání musí dotaz provést nejméně 30krát za jeden den, aby se zachoval v úložišti dotazů. EXECUTION_COUNT je typ int.

TOTAL_COMPILE_CPU_TIME_MS = celočíselná

Definuje celkovou uplynulou dobu kompilace procesoru používanou dotazem během období vyhodnocení. Výchozí hodnota je 1000, což znamená, že pro výchozí prahovou hodnotu zastaralých zásad zachytávání musí mít dotaz celkem alespoň jednu sekundu času stráveného během kompilace dotazu v jednom dni, aby se zachoval v úložišti dotazů. TOTAL_COMPILE_CPU_TIME_MS je typ int.

TOTAL_EXECUTION_CPU_TIME_MS = celočíselná

Definuje celkovou uplynulou dobu výkonu procesoru používanou dotazem během období vyhodnocení. Výchozí hodnota je 100, což znamená, že pro výchozí prahovou hodnotu zastaralých zásad zachytávání musí mít dotaz celkem alespoň 100 ms času stráveného během provádění v jednom dni, aby se zachoval v úložišti dotazů. TOTAL_EXECUTION_CPU_TIME_MS je typ int.

<snapshot_option> ::=

Určuje úroveň izolace transakce.

ALLOW_SNAPSHOT_ISOLATION { ON | VYPNUTO }

  • NA

    Povolí možnost Snímek na úrovni databáze. Když je povolená, příkazy DML začnou generovat verze řádků, i když žádná transakce nepoužívá izolaci snímků. Po povolení této možnosti mohou transakce zadat úroveň izolace transakce SNAPSHOT. Když transakce běží na úrovni izolace SNAPSHOT, všechny příkazy uvidí snímek dat, protože existuje na začátku transakce. Pokud transakce spuštěná na úrovni izolace SNAPSHOT přistupuje k datům ve více databázích, musí být buď ALLOW_SNAPSHOT_ISOLATION nastavena na ON ve všech databázích, nebo každý příkaz v transakci musí používat zamykání nápovědy pro všechny odkazy v klauzuli FROM na tabulku v databázi, kde ALLOW_SNAPSHOT_ISOLATION je vypnutá.

  • PRYČ

    Vypne možnost Snímek na úrovni databáze. Transakce nemohou určit úroveň izolace transakce SNAPSHOT.

Když nastavíte ALLOW_SNAPSHOT_ISOLATION na nový stav (od ZAPNUTO do VYPNUTO nebo VYPNUTO na ZAPNUTO), funkce ALTER DATABASE nevrátí řízení volajícímu, dokud nebudou potvrzeny všechny existující transakce v databázi. Pokud je databáze již ve stavu zadaném v příkazu ALTER DATABASE, vrátí se ovládací prvek volajícímu okamžitě. Pokud příkaz ALTER DATABASE nevrací rychle, použijte sys.dm_tran_active_snapshot_database_transactions k určení, zda existují dlouhotrvající transakce. Pokud je příkaz ALTER DATABASE zrušen, databáze zůstane ve stavu, ve který byla spuštěna funkce ALTER DATABASE. Zobrazení katalogu sys.databases označuje stav transakcí izolace snímků v databázi. Pokud snapshot_isolation_state_desc = IN_TRANSITION_TO_ON, příkaz ALTER DATABASE ... ALLOW_SNAPSHOT_ISOLATION OFF pozastaví šest sekund a zkusí operaci zopakovat.

Pokud je databáze offline, nemůžete změnit stav ALLOW_SNAPSHOT_ISOLATION.

Můžete změnit nastavení ALLOW_SNAPSHOT_ISOLATION pro databáze master, model, msdba tempdb. Nastavení se uchovává při každém zastavení instance databázového stroje a restartování, pokud změníte nastavení pro tempdb. Pokud změníte nastavení systémové databáze model, stane se toto nastavení výchozím nastavením pro všechny nově vytvořené databáze s výjimkou tempdb.

Ve výchozím nastavení je tato možnost zapnutá pro databáze master a msdb.

Aktuální nastavení této možnosti lze určit prozkoumáním sloupce snapshot_isolation_state v zobrazení katalogu sys.databases.

READ_COMMITTED_SNAPSHOT { ON | VYPNUTO }

  • NA

    Povolí možnost Read-Committed Snímek na úrovni databáze. Když je povolená, příkazy DML začnou generovat verze řádků, i když žádná transakce nepoužívá izolaci snímků. Po povolení této možnosti transakce určující úroveň izolace READ COMMITTED místo uzamčení používají správu verzí řádků. Všechny příkazy vidí snímek dat, protože existuje na začátku příkazu, když transakce běží na úrovni izolace READ COMMITTED.

  • PRYČ

    Vypne možnost Read-Committed Snímek na úrovni databáze. Transakce určující úroveň izolace READ COMMITTED používají uzamčení.

Pokud chcete nastavit READ_COMMITTED_SNAPSHOT na ZAPNUTO nebo VYPNUTO, nesmí existovat žádná aktivní připojení k databázi s výjimkou připojení, které spouští příkaz ALTER DATABASE. Databáze ale nemusí být v režimu jednoho uživatele. Pokud je databáze offline, nemůžete změnit stav této možnosti.

READ_COMMITTED_SNAPSHOT nelze zapnout pro systémové databáze master, tempdbnebo msdb. Pokud změníte nastavení systémové databáze model, stane se toto nastavení výchozím nastavením pro všechny nově vytvořené databáze s výjimkou tempdb.

Aktuální nastavení této možnosti lze určit prozkoumáním sloupce is_read_committed_snapshot_on v zobrazení katalogu sys.databases.

Varování

Při vytvoření tabulky s DURABILITY = SCHEMA_ONLYa READ_COMMITTED_SNAPSHOT se následně změní pomocí ALTER DATABASE, data v tabulce budou ztracena.

MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT { ON | VYPNUTO }

  • NA

    Pokud je úroveň izolace transakce nastavena na libovolnou úroveň izolace nižší než SNAPSHOT, všechny interpretované Transact-SQL operace s tabulkami optimalizovanými pro paměť se spouští pod izolací SNAPSHOT. Příklady úrovní izolace nižší než snímky jsou READ COMMITTED nebo READ UNCOMMITTED. Tyto operace se spouští, jestli je úroveň izolace transakce nastavena explicitně na úrovni relace, nebo se implicitně používá výchozí hodnota.

  • PRYČ

    Nezvyšuje úroveň izolace transakcí pro interpretované operace Transact-SQL v tabulkách optimalizovaných pro paměť.

Pokud je databáze offline, nemůžete změnit stav MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT.

Výchozí hodnota je VYPNUTÁ.

Aktuální nastavení této možnosti lze určit prozkoumáním sloupce is_memory_optimized_elevate_to_snapshot_on v zobrazení katalogu sys.databases.

<sql_option> ::=

Řídí možnosti dodržování předpisů ANSI na úrovni databáze.

ANSI_NULL_DEFAULT { ON | VYPNUTO }

Určuje výchozí hodnotu, HODNOTU NULL nebo NOT NULL sloupce nebo uživatelem definovaný typ CLR, pro který není explicitně definována v příkazech CREATE TABLE nebo ALTER TABLE. Sloupce definované s omezeními se řídí pravidly omezení bez ohledu na to, co toto nastavení může být.

  • NA

    Výchozí hodnota je NULL.

  • PRYČ

    Výchozí hodnota není NULL.

Nastavení na úrovni připojení, která jsou nastavená pomocí příkazu SET, přepíší výchozí nastavení na úrovni databáze pro ANSI_NULL_DEFAULT. Klienti ODBC a OLE DB ve výchozím nastavení vydávají nastavení příkazu SET na úrovni připojení ANSI_NULL_DEFAULT zapnuto pro relaci. Klienti spustí příkaz při připojení k instanci SQL Serveru. Další informace naleznete v tématu SET ANSI_NULL_DFLT_ON.

V případě kompatibility ANSI nastavení možnosti databáze ANSI_NULL_DEFAULT na HODNOTU ON změní výchozí hodnotu databáze na HODNOTU NULL.

Stav této možnosti můžete určit prozkoumáním sloupce is_ansi_null_default_on v zobrazení katalogu sys.databases. Stav můžete také určit prozkoumáním IsAnsiNullDefault vlastnosti DATABASEPROPERTYEX.

ANSI_NULLS { ON | VYPNUTO }

  • NA

    Všechna porovnání s hodnotou null se vyhodnotí jako UNKNOWN.

  • PRYČ

    Porovnání hodnot, které nejsou unicode, na hodnotu null se vyhodnotí jako PRAVDA, pokud obě hodnoty mají hodnotu NULL.

Důležitý

V budoucí verzi SQL Serveru bude ANSI_NULLS vždy zapnuté a všechny aplikace, které explicitně nastavily možnost VYPNUTO, způsobí chybu. Nepoužívejte tuto funkci v nové vývojové práci a naplánujte úpravu aplikací, které tuto funkci aktuálně používají.

Nastavení na úrovni připojení, která jsou nastavena pomocí příkazu SET, přepíší výchozí nastavení databáze pro ANSI_NULLS. Klienti ODBC a OLE DB ve výchozím nastavení vydávají nastavení příkazu SET na úrovni připojení ANSI_NULLS zapnuto pro relaci. Klienti spustí příkaz při připojení k instanci SQL Serveru. Další informace naleznete v tématu SET ANSI_NULLS.

Důležitý

NASTAVENÍ ANSI_NULLS musí být také při vytváření nebo provádění změn indexů ve vypočítaných sloupcích nebo indexovaných zobrazeních nastaveno na hodnotu ZAPNUTO.

Stav této možnosti můžete určit prozkoumáním sloupce is_ansi_nulls_on v zobrazení katalogu sys.databases. Stav můžete také určit prozkoumáním IsAnsiNullsEnabled vlastnosti DATABASEPROPERTYEX.

ANSI_PADDING { ON | VYPNUTO }

  • NA

    Řetězce jsou před převodem vycpané na stejnou délku. Před vložením do varchar nebo nvarchar datového typu se také vložil na stejnou délku.

  • PRYČ

    Vloží koncové mezery v hodnotách znaků do varchar nebo nvarchar sloupců. Také ponechá koncové nuly v binárních hodnotách, které se vloží do varbinárních sloupců. Hodnoty nejsou vycpané na délku sloupce.

    Pokud je toto nastavení vypnuté, ovlivní pouze definici nových sloupců.

Důležitý

V budoucí verzi SQL Serveru budou ANSI_PADDING vždy zapnuté a všechny aplikace, které explicitně nastaví možnost VYPNUTO, způsobí chybu. Nepoužívejte tuto funkci v nové vývojové práci a naplánujte úpravu aplikací, které tuto funkci aktuálně používají. Doporučujeme, abyste vždy nastavili ANSI_PADDING na ZAPNUTO. ANSI_PADDING musí být zapnuté při vytváření nebo manipulaci s indexy ve vypočítaných sloupcích nebo indexovaných zobrazeních.

znak(n) a binární (n) sloupce, které umožňují vložit hodnoty null na délku sloupce, pokud je ANSI_PADDING nastavena na zapnuto. Koncové prázdné hodnoty a nuly se oříznou, když je ANSI_PADDING vypnutý. char(n) a binary(n) sloupce, které neumožňují, jsou vždy vycpané na délku sloupce.

Nastavení na úrovni připojení nastavená pomocí příkazu SET přepíší výchozí nastavení na úrovni databáze pro ANSI_PADDING. Klienti ODBC a OLE DB ve výchozím nastavení vydávají nastavení příkazu SET na úrovni připojení ANSI_PADDING zapnuto pro relaci. Klienti spustí příkaz při připojení k instanci SQL Serveru. Další informace naleznete v tématu SET ANSI_PADDING.

Stav této možnosti můžete určit prozkoumáním sloupce is_ansi_padding_on v zobrazení katalogu sys.databases. Stav můžete také určit prozkoumáním IsAnsiPaddingEnabled vlastnosti DATABASEPROPERTYEX.

ANSI_WARNINGS { ON | VYPNUTO }

  • NA

    Chyby nebo upozornění se vydávají v případě, že dojde k podmínkám, jako je dělení nulou. Chyby a upozornění se vydávají také v případech, kdy se hodnoty null zobrazují v agregačních funkcích.

  • PRYČ

    Při výskytu podmínek, jako je například dělení nulou, se nevrací žádná upozornění a hodnoty null se vrátí.

Důležitý

Nastavení ANSI_WARNINGS musí být při vytváření nebo provádění změn indexů ve vypočítaných sloupcích nebo indexovaných zobrazeních nastaveno na hodnotu ZAPNUTO.

Nastavení na úrovni připojení, která jsou nastavena pomocí příkazu SET, přepíší výchozí nastavení databáze pro ANSI_WARNINGS. Klienti ODBC a OLE DB ve výchozím nastavení vydávají nastavení příkazu SET na úrovni připojení ANSI_WARNINGS zapnuto pro relaci. Klienti spustí příkaz při připojení k instanci SQL Serveru. Další informace naleznete v tématu SET ANSI_WARNINGS.

Stav této možnosti můžete určit prozkoumáním sloupce is_ansi_warnings_on v zobrazení katalogu sys.databases. Stav můžete také určit prozkoumáním IsAnsiWarningsEnabled vlastnosti DATABASEPROPERTYEX.

ARITHABORT { ON | VYPNUTO }

  • NA

    Dotaz se ukončí, když během provádění dotazu dojde k chybě přetečení nebo dělení nulou.

  • PRYČ

    Při výskytu jedné z těchto chyb se zobrazí zpráva s upozorněním. Dotaz, dávka nebo transakce pokračuje v procesu, jako kdyby nedošlo k žádné chybě, i když se zobrazí upozornění.

Důležitý

Nastavení ARITHABORT musí být při vytváření nebo provádění změn indexů ve vypočítaných sloupcích nebo indexovaných zobrazeních nastaveno na hodnotu ZAPNUTO.

Stav této možnosti můžete určit prozkoumáním sloupce is_arithabort_on v zobrazení katalogu sys.databases. Stav můžete také určit prozkoumáním IsArithmeticAbortEnabled vlastnosti DATABASEPROPERTYEX.

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

Další informace naleznete v tématu ÚROVEŇ kompatibility ALTER DATABASE.

CONCAT_NULL_YIELDS_NULL { ON | VYPNUTO }

  • NA

    Výsledek operace zřetězení je NULL, pokud je oba operandy NULL. Například zřetězení řetězce znaků "This is" a NULL způsobí hodnotu NULL místo hodnoty "This is".

  • PRYČ

    Hodnota null je považována za prázdný řetězec znaků.

Důležitý

CONCAT_NULL_YIELDS_NULL musí být při vytváření nebo provádění změn indexů ve vypočítaných sloupcích nebo indexovaných zobrazeních nastavena na hodnotu ZAPNUTO.

V budoucí verzi SQL Serveru bude CONCAT_NULL_YIELDS_NULL vždy zapnuté a všechny aplikace, které explicitně nastavily možnost VYPNUTO, způsobí chybu. Nepoužívejte tuto funkci v nové vývojové práci a naplánujte úpravu aplikací, které tuto funkci aktuálně používají.

Nastavení na úrovni připojení, která jsou nastavena pomocí příkazu SET, přepíší výchozí nastavení databáze pro CONCAT_NULL_YIELDS_NULL. Ve výchozím nastavení vydávají klienti ODBC a OLE DB nastavení příkazu SET na úrovni připojení CONCAT_NULL_YIELDS_NULL pro relaci při připojování k instanci SQL Serveru. Další informace naleznete v tématu SET CONCAT_NULL_YIELDS_NULL.

Stav této možnosti můžete určit prozkoumáním sloupce is_concat_null_yields_null_on v zobrazení katalogu sys.databases. Stav můžete také určit prozkoumáním IsNullConcat vlastnosti DATABASEPROPERTYEX.

NUMERIC_ROUNDABORT { ON | VYPNUTO }

  • NA

    Při ztrátě přesnosti ve výrazu se vygeneruje chyba.

  • PRYČ

    Ztráta přesnosti nevygeneruje chybovou zprávu a výsledek se zaokrouhlí na přesnost sloupce nebo proměnné, do které se výsledek uloží.

Důležitý

NUMERIC_ROUNDABORT musí být při vytváření nebo změnách indexů ve vypočítaných sloupcích nebo indexovaných zobrazeních nastavena na hodnotu VYPNUTO.

Stav této možnosti můžete určit ve sloupci is_numeric_roundabort_on v zobrazení katalogu sys.databases. Stav můžete také určit prozkoumáním IsNumericRoundAbortEnabled vlastnosti DATABASEPROPERTYEX.

QUOTED_IDENTIFIER { ON | VYPNUTO }

  • NA

    Dvojité uvozovky lze použít k uzavření identifikátorů s oddělovači.

    Všechny řetězce oddělené dvojitými uvozovkami se interpretují jako identifikátory objektů. Identifikátory uvozových čísel nemusí dodržovat pravidla Transact-SQL identifikátorů. Můžou to být klíčová slova a můžou obsahovat znaky, které nejsou povolené v identifikátorech Transact-SQL. Pokud je uvozovka (") součástí identifikátoru, může být reprezentována dvěma uvozovkami ("").

  • PRYČ

    Identifikátory nemohou být v uvozovkách a musí dodržovat všechna pravidla Transact-SQL identifikátorů. Literály můžou být oddělené jednoduchými nebo dvojitými uvozovkami.

SQL Server také umožňuje oddělovat identifikátory hranatými závorkami ([ a ]). Identifikátory v hranatých závorkách je možné vždy použít bez ohledu na to, co je nastavení QUOTED_IDENTIFIER. Další informace naleznete v tématu Identifikátory databáze.

Při vytvoření tabulky je možnost QUOTED IDENTIFIER vždy uložena jako ON v metadatech tabulky. Tato možnost se uloží i v případě, že je tato možnost při vytváření tabulky nastavená na VYPNUTO.

Nastavení na úrovni připojení nastavená pomocí příkazu SET přepíší výchozí nastavení databáze pro QUOTED_IDENTIFIER. Klienti ODBC a OLE DB ve výchozím nastavení vydávají nastavení příkazu SET na úrovni připojení QUOTED_IDENTIFIER zapnuto. Klienti spustí příkaz při připojení k instanci SQL Serveru. Další informace naleznete v tématu SET QUOTED_IDENTIFIER.

Stav této možnosti můžete určit prozkoumáním sloupce is_quoted_identifier_on v zobrazení katalogu sys.databases. Stav můžete také určit prozkoumáním IsQuotedIdentifiersEnabled vlastnosti DATABASEPROPERTYEX.

RECURSIVE_TRIGGERS { ON | VYPNUTO }

  • NA

    Je povoleno rekurzivní aktivaci triggerů AFTER.

  • PRYČ

    Stav této možnosti můžete určit prozkoumáním sloupce is_recursive_triggers_on v zobrazení katalogu sys.databases. Stav můžete také určit prozkoumáním IsRecursiveTriggersEnabled vlastnosti DATABASEPROPERTYEX.

    Poznámka

    Pokud je RECURSIVE_TRIGGERS nastavená na VYPNUTO, zabrání se pouze přímá rekurze. Pokud chcete zakázat nepřímou rekurzi, musíte také nastavit možnost serveru vnořených triggerů na hodnotu 0.

Stav této možnosti můžete určit prozkoumáním sloupce is_recursive_triggers_on v zobrazení katalogu sys.databases nebo vlastností IsRecursiveTriggersEnabled funkce DATABASEPROPERTY EX.

<target_recovery_time_option> ::=

target_recovery_time_option se ve službě Azure SQL Managed Instance nepodporuje.

Určuje frekvenci nepřímých kontrolních bodů pro jednotlivé databáze. Počínaje SQL Serverem 2016 (13.x) je výchozí hodnota pro nové databáze 1 minutu, což znamená, že databáze používá nepřímé kontrolní body. Ve starších verzích je výchozí hodnota 0, což značí, že databáze používá automatické kontrolní body, jejichž frekvence závisí na nastavení intervalu obnovení instance serveru. Microsoft doporučuje pro většinu systémů 1 minutu.

> ukončení <WITH::=

Určuje, kdy se mají vrátit neúplné transakce při přechodu databáze z jednoho stavu do druhého. Pokud je klauzule ukončení vynechána, příkaz ALTER DATABASE počká na neomezenou dobu, pokud je v databázi nějaký zámek. Lze zadat pouze jednu klauzuli ukončení a řídí se klauzulí SET.

Poznámka

Ne všechny možnosti databáze používají klauzuli> ukončení <WITH. Další informace najdete v tabulce v části Nastavení části Poznámky v tomto článku.

  • VRÁCENÍ ZPĚT PO celé číslo [SEKUNDY] | OKAMŽITÉ VRÁCENÍ ZPĚT

    Určuje, jestli se má vrátit zpět po zadaném počtu sekund nebo okamžitě.

  • NO_WAIT

    Určuje, že požadavek selže, pokud požadovaný stav databáze nebo změna možnosti nelze dokončit okamžitě. Dokončení okamžitě znamená, že nečeká na transakce, které se potvrdí nebo vrátí zpět samy.

<temporal_history_retention> ::=

Nastavení možností

Chcete-li načíst aktuální nastavení pro možnosti databáze, použijte zobrazení katalogu sys.databases nebo DATABASEPROPERTYEX

Po nastavení možnosti databáze se nové nastavení projeví okamžitě.

Výchozí hodnoty pro libovolnou z možností databáze pro všechny nově vytvořené databáze můžete změnit. Uděláte to tak, že v systémové databázi model změníte příslušnou možnost databáze.

Příklady

A. Povolení izolace snímků v databázi

Následující příklad umožňuje architekturu izolace snímků pro databázi AdventureWorks2022.

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

Sada výsledků ukazuje, že je povolená architektura izolace snímků.

Jméno snapshot_isolation_state popis
[database_name] 1 NA

B. Povolení, úprava nebo zakázání sledování změn

Následující příklad umožňuje sledování změn pro databázi AdventureWorks2022 a nastaví dobu uchovávání na 2 dnů.

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

Následující příklad ukazuje, jak změnit dobu uchovávání na 3 dnů.

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

Následující příklad ukazuje, jak zakázat sledování změn pro AdventureWorks2022 databázi.

ALTER DATABASE [database_name]
SET CHANGE_TRACKING = OFF;

C. Povolení úložiště dotazů

Následující příklad povolí úložiště dotazů a nakonfiguruje parametry úložiště dotazů.

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. Povolení úložiště dotazů se statistikami čekání

Následující příklad povolí úložiště dotazů a nakonfiguruje jeho parametry.

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. Povolení úložiště dotazů s vlastními možnostmi zásad zachycení

Následující příklad povolí úložiště dotazů a nakonfiguruje jeho parametry.

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

spravované instance SQL

* Azure Synapse
Analýza *
 

 

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 }
}

Argumenty

database_name

Název databáze, která se má upravit.

<auto_option> ::=

Řídí automatické možnosti.

AUTO_CREATE_STATISTICS { ON | VYPNUTO }

  • NA

    Optimalizátor dotazů podle potřeby vytváří statistiky pro jednotlivé sloupce v predikátech dotazů, aby se zlepšily plány dotazů a výkon dotazů. Tyto statistiky s jedním sloupcem se vytvoří, když Optimalizátor dotazů zkompiluje dotazy. Statistiky s jedním sloupcem se vytvářejí jenom u sloupců, které ještě nejsou prvním sloupcem existujícího objektu statistiky.

    Výchozí hodnota je ZAPNUTÁ. Pro většinu databází doporučujeme použít výchozí nastavení.

  • PRYČ

    Optimalizátor dotazů při kompilaci dotazů nevytváří statistiky o jednotlivých sloupcích v predikátech dotazů. Nastavením této možnosti na vypnuto může dojít k neoptimálním plánům dotazů a snížení výkonu dotazů.

Tento příkaz musí být spuštěn při připojení k uživatelské databázi.

Stav této možnosti můžete určit prozkoumáním sloupce is_auto_create_stats_on v zobrazení katalogu sys.databases. Stav můžete také určit prozkoumáním IsAutoCreateStatistics vlastnosti DATABASEPROPERTYEX.

Další informace naleznete v části "Použití možností statistiky pro celou databázi" v Statistika.

<db_encryption_option> ::=

Řídí stav šifrování databáze.

ŠIFROVÁNÍ { ZAPNUTO | VYPNUTO }

  • NA

    Nastaví databázi, která se má šifrovat.

  • PRYČ

    Nastaví databázi tak, aby nebyla šifrovaná.

Další informace o šifrování databáze najdete v tématu transparentního šifrování dat (TDE)a transparentního šifrování dat pro službu Azure SQL Database, azure SQL Managed Instance aAzure Synapse Analytics.

Pokud je šifrování povolené na úrovni databáze, všechny skupiny souborů se šifrují. Všechny nové skupiny souborů dědí zašifrovanou vlastnost. Pokud jsou některé skupiny souborů v databázi nastaveny jen pro čtení, operace šifrování databáze selže.

Stav šifrování databáze a stav kontroly šifrování můžete zobrazit pomocí zobrazení dynamické správy sys.dm_database_encryption_keys.

<query_store_option> ::=

Určuje, jestli je v tomto datovém skladu povolené úložiště dotazů.

QUERY_STORE { ON | VYPNUTO }

  • NA

    Povolí úložiště dotazů.

  • PRYČ

    Zakáže úložiště dotazů. Vypnuto je výchozí hodnota.

Poznámka

Pro Azure Synapse Analytics musíte spustit ALTER DATABASE SET QUERY_STORE z uživatelské databáze. Provádění příkazu z jiné instance datového skladu se nepodporuje.

Poznámka

Pro Azure Synapse Analytics je možné úložiště dotazů povolit jako na jiných platformách, ale další možnosti konfigurace se nepodporují.

<result_set_caching_option> ::=

platí pro: Azure Synapse Analytics

Určuje, zda je výsledek dotazu uložen v mezipaměti v databázi.

RESULT_SET_CACHING { ON | VYPNUTO }

  • NA

    Určuje, že sady výsledků dotazu vrácené z této databáze jsou uloženy v mezipaměti v databázi.

  • PRYČ

    Určuje, že sady výsledků dotazu vrácené z této databáze nejsou uloženy v mezipaměti v databázi.

Tento příkaz musí být spuštěn při připojení k databázi master. Změna tohoto nastavení databáze se projeví okamžitě. Náklady na úložiště se účtují ukládáním sad výsledků dotazů do mezipaměti. Po zakázání ukládání výsledků do mezipaměti databáze se z úložiště Azure Synapse okamžitě odstraní dříve trvalá mezipaměť výsledků.

Spuštěním tohoto příkazu zkontrolujte konfiguraci ukládání do mezipaměti sady výsledků databáze. Pokud je ukládání sady výsledků do mezipaměti zapnuté, is_result_set_caching_on vrátí hodnotu 1.

SELECT name, is_result_set_caching_on FROM sys.databases
WHERE name = <'Your_Database_Name'>

Spuštěním tohoto příkazu zkontrolujte, jestli byl dotaz proveden pomocí výsledku uloženého v mezipaměti. Sloupec result_cache_hit vrátí hodnotu 1 pro dosažení mezipaměti, 0 pro chybějící mezipaměť a záporné hodnoty z důvodů, proč se nepoužila mezipaměť sady výsledků. Podrobnosti najdete v 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'>

Poznámka

Ukládání sady výsledků do mezipaměti by nemělo být použito ve spojení s DECRYPTBYKEY. Pokud je potřeba tuto kryptografickou funkci použít, ujistěte se, že je v době provádění zakázané ukládání do mezipaměti (buď na na úrovni relace, nebo databáze).

Důležitý

Operace pro vytvoření mezipaměti sady výsledků a načtení dat z mezipaměti probíhají na řídicím uzlu instance datového skladu. Pokud je ukládání sad výsledků do mezipaměti zapnuté, můžou spuštěné dotazy, které vrací velkou sadu výsledků (například >1 milion řádků), způsobit vysoké využití procesoru na řídicím uzlu a zpomalit celkovou odpověď na dotazy v instanci. Tyto dotazy se běžně používají při zkoumání dat nebo operacích ETL. Aby se zabránilo stresu řídicího uzlu a problému s výkonem, uživatelé by před spuštěním těchto typů dotazů měli vypnout ukládání sad výsledků do mezipaměti v databázi.

Podrobnosti o ladění výkonu s ukládáním sady výsledků do mezipaměti najdete v pokyny k ladění výkonu.

Dovolení

Aby uživatel nastavil možnost RESULT_SET_CACHING, potřebuje přihlášení objektu zabezpečení na úrovni serveru (ten vytvořený procesem zřizování) nebo být členem role databáze dbmanager.

<snapshot_option> ::=

platí pro: Azure Synapse Analytics

Řídí úroveň izolace transakcí databáze.

READ_COMMITTED_SNAPSHOT { ON | VYPNUTO }

  • NA

    Povolí možnost READ_COMMITTED_SNAPSHOT na úrovni databáze.

  • PRYČ

    Vypněte možnost READ_COMMITTED_SNAPSHOT na úrovni databáze.

Tento příkaz musí být spuštěn při připojení k databázi master. Zapnutí nebo vypnutí READ_COMMITTED_SNAPSHOT pro uživatelskou databázi ukončí všechna otevřená připojení k této databázi. Tuto změnu byste měli provést během časového období údržby databáze nebo počkat, dokud nedojde k žádnému aktivnímu připojení k databázi s výjimkou připojení, které spouští příkaz ALTER DATABASE. Databáze nemusí být v režimu jednoho uživatele. Změna nastavení READ_COMMITTED_SNAPSHOT na úrovni relace se nepodporuje. Chcete-li ověřit toto nastavení pro databázi, zkontrolujte sloupec is_read_committed_snapshot_on v sys.databases.

V databázi s povolenou READ_COMMITTED_SNAPSHOT mohou dotazy zaznamenat pomalejší výkon kvůli kontrole verzí, pokud existuje více datových verzí. Dlouhotrvající transakce můžou také způsobit zvětšení velikosti databáze. K tomuto problému dochází v případě, že dojde ke změnám dat těmito transakcemi, které blokují vyčištění verze.

Dovolení

Aby uživatel nastavil možnost READ_COMMITTED_SNAPSHOT, potřebuje pro databázi oprávnění ALTER.

Příklady

Kontrola nastavení statistiky pro databázi

SELECT name, is_auto_create_stats_on FROM sys.databases

Povolení úložiště dotazů pro databázi

ALTER DATABASE [database_name]
SET QUERY_STORE = ON;

Povolení ukládání sad výsledků do mezipaměti pro databázi

-- Run this command when connecting to the MASTER database

ALTER DATABASE [database_name]
SET RESULT_SET_CACHING ON;

Kontrola nastavení ukládání do mezipaměti sady výsledků pro databázi

SELECT name, is_result_set_caching_on
FROM sys.databases;

Povolení možnosti Read_Committed_Snapshot pro databázi

Spusťte tento příkaz při připojování k databázi master.

ALTER DATABASE MyDatabase
SET READ_COMMITTED_SNAPSHOT ON;

SQL Database

spravované instance SQL

Microsoft Fabric

 

Microsoft Fabric

Ke správě služby Microsoft Fabric Warehouse použijte ALTER DATABASE ... SET.

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
}

Poznámky

V současné době pozastavení publikování protokolů Delta Lake a zakázání chování objednávky V-Order ve skladu se používají pouze pro ALTER DATABASE ... SET v Microsoft Fabric.

Dovolení

Uživatel musí být členem role Správce, Člen nebo Přispěvatel v pracovním prostoru Prostředky infrastruktury.

Příklady

A. Pozastavení publikování protokolů Delta Lake

Následující příkaz T-SQL pozastaví publikování protokolu Delta Lake v kontextu aktuálního skladu.

ALTER DATABASE CURRENT SET DATA_LAKE_LOG_PUBLISHING = PAUSED;

Pokud chcete zkontrolovat aktuální stav publikování protokolu Delta Lake ve všech skladech ve vašem pracovním prostoru, použijte následující kód T-SQL k dotazování sys.databases v novém okně dotazu:

SELECT [name], [DATA_LAKE_LOG_PUBLISHING_DESC] FROM sys.databases;