Delen via


OPTIES VOOR ALTER DATABASE SET (Transact-SQL)

Hiermee stelt u databaseopties in Microsoft SQL Server, Azure SQL Database en Azure Synapse Analytics in. Zie ALTER DATABASEvoor andere opties voor ALTER DATABASE.

Notitie

Voor het instellen van bepaalde opties met ALTER DATABASE is mogelijk exclusieve databasetoegang vereist. Als de instructie ALTER DATABASE niet tijdig wordt voltooid, controleert u of andere sessies in de database de ALTER DATABASE-sessie blokkeren.

Zie Transact-SQL syntaxisconventiesvoor meer informatie over de syntaxisconventies.

Een product selecteren

Selecteer in de volgende rij de productnaam waarin u geïnteresseerd bent. Als u dat doet, wordt hier verschillende inhoud op deze webpagina weergegeven, geschikt voor het product dat u selecteert.

* SQL Server *  

 

SQL Server

Databasespiegeling, AlwaysOn-beschikbaarheidsgroepen en compatibiliteitsniveaus zijn SET opties, maar worden beschreven in afzonderlijke artikelen vanwege hun lengte. Zie ALTER DATABASE Database Mirroring, ALTER DATABASE SET HADRen ALTER DATABASE compatibility levelvoor meer informatie.

Configuraties met databasebereik worden gebruikt om verschillende databaseconfiguraties in te stellen op het niveau van de afzonderlijke database. Zie ALTER DATABASE SCOPED CONFIGURATIONvoor meer informatie.

Notitie

Veel opties voor databasesets kunnen worden geconfigureerd voor de huidige sessie met behulp van SET-instructies en worden vaak geconfigureerd door toepassingen wanneer ze verbinding maken. Opties voor set op sessieniveau overschrijven de ALTER DATABASE SET waarden. De databaseopties die in de volgende secties worden beschreven, zijn waarden die u kunt instellen voor sessies die niet expliciet andere ingestelde optiewaarden bevatten.

Syntaxis

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 }

Argumenten

database_name

De naam van de database die moet worden gewijzigd.

ACTUEEL

van toepassing op: SQL Server (vanaf SQL Server 2012 (11.x))

Hiermee wordt de actie uitgevoerd in de huidige database. CURRENT wordt niet ondersteund voor alle opties in alle contexten. Als CURRENT mislukt, geeft u de databasenaam op.

<accelerated_database_recovery> ::=

van toepassing op: SQL Server (vanaf SQL Server 2019 (15.x))

Hiermee kunt u versnelde ADR-(Database Recovery). ADR is standaard ingesteld op UIT in SQL Server 2019 (15.x) en hoger. Met deze syntaxis kunt u een specifieke bestandsgroep aanwijzen voor de PVS-gegevens (Persistent Version Store). Als er geen bestandsgroep is opgegeven, wordt de PVS opgeslagen in de PRIMARY bestandsgroep. Zie Versneld databaseherstel beherenvoor meer informatie.

<auto_option> ::=

Hiermee bepaalt u automatische opties.

AUTO_CLOSE { AAN | UIT }

  • OP

    De database wordt schoon afgesloten en de bijbehorende resources worden vrijgemaakt nadat de laatste gebruiker is afgesloten.

    De database wordt automatisch opnieuw geopend wanneer een gebruiker de database opnieuw probeert te gebruiken. Dit gedrag treedt bijvoorbeeld op wanneer een gebruiker een USE database_name instructie uitgeeft. De database kan op schone wijze worden afgesloten met AUTO_CLOSE ingesteld op AAN. Zo ja, dan wordt de database pas opnieuw geopend als een gebruiker de database de volgende keer dat de database-engine opnieuw wordt opgestart.

    Nadat een database is afgesloten, moet de database de volgende keer dat een toepassing de database probeert te gebruiken, eerst worden geopend en vervolgens de status is gewijzigd in online. Dit kan enige tijd duren en kan leiden tot time-outs van toepassingen.

  • AF

    De database blijft geopend nadat de laatste gebruiker is afgesloten.

    De optie AUTO_CLOSE is handig voor bureaubladdatabases, omdat databasebestanden kunnen worden beheerd als gewone bestanden. Ze kunnen worden verplaatst, gekopieerd om back-ups te maken of zelfs naar andere gebruikers te e-mailen. Het AUTO_CLOSE proces is asynchroon; het herhaaldelijk openen en sluiten van de database vermindert de prestaties niet.

Notitie

De optie AUTO_CLOSE is niet beschikbaar in een ingesloten database of in SQL Database. U kunt de status van deze optie bepalen door de kolom is_auto_close_on te bekijken in de sys.databases catalogusweergave of de eigenschap IsAutoClose van de functie DATABASEPROPERTYEX.

Wanneer AUTO_CLOSE is ingesteld op AAN, retourneren sommige kolommen in de sys.databases catalogusweergave en de functie DATABASEPROPERTYEX NULL omdat de database niet beschikbaar is om de gegevens op te halen. U kunt dit probleem oplossen door een USE-instructie uit te voeren om de database te openen.

Voor databasespiegeling is AUTO_CLOSE ingesteld op UIT.

Wanneer de database is ingesteld op AUTOCLOSE = ON, wordt de plancache voor het exemplaar van SQL Server gewist door een bewerking waarmee een automatische database wordt afgesloten. Als u de plancache wist, wordt een hercompilatie van alle volgende uitvoeringsplannen veroorzaakt. Dit kan een plotselinge, tijdelijke afname van de queryprestaties veroorzaken. Vanaf SQL Server 2005 (9.x) Service Pack 2 bevat het SQL Server-foutenlogboek voor elke gewiste cacheopslag in de plancache het volgende informatieve bericht: 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. Dit bericht wordt elke vijf minuten geregistreerd zolang de cache binnen dat tijdsinterval wordt leeggemaakt.

De AUTO_CLOSE-instelling kan een nuttige functie zijn in sommige zeldzame situaties, bijvoorbeeld in een SQL Server-exemplaar zonder voldoende geheugen om stabiel te werken met een groot aantal databases, of voor een verouderd 32-bits SQL Server-exemplaar met een groot aantal databases. In dergelijke scenario's kan het handig zijn om AUTO_CLOSE in te schakelen en de geheugenresources te besparen die nodig zijn om een database open te houden wanneer er geen toepassing is die de database gebruikt. Wanneer de database is geopend, zijn enkele standaardgeheugentoewijzingen vereist (bijvoorbeeld interne structuren om verschillende databasemetagegevensobjecten en transactielogboekbuffers weer te geven).

AUTO_CREATE_STATISTICS { AAN | UIT }

  • OP

    Query Optimizer maakt, indien nodig, statistieken over afzonderlijke kolommen in querypredicaten om queryplannen en queryprestaties te verbeteren. Deze statistieken met één kolom worden gemaakt wanneer Query Optimizer query's compileert. De statistieken met één kolom worden alleen gemaakt voor kolommen die nog niet de eerste kolom van een bestaand statistiekenobject zijn.

    De standaardinstelling is AAN. U wordt aangeraden de standaardinstelling voor de meeste databases te gebruiken.

  • AF

    Query Optimizer maakt geen statistieken voor afzonderlijke kolommen in querypredicaten wanneer deze query's samenvoegt. Als u deze optie instelt op UIT, kunnen suboptimale queryplannen en verminderde queryprestaties worden veroorzaakt.

U kunt de status van deze optie bepalen door de kolom is_auto_create_stats_on te bekijken in de sys.databases catalogusweergave. U kunt ook de status bepalen door de eigenschap IsAutoCreateStatistics van de DATABASEPROPERTYEX- functie te onderzoeken.

Zie de sectie 'De opties voor statistieken voor de hele database gebruiken' in Statistiekenvoor meer informatie.

INCREMENTEEL = AAN | AF

van toepassing op: SQL Server (vanaf SQL Server 2014 (12.x)) en Azure SQL Database

Stel AUTO_CREATE_STATISTICS in op AAN en stel INCREMENTEEL in op AAN. Hiermee worden automatisch gemaakte statistieken als incrementeel ingesteld wanneer incrementele statistieken worden ondersteund. De standaardwaarde is UIT. Zie CREATE STATISTICSvoor meer informatie.

AUTO_SHRINK { AAN | UIT }

  • OP

    De databasebestanden zijn kandidaten voor periodieke verkleining. Tenzij u een specifieke vereiste hebt, stelt u de optie AUTO_SHRINK database niet in op AAN. Zie Een database verkleinenvoor meer informatie.

    Zowel gegevensbestanden als logboekbestanden kunnen automatisch worden verkleind. AUTO_SHRINK verkleint de grootte van het transactielogboek alleen als u de database instelt op SIMPLE-herstelmodel of als u een back-up van het logboek maakt. Wanneer u AUTO_SHRINK instelt op UIT, worden de databasebestanden niet automatisch verkleind tijdens periodieke controles op ongebruikte ruimte.

    De optie AUTO_SHRINK verkleint bestanden wanneer meer dan 25 procent van het bestand ongebruikte ruimte bevat. Het bestand wordt verkleind tot een van de twee grootten (afhankelijk van wat groter is):

    • De grootte waarmee 25 procent van het bestand ongebruikte ruimte is
    • De grootte van het bestand toen het werd gemaakt

    U kunt een alleen-lezen database niet verkleinen.

  • AF

    De databasebestanden worden niet automatisch verkleind tijdens periodieke controles op ongebruikte ruimte.

U kunt de status van deze optie bepalen door de kolom is_auto_shrink_on te bekijken in de sys.databases catalogusweergave. U kunt ook de status bepalen door de eigenschap IsAutoShrink van de DATABASEPROPERTYEX- functie te onderzoeken.

Notitie

De optie AUTO_SHRINK is niet beschikbaar in een ingesloten database.

AUTO_UPDATE_STATISTICS { AAN | UIT }

  • OP

    Hiermee geeft u op dat Query Optimizer statistieken bijwerken wanneer ze worden gebruikt door een query en wanneer ze mogelijk verouderd zijn. Statistieken worden verouderd na het invoegen, bijwerken, verwijderen of samenvoegen van bewerkingen wijzigen de gegevensdistributie in de tabel of geïndexeerde weergave. Query Optimizer bepaalt wanneer statistieken verouderd kunnen zijn door het aantal wijzigingen van gegevens te tellen sinds de laatste update van de statistieken en het vergelijken van het aantal wijzigingen aan een drempelwaarde. De drempelwaarde is gebaseerd op het aantal rijen in de tabel of geïndexeerde weergave.

    Query Optimizer controleert op verouderde statistieken voordat een query wordt gecompileerd en een queryplan in de cache wordt uitgevoerd. Query Optimizer maakt gebruik van de kolommen, tabellen en geïndexeerde weergaven in het querypredicaat om te bepalen welke statistieken verouderd kunnen zijn. Query Optimizer bepaalt deze informatie voordat een query wordt gecompileerd. Voordat u een queryplan in de cache uitvoert, controleert de database-engine of het queryplan verwijst naar up-to-datumstatistieken.

    De optie AUTO_UPDATE_STATISTICS is van toepassing op statistieken die zijn gemaakt voor indexen, enkelvoudige kolommen in querypredicaten en statistieken die worden gemaakt met behulp van de instructie CREATE STATISTICS. Deze optie is ook van toepassing op gefilterde statistieken.

    De standaardwaarde is AAN. U wordt aangeraden de standaardinstelling voor de meeste databases te gebruiken.

    Gebruik de optie AUTO_UPDATE_STATISTICS_ASYNC om op te geven of de statistieken synchroon of asynchroon worden bijgewerkt.

  • AF

    Hiermee geeft u op dat Query Optimizer geen statistieken bijwerkt wanneer ze worden gebruikt door een query. Query Optimizer werkt ook geen statistieken bij wanneer deze verouderd zijn. Als u deze optie instelt op UIT, kunnen suboptimale queryplannen en verminderde queryprestaties worden veroorzaakt.

U kunt de status van deze optie bepalen door de kolom is_auto_update_stats_on te bekijken in de sys.databases catalogusweergave. U kunt ook de status bepalen door de eigenschap IsAutoUpdateStatistics van de DATABASEPROPERTYEX- functie te onderzoeken.

Zie de sectie 'De opties voor statistieken voor de hele database gebruiken' in Statistiekenvoor meer informatie.

AUTO_UPDATE_STATISTICS_ASYNC { AAN | UIT }

  • OP

    Hiermee geeft u op dat updates voor statistieken voor de AUTO_UPDATE_STATISTICS optie asynchroon zijn. Query Optimizer wacht niet totdat de updates van statistieken zijn voltooid voordat query's worden gecompileerd.

    Het instellen van deze optie op AAN heeft geen effect, tenzij AUTO_UPDATE_STATISTICS is ingesteld op AAN.

    De optie AUTO_UPDATE_STATISTICS_ASYNC is standaard UITGESCHAKELD en de statistieken van Query Optimizer worden synchroon bijgewerkt.

  • AF

    Hiermee geeft u op dat statistiekenupdates voor de optie AUTO_UPDATE_STATISTICS synchroon zijn. Query Optimizer wacht tot de updates van statistieken zijn voltooid voordat query's worden gecompileerd.

    Notitie

    Het instellen van deze optie op UIT heeft geen effect, tenzij AUTO_UPDATE_STATISTICS is ingesteld op AAN.

U kunt de status van deze optie bepalen door de kolom is_auto_update_stats_async_on te bekijken in de sys.databases catalogusweergave.

Zie de sectie Statistiekenopties in Statistiekenvoor meer informatie over het gebruik van synchrone of asynchrone statistiekenupdates.

<automatic_tuning_option> ::=

van toepassing op: SQL Server (vanaf SQL Server 2017 (14.x))

Hiermee schakelt u FORCE_LAST_GOOD_PLANoptie automatisch afstemmen in of uit. U kunt de status van deze optie bekijken in de weergave sys.database_automatic_tuning_options.

FORCE_LAST_GOOD_PLAN = { DEFAULT | AAN | UIT }

  • VERSTEK

    De standaardwaarde voor SQL Server is UITGESCHAKELD.

  • OP

    De database-engine dwingt automatisch het laatst bekende goede plan af op de Transact-SQL query's waarbij een nieuw queryplan prestatieregressies veroorzaakt. De database-engine bewaakt continu de queryprestaties van de Transact-SQL query met het geforceerde plan.

    Als er prestatieverbeteringen zijn, blijft de database-engine het laatst bekende goede plan gebruiken. Als er geen prestatieverbeteringen worden gedetecteerd, produceert de database-engine een nieuw queryplan. De instructie mislukt als de Query Store- niet is ingeschakeld of als de Query Store zich niet in modus Lezen/schrijven bevindt.

  • AF

    De database-engine rapporteert mogelijke regressies voor queryprestaties die worden veroorzaakt door wijzigingen in het queryplan in sys.dm_db_tuning_recommendations weergave. Deze aanbevelingen worden echter niet automatisch toegepast. Gebruikers kunnen actieve aanbevelingen controleren en geïdentificeerde problemen oplossen door Transact-SQL scripts toe te passen die in de weergave worden weergegeven. De standaardwaarde is UIT.

<change_tracking_option> ::=

van toepassing op: SQL Server en Azure SQL Database

Hiermee bepaalt u opties voor het bijhouden van wijzigingen. U kunt wijzigingen bijhouden inschakelen, opties instellen, opties voor wijzigen en het bijhouden van wijzigingen uitschakelen. Zie de sectie Voorbeelden verderop in dit artikel voor voorbeelden.

  • OP

    Hiermee schakelt u het bijhouden van wijzigingen voor de database in. Wanneer u wijzigingen bijhouden inschakelt, kunt u ook de opties VOOR AUTOMATISCH OPSCHONEN en BEWAARBELEID VOOR WIJZIGINGEN instellen.

  • AUTO_CLEANUP = { AAN | UIT }

    • OP

      Wijzigingen bijhouden wordt automatisch verwijderd na de opgegeven bewaarperiode.

    • AF

      Wijzigingen bijhouden wordt niet automatisch uit de database verwijderd.

  • CHANGE_RETENTION = retention_period { DAYS | UREN | MINUTEN }

    Hiermee geeft u de minimale periode op voor het bijhouden van wijzigingen in de database. Gegevens worden alleen verwijderd wanneer de AUTO_CLEANUP waarde is ingeschakeld.

    retention_period is een geheel getal dat het numerieke onderdeel van de bewaarperiode aangeeft.

    De standaardretentieperiode is 2 dagen. De minimale bewaarperiode is 1 minuut. Het standaardretentietype is DAYS.

  • UIT Schakelt het bijhouden van wijzigingen voor de database uit. Schakel wijzigingen bijhouden uit voor alle tabellen voordat u het bijhouden van wijzigingen uit de database uitschakelt.

<containment_option> ::=

van toepassing op: SQL Server (vanaf SQL Server 2012 (11.x))

Hiermee bepaalt u opties voor database-insluiting.

CONTAINMENT = { NONE | PARTIAL}

  • GEEN

    De database is geen ingesloten database.

  • GEDEELTELIJK

    De database is een ingesloten database. Het instellen van database-insluiting op gedeeltelijk mislukt als de database replicatie, het vastleggen van wijzigingengegevens of het bijhouden van wijzigingen is ingeschakeld. Foutcontrole stopt na één fout. Zie Ingesloten databasesvoor meer informatie over ingesloten databases.

<cursor_option> ::=

Besturingselementen cursoropties.

CURSOR_CLOSE_ON_COMMIT { AAN | UIT }

  • OP

    Alle cursors worden geopend wanneer u een transactie doorvoert of terugdraait.

  • AF

    Cursors blijven open wanneer een transactie wordt doorgevoerd; Als een transactie wordt teruggedraaid, worden alle cursors gesloten, behalve de cursors die zijn gedefinieerd als ONGEVOELIG of STATISCH.

Instellingen op verbindingsniveau die zijn ingesteld met de SET-instructie overschrijven de standaarddatabase-instelling voor CURSOR_CLOSE_ON_COMMIT. ODBC- en OLE DB-clients geven standaard een set-instructieinstelling op verbindingsniveau uit CURSOR_CLOSE_ON_COMMIT op UIT voor de sessie. De clients voeren de instructie uit wanneer u verbinding maakt met een exemplaar van SQL Server. Zie SET CURSOR_CLOSE_ON_COMMITvoor meer informatie.

U kunt de status van deze optie bepalen door de kolom is_cursor_close_on_commit_on te bekijken in de sys.databases catalogusweergave of de eigenschap IsCloseCursorsOnCommitEnabled van de functie DATABASEPROPERTYEX.

CURSOR_DEFAULT { LOCAL | GLOBAL }

van toepassing op: SQL Server

Hiermee bepaalt u of het cursorbereik GEBRUIKMAAKT van LOCAL of GLOBAL.

  • LOKAAL

    Wanneer u LOCAL opgeeft en geen cursor als GLOBAL definieert wanneer u de cursor maakt, is het bereik van de cursor lokaal. Het bereik is specifiek lokaal voor de batch, opgeslagen procedure of trigger waarin u de cursor hebt gemaakt. De cursornaam is alleen geldig binnen dit bereik.

    De cursor kan worden verwezen door lokale cursorvariabelen in de batch, opgeslagen procedure of trigger of een opgeslagen procedure OUTPUT-parameter. De cursor wordt impliciet ongedaan gemaakt wanneer de batch, opgeslagen procedure of trigger wordt beëindigd. De toewijzing van de cursor is ongedaan gemaakt, tenzij deze is doorgegeven in een OUTPUT-parameter. De cursor kan worden doorgestuurd in een OUTPUT-parameter. Als de cursor op deze manier teruggaat, wordt de toewijzing van de cursor ongedaan gemaakt wanneer de laatste variabele die verwijst naar de cursor de toewijzing ongedaan wordt gemaakt of buiten het bereik komt.

  • GLOBAAL

    Wanneer GLOBAL is opgegeven en een cursor niet is gedefinieerd als LOCAL wanneer deze wordt gemaakt, is het bereik van de cursor globaal met de verbinding. De cursornaam kan worden verwezen in elke opgeslagen procedure of batch die door de verbinding wordt uitgevoerd.

    De cursor wordt impliciet de toewijzing alleen ongedaan gemaakt wanneer de verbinding is verbroken. Zie CURSOR declarerenvoor meer informatie.

U kunt de status van deze optie bepalen door de kolom is_local_cursor_default te bekijken in de sys.databases catalogusweergave. U kunt ook de status bepalen door de eigenschap IsLocalCursorsDefault van de DATABASEPROPERTYEX- functie te onderzoeken.

<temporal_history_retention> ::=

TEMPORAL_HISTORY_RETENTION { AAN | UIT }

STANDAARD INGESCHAKELD, maar ook automatisch ingesteld op UIT na herstelbewerking naar een bepaald tijdstip. Zie Bewaarbeleid configurerenvoor meer informatie over het inschakelen van deze instelling.

<data_retention_policy> ::=

is alleen van toepassing op: Alleen Azure SQL Edge.

DATA_RETENTION { AAN | UIT }

  • OP

    Hiermee schakelt u het opschonen van gegevensretentiebeleid op basis van een database in.

  • AF

    Hiermee schakelt u het opschonen van gegevensretentie op basis van een database uit.

<database_mirroring>

van toepassing op: SQL Server

Zie ALTER DATABASE Database Mirroringvoor de beschrijvingen van argumenten.

<date_correlation_optimization_option> ::=

van toepassing op: SQL Server

Hiermee bepaalt u de optie date_correlation_optimization.

DATE_CORRELATION_OPTIMIZATION { AAN | UIT }

  • OP

    SQL Server onderhoudt correlatiestatistieken waarbij een beperking REFERERENDE SLEUTEL twee tabellen in de database koppelt en de tabellen datum/tijd kolommen hebben.

  • AF

    Correlatiestatistieken worden niet bijgehouden.

Als u DATE_CORRELATION_OPTIMIZATION wilt instellen op AAN, mogen er geen actieve verbindingen met de database zijn, met uitzondering van de verbinding die de INSTRUCTIE ALTER DATABASE uitvoert. Daarna worden meerdere verbindingen ondersteund.

De huidige instelling van deze optie kan worden bepaald door de kolom is_date_correlation_on in de sys.databases catalogusweergave te bekijken.

<db_encryption_option> ::=

Hiermee bepaalt u de status van de databaseversleuteling.

VERSLEUTELING { AAN | UIT | SUSPEND | CV }

  • OP

    Hiermee stelt u in dat de database moet worden versleuteld.

  • AF

    Hiermee stelt u in dat de database niet wordt versleuteld.

  • OPSCHORTEN

    van toepassing op: SQL Server (vanaf SQL Server 2019 (15.x))

    Kan worden gebruikt om de versleutelingsscan te onderbreken nadat transparante gegevensversleuteling is ingeschakeld of uitgeschakeld, of nadat de versleutelingssleutel is gewijzigd.

  • HERVATTEN

    van toepassing op: SQL Server (vanaf SQL Server 2019 (15.x))

    Kan worden gebruikt om een eerder onderbroken versleutelingsscan te hervatten.

Zie TDE-(Transparent Data Encryption) en Transparent Data Encryption voor Azure SQL Database, Azure SQL Managed Instance en Azure Synapse Analyticsvoor meer informatie over databaseversleuteling.

Wanneer versleuteling op databaseniveau is ingeschakeld, worden alle bestandsgroepen versleuteld. Alle nieuwe bestandsgroepen nemen de versleutelde eigenschap over. Als bestandsgroepen in de database zijn ingesteld op ALLEEN-LEZEN, mislukt de bewerking voor databaseversleuteling.

U kunt de versleutelingsstatus van de database en de status van de versleutelingsscan zien met behulp van de sys.dm_database_encryption_keys dynamische beheerweergave.

<db_state_option> ::=

van toepassing op: SQL Server

Hiermee bepaalt u de status van de database.

  • OFFLINE

    De database is gesloten, wordt schoon afgesloten en offline gemarkeerd. De database kan niet worden gewijzigd terwijl deze offline is.

  • ONLINE

    De database is geopend en beschikbaar voor gebruik.

  • NOODSITUATIE

    De database is gemarkeerd als READ_ONLY, logboekregistratie is uitgeschakeld en de toegang is beperkt tot leden van de vaste serverfunctie sysadmin. EMERGENCY wordt voornamelijk gebruikt voor probleemoplossingsdoeleinden. Een database die is gemarkeerd als verdacht vanwege een beschadigd logboekbestand, kan bijvoorbeeld worden ingesteld op de status NOOD. Met deze instelling kan de systeembeheerder alleen-lezentoegang tot de database inschakelen. Alleen leden van de vaste serverrol sysadmin kunnen een database instellen op de status NOOD.

Vereist de ALTER DATABASE machtiging voor de onderwerpdatabase, om een database te wijzigen in de offline- of noodtoestand en het serverniveau ALTER ANY DATABASE machtiging om een database van offline naar online te verplaatsen.

U kunt de status van deze optie bepalen door de kolommen state en state_desc te bekijken in de sys.databases catalogusweergave. U kunt ook de status bepalen door de eigenschap Status van de DATABASEPROPERTYEX- functie te onderzoeken. Zie databasestatussenvoor meer informatie.

Een database die is gemarkeerd als HERSTELLEN, kan niet worden ingesteld op OFFLINE, ONLINE of NOOD. Een database kan de status HERSTELLEN hebben tijdens een actieve herstelbewerking of wanneer een herstelbewerking van een database of logboekbestand mislukt vanwege een beschadigd back-upbestand.

<db_update_option> ::=

Hiermee bepaalt u of updates zijn toegestaan voor de database.

  • READ_ONLY

    Gebruikers kunnen gegevens uit de database lezen, maar deze niet wijzigen.

    Notitie

    Als u de queryprestaties wilt verbeteren, moet u statistieken bijwerken voordat u een database instelt op READ_ONLY. Als er extra statistieken nodig zijn nadat een database is ingesteld op READ_ONLY, maakt de database-engine statistieken in de tempdb systeemdatabase. Zie Statisticsvoor meer informatie over statistieken voor een alleen-lezen database.

  • READ_WRITE

    De database is beschikbaar voor lees- en schrijfbewerkingen.

Als u deze status wilt wijzigen, moet u exclusieve toegang tot de database hebben. Zie de SINGLE_USER-component voor meer informatie.

Notitie

In federatieve Azure SQL Database-databases is SET { READ_ONLY | READ_WRITE } uitgeschakeld.

<db_user_access_option> ::=

Hiermee beheert u de gebruikerstoegang tot de database.

SINGLE_USER

van toepassing op: SQL Server

Hiermee geeft u op dat slechts één gebruiker tegelijk toegang heeft tot de database. Als u SINGLE_USER opgeeft en een andere gebruiker verbinding maakt met de database, wordt de instructie ALTER DATABASE geblokkeerd totdat alle gebruikers de verbinding met de opgegeven database verbreken. Als u dit gedrag wilt overschrijven, raadpleegt u de component WITH <beëindiging>.

De database blijft in SINGLE_USER modus, zelfs als de gebruiker die de optie instelt, zich afmeldt. Op dat moment kan een andere gebruiker, maar slechts één, verbinding maken met de database.

Voordat u de database instelt op SINGLE_USER, controleert u of de optie AUTO_UPDATE_STATISTICS_ASYNC is ingesteld op UIT. Als deze optie is ingesteld op AAN, neemt de achtergrondthread die wordt gebruikt voor het bijwerken van statistieken een verbinding met de database en hebt u geen toegang tot de database in de modus voor één gebruiker. Als u de status van deze optie wilt weergeven, voert u een query uit op de kolom is_auto_update_stats_async_on in de sys.databases catalogusweergave. Als de optie is ingesteld op AAN, voert u de volgende taken uit:

  1. Stel AUTO_UPDATE_STATISTICS_ASYNC in op UIT.

  2. Controleer op actieve asynchrone statistiekentaken door een query uit te voeren op de sys.dm_exec_background_job_queue dynamische beheerweergave.

Als er actieve taken zijn, kunt u de taken voltooien of handmatig beëindigen met behulp van KILL STATS JOB.

RESTRICTED_USER

Hiermee kunnen alleen leden van de db_owner vaste databaserol en dbcreator en sysadmin vaste serverfuncties verbinding maken met de database. RESTRICTED_USER beperkt hun aantal niet. Verbreek alle verbindingen met de database met behulp van het tijdsbestek dat is opgegeven door de beëindigingsclausule van de ALTER DATABASE-instructie. Nadat de database is overgezet naar de status RESTRICTED_USER, worden verbindingspogingen door niet-gekwalificeerde gebruikers geweigerd.

MULTI_USER

Alle gebruikers met de juiste machtigingen om verbinding te maken met de database zijn toegestaan. U kunt de status van deze optie bepalen door de kolom user_access te bekijken in de sys.databases catalogusweergave. U kunt ook de status bepalen door de eigenschap UserAccess van de DATABASEPROPERTYEX- functie te onderzoeken.

<delayed_durability_option> ::=

van toepassing op: SQL Server (vanaf SQL Server 2014 (12.x))

Bepaalt of transacties volledig duurzaam of vertraagd worden doorgevoerd.

  • INVALIDE

    Alle transacties na SET DISABLED zijn volledig duurzaam. Alle duurzaamheidsopties die zijn ingesteld in een atomische blok- of doorvoerinstructie, worden genegeerd.

  • TOEGESTAAN

    Alle transacties na SET ALLOWED zijn volledig duurzaam of vertraagd, afhankelijk van de duurzaamheidsoptie die is ingesteld in de atomische blok- of doorvoerinstructie.

  • GEDWONGEN

    Alle transacties na SET FORCED worden duurzaam vertraagd. Alle duurzaamheidsopties die zijn ingesteld in een atomische blok- of doorvoerinstructie, worden genegeerd.

<external_access_option> ::=

van toepassing op: SQL Server

Hiermee bepaalt u of de database toegankelijk is voor externe resources, zoals objecten uit een andere database.

DB_CHAINING { AAN | UIT }

  • OP

    De database kan de bron of het doel zijn van een keten voor eigendom van meerdere databases.

  • AF

    Database kan niet deelnemen aan eigendomsketens voor meerdere databases.

Belangrijk

Het exemplaar van SQL Server herkent deze instelling wanneer de optie voor het koppelen van meerdere databases 0 (UIT) is. Wanneer eigendomsketens voor meerdere databases 1 (ON) zijn, kunnen alle gebruikersdatabases deelnemen aan eigendomsketens voor meerdere databases, ongeacht de waarde van deze optie. Deze optie wordt ingesteld met behulp van sp_configure.

Als u deze optie wilt instellen, hebt u CONTROL SERVER machtiging voor de database nodig.

De optie DB_CHAINING kan niet worden ingesteld op de master, modelen tempdb systeemdatabases.

U kunt de status van deze optie bepalen door de kolom is_db_chaining_on te bekijken in de sys.databases catalogusweergave.

BETROUWBAAR { AAN | UIT }

  • OP

    Databasemodules (bijvoorbeeld door de gebruiker gedefinieerde functies of opgeslagen procedures) die gebruikmaken van een imitatiecontext, hebben toegang tot resources buiten de database.

  • AF

    Databasemodules in een imitatiecontext hebben geen toegang tot resources buiten de database.

    TRUSTWORTHY is ingesteld op UIT wanneer de database is gekoppeld.

Standaard zijn alle systeemdatabases, met uitzondering van de msdb database, BETROUWBAAR ingesteld op UIT. De waarde kan niet worden gewijzigd voor de databases model en tempdb. U wordt aangeraden de optie BETROUWBAAR nooit in te stellen op AAN voor de master-database.

Als u deze optie wilt instellen, hebt u CONTROL SERVER machtiging voor de database nodig.

U kunt de status van deze optie bepalen door de kolom is_trustworthy_on te bekijken in de sys.databases catalogusweergave.

DEFAULT_FULLTEXT_LANGUAGE

van toepassing op: SQL Server (vanaf SQL Server 2012 (11.x))

Hiermee geeft u de standaardtaalwaarde op voor geïndexeerde kolommen in volledige tekst.

Belangrijk

Deze optie is alleen toegestaan wanneer CONTAINMENT is ingesteld op PARTIAL. Als CONTAINMENT is ingesteld op NONE, treden er fouten op.

DEFAULT_LANGUAGE

van toepassing op: SQL Server (vanaf SQL Server 2012 (11.x))

Hiermee geeft u de standaardtaal voor alle nieuw gemaakte aanmeldingen. Taal kan worden opgegeven door de lokale id (lcid), de taalnaam of de taalalias op te geven. Zie sys.syslanguagesvoor een lijst met acceptabele taalnamen en aliassen. Deze optie is alleen toegestaan wanneer CONTAINMENT is ingesteld op PARTIAL. Als CONTAINMENT is ingesteld op NONE, treden er fouten op.

NESTED_TRIGGERS

van toepassing op: SQL Server (vanaf SQL Server 2012 (11.x))

Hiermee geeft u op of een AFTER-trigger trapsgewijs kan worden uitgevoerd; Dat wil gezegd: voer een actie uit waarmee een andere trigger wordt gestart, waardoor een andere trigger wordt gestart, enzovoort. Deze optie is alleen toegestaan wanneer CONTAINMENT is ingesteld op PARTIAL. Als CONTAINMENT is ingesteld op NONE, treden er fouten op.

TRANSFORM_NOISE_WORDS

van toepassing op: SQL Server (vanaf SQL Server 2012 (11.x))

Wordt gebruikt om een foutbericht te onderdrukken als ruiswoorden of stopwoorden ertoe leiden dat een Booleaanse bewerking voor een query in volledige tekst mislukt. Deze optie is alleen toegestaan wanneer CONTAINMENT is ingesteld op PARTIAL. Als CONTAINMENT is ingesteld op NONE, treden er fouten op.

TWO_DIGIT_YEAR_CUTOFF

van toepassing op: SQL Server (vanaf SQL Server 2012 (11.x))

Hiermee geeft u een geheel getal op van 1753 tot 9999 dat het grensjaar aangeeft voor het interpreteren van tweecijferige jaren als viercijferige jaren. Deze optie is alleen toegestaan wanneer CONTAINMENT is ingesteld op PARTIAL. Als CONTAINMENT is ingesteld op NONE, treden er fouten op.

<FILESTREAM_option> ::=

van toepassing op: SQL Server (vanaf SQL Server 2012 (11.x))

Hiermee bepaalt u de instellingen voor FileTables.

NON_TRANSACTED_ACCESS = { UIT | READ_ONLY | VOLLEDIG }

  • AF

    Niet-transactionele toegang tot FileTable-gegevens is uitgeschakeld.

  • READ_ONLY

    FILESTREAM-gegevens in FileTables in deze database kunnen worden gelezen door niet-transactionele processen.

  • VOL

    Hiermee wordt volledige, niet-transactionele toegang tot FILESTREAM-gegevens in FileTables ingeschakeld.

DIRECTORY_NAME = <directory_name>

Een windows-compatibele mapnaam. Deze naam moet uniek zijn voor alle mapnamen op databaseniveau in het SQL Server-exemplaar. De vergelijking van uniekheid is niet hoofdlettergevoelig, ongeacht sorteringsinstellingen. Deze optie moet worden ingesteld voordat u een FileTable in deze database maakt.

<HADR_options> ::=

van toepassing op: SQL Server

Zie ALTER DATABASE SET HADR.

<mixed_page_allocation_option> ::=

van toepassing op: SQL Server (vanaf SQL Server 2016 (13.x))

Hiermee bepaalt u of de database initiële pagina's kan maken met behulp van een gemengde omvang voor de eerste acht pagina's van een tabel of index.

MIXED_PAGE_ALLOCATION { UIT | ON }

  • AF

    De database maakt altijd initiële pagina's met uniforme gebieden. UIT is de standaardwaarde.

  • OP

    De database kan initiële pagina's maken met behulp van gemengde gebieden.

Deze instelling is INGESCHAKELD voor alle systeemdatabases. De tempdb systeemdatabase is de enige systeemdatabase die OFF ondersteunt.

<PARAMETERIZATION_option> ::=

Hiermee bepaalt u de parameterisatieoptie. Zie de Architectuurhandleiding voor queryverwerkingvoor meer informatie over parameterisatie.

PARAMETERISATIE { SIMPLE | GEFORCEERD }

  • EENVOUDIG

    Query's worden geparameteriseerd op basis van het standaardgedrag van de database.

  • GEDWONGEN

    SQL Server parameteriseert alle query's in de database.

De huidige instelling van deze optie kan worden bepaald door de kolom is_parameterization_forced in de sys.databases catalogusweergave te bekijken.

<query_store_options> ::=

van toepassing op: SQL Server (vanaf SQL Server 2016 (13.x))

AAN | UIT [ ( GEDWONGEN ) ] | CLEAR [ ALL ]

Hiermee bepaalt u of Query Store is ingeschakeld in deze database en bepaalt u ook hoe de inhoud van de Query Store wordt verwijderd. Zie Query Store-gebruiksscenario'svoor meer informatie.

  • OP

    Hiermee schakelt u Query Store in.

    Veel nieuwe prestatiefuncties van SQL Server 2022 (16.x), zoals Query Store-hints, CE-feedback, DOP-feedback (Degree of Parallelism) en MGF-persistentie (Memory Grant feedback) vereist dat Query Store moet worden ingeschakeld. Voor databases die zijn hersteld van andere SQL Server-exemplaren en voor databases die zijn bijgewerkt van een in-place upgrade naar SQL Server 2022 (16.x), behouden deze databases de vorige Query Store-instellingen. Als er zich zorgen maken over de overhead van Query Store, kunnen beheerders gebruikmaken van aangepaste opnamebeleidsregels met QUERY_CAPTURE_MODE = CUSTOM. Zie de sectie Voorbeelden verderop in dit artikel voor voorbeelden van het inschakelen van Query Store met aangepaste beleidsopties voor vastleggen.

  • UIT [ ( GEDWONGEN ) ]

    Hiermee schakelt u de Query Store uit. FORCED is optioneel. MET FORCE worden alle actieve Query Store-achtergrondtaken afgebroken en wordt de synchrone flush overgeslagen wanneer Query Store is uitgeschakeld. Zorgt ervoor dat Query Store zo snel mogelijk wordt afgesloten. FORCED is van toepassing op SQL Server 2016 (13.x) SP2 CU14, SQL Server 2017 (14.x) CU21, SQL Server 2019 (15.x) CU6 en latere builds.

    Notitie

    Query Store kan niet worden uitgeschakeld in Azure SQL Database. Als u ALTER DATABASE [database] SET QUERY_STORE = OFF uitvoert, wordt de waarschuwing 'QUERY_STORE=OFF' is not supported in this version of SQL Server.geretourneerd.

  • CLEAR [ ALL ]

    Hiermee verwijdert u querygerelateerde gegevens uit de Query Store. ALL is optioneel. ALL verwijdert querygerelateerde gegevens en metagegevens uit de Query Store.

OPERATION_MODE { READ_ONLY | READ_WRITE }

Beschrijft de bewerkingsmodus van de Query Store.

READ_WRITE

Query Store verzamelt en bewaart gegevens over queryplannen en runtime-uitvoeringsstatistieken.

READ_ONLY

Informatie kan worden gelezen uit de Query Store, maar er worden geen nieuwe gegevens toegevoegd. Als de maximaal uitgegeven ruimte van de Query Store is uitgeput, wijzigt Query Store de bewerkingsmodus in READ_ONLY.

CLEANUP_POLICY

Beschrijft het bewaarbeleid voor gegevens van de Query Store. STALE_QUERY_THRESHOLD_DAYS bepaalt het aantal dagen waarvoor de gegevens voor een query worden bewaard in de Query Store. STALE_QUERY_THRESHOLD_DAYS is bigint. De standaardwaarde is 30.

DATA_FLUSH_INTERVAL_SECONDS

Bepaalt de frequentie waarmee gegevens die naar de Query Store worden geschreven, op schijf worden bewaard. Om de prestaties te optimaliseren, worden gegevens die door de Query Store worden verzameld, asynchroon naar de schijf geschreven. De frequentie waarmee deze asynchrone overdracht plaatsvindt, wordt geconfigureerd met behulp van het argument DATA_FLUSH_INTERVAL_SECONDS. DATA_FLUSH_INTERVAL_SECONDS is bigint. De standaardwaarde is 900 (15 min).

MAX_STORAGE_SIZE_MB

Bepaalt de ruimte die is uitgegeven aan de Query Store. MAX_STORAGE_SIZE_MB is bigint. De standaardwaarde is 100 MB voor SQL Server (SQL Server 2016 (13.x) tot en met SQL Server 2017 (14.x)). Vanaf SQL Server 2019 (15.x) is de standaardwaarde 1000 MB.

MAX_STORAGE_SIZE_MB limiet wordt niet strikt afgedwongen. De opslaggrootte wordt alleen gecontroleerd wanneer Query Store gegevens naar schijf schrijft. Dit interval wordt ingesteld door de optie DATA_FLUSH_INTERVAL_SECONDS of de dialoogvensteroptie Query Store van Management Studio interval voor het leegmaken van gegevens. De standaardwaarde voor het interval is 900 seconden (of 15 minuten).

Als de Query Store de MAX_STORAGE_SIZE_MB limiet tussen controles van de opslaggrootte heeft overschreden, wordt deze overgezet naar de modus Alleen-lezen. Als SIZE_BASED_CLEANUP_MODE is ingeschakeld, wordt het opschoonmechanisme voor het afdwingen van de MAX_STORAGE_SIZE_MB limiet ook geactiveerd.

Zodra er voldoende ruimte is gewist, schakelt de Query Store-modus automatisch terug naar lezen/schrijven.

Belangrijk

Als u denkt dat uw workloadopname meer dan 10 GB schijfruimte nodig heeft, moet u uw workload waarschijnlijk herzien en optimaliseren om queryplannen opnieuw te gebruiken (bijvoorbeeld door gebruik te maken van geforceerde parametersof de Query Store-configuraties aan te passen. Vanaf SQL Server 2019 (15.x) en in Azure SQL Database kunt u QUERY_CAPTURE_MODE instellen op CUSTOM voor extra controle over het queryopnamebeleid.

INTERVAL_LENGTH_MINUTES

Bepaalt het tijdsinterval waarmee runtime-uitvoeringsstatistiekengegevens worden samengevoegd in de Query Store. Om te optimaliseren voor ruimtegebruik, worden de uitvoeringsstatistieken van runtime in het archief met runtimestatistieken geaggregeerd in een vast tijdvenster. Dit vaste tijdvenster wordt geconfigureerd met behulp van het argument INTERVAL_LENGTH_MINUTES. INTERVAL_LENGTH_MINUTES is bigint. De standaardwaarde is 60.

SIZE_BASED_CLEANUP_MODE { AUTO | UIT }

Hiermee bepaalt u of opschonen automatisch wordt geactiveerd wanneer de totale hoeveelheid gegevens dicht bij de maximale grootte komt.

  • AUTO

    Op grootte gebaseerde opschoning wordt automatisch geactiveerd wanneer de grootte op schijf 90% van MAX_STORAGE_SIZE_MBbereikt. Op grootte gebaseerde opschoning verwijdert eerst de goedkoopste en oudste query's. Het stopt op ongeveer 80% van MAX_STORAGE_SIZE_MB. Deze waarde is de standaardconfiguratiewaarde.

  • AF

    Op grootte gebaseerde opschoning wordt niet automatisch geactiveerd.

SIZE_BASED_CLEANUP_MODE is type nvarchar.

QUERY_CAPTURE_MODE { ALL | AUTO | AANGEPAST | GEEN }

Hiermee wordt de momenteel actieve queryopnamemodus opgegeven. Elke modus definieert specifiek beleid voor het vastleggen van query's. QUERY_CAPTURE_MODE is type nvarchar.

Notitie

Cursors, query's in opgeslagen procedures en systeemeigen gecompileerde query's worden altijd vastgelegd wanneer de queryopnamemodus is ingesteld op ALL, AUTO of CUSTOM.

  • ALLE

    Legt alle query's vast. ALL is de standaardconfiguratiewaarde voor SQL Server (SQL Server 2016 (13.x) tot en met SQL Server 2017 (14.x)).

  • AUTO

    Leg relevante query's vast op basis van het aantal uitvoeringen en het resourceverbruik. Dit is de standaardconfiguratiewaarde voor SQL Server (vanaf SQL Server 2019 (15.x)) en Azure SQL Database.

  • GEEN

    Stop met het vastleggen van nieuwe query's. Query Store blijft compileer- en runtimestatistieken verzamelen voor query's die al zijn vastgelegd. Gebruik deze configuratie met voorzichtigheid, omdat u belangrijke query's mogelijk niet kunt vastleggen.

  • GEWOONTE

    van toepassing op: SQL Server (vanaf SQL Server 2019 (15.x))

    Hiermee kunt u de QUERY_CAPTURE_POLICY opties. Aangepaste beleidsregels voor vastleggen kunnen Query Store helpen bij het vastleggen van de belangrijkste query's in uw workload. Zie de <query_capture_policy_option_list> voor aanpasbare opties.

MAX_PLANS_PER_QUERY

Hiermee definieert u het maximum aantal plannen dat voor elke query wordt onderhouden. MAX_PLANS_PER_QUERY is int. De standaardwaarde is 200.

WAIT_STATS_CAPTURE_MODE { AAN | UIT }

van toepassing op: SQL Server (vanaf SQL Server 2017 (14.x))

Hiermee bepaalt u of wachtstatistieken per query worden vastgelegd.

  • OP

    Wachtstatistiekengegevens per query worden vastgelegd. Deze waarde is de standaardconfiguratiewaarde.

  • AF

    Wachtstatistiekengegevens per query worden niet vastgelegd.

<query_capture_policy_option_list> :: =

van toepassing op: SQL Server (vanaf SQL Server 2019 (15.x))

Hiermee bepaalt u de Query Store beleidsopties vast te leggen. Met uitzondering van STALE_CAPTURE_POLICY_THRESHOLD definiëren deze opties de OR-voorwaarden die moeten worden uitgevoerd voor het vastleggen van query's in de gedefinieerde drempelwaarde voor verlopen vastleggen van beleid.

Vanaf SQL Server 2019 (15.x) legt de instelling QUERY_CAPTURE_MODE = AUTO details van Query Store vast wanneer een van de volgende drempelwaarden wordt bereikt:

  • EXECUTION_COUNT = 30 uitvoeringen = aantal uitvoeringen
  • TOTAL_COMPILE_CPU_TIME_MS = 1 seconde = compilatietijd in milliseconden
  • TOTAL_EXECUTION_CPU_TIME_MS = 100 ms = cpu-tijd voor uitvoering in milliseconden

Bijvoorbeeld:

EXECUTION_COUNT = 30,
TOTAL_COMPILE_CPU_TIME_MS = 1000,
TOTAL_EXECUTION_CPU_TIME_MS = 100

U kunt deze opties aanpassen met QUERY_CAPTURE_MODE = CUSTOM:

  • STALE_CAPTURE_POLICY_THRESHOLD = geheel getal { DAYS | HOURS }

    Definieert de evaluatieperiode om te bepalen of een query moet worden vastgelegd. De standaardwaarde is 1 dag en kan worden ingesteld van 1 uur tot zeven dagen.

  • EXECUTION_COUNT = geheel getal

    Hiermee definieert u het aantal keren dat een query wordt uitgevoerd gedurende de evaluatieperiode. De standaardwaarde is 30, wat betekent dat voor de standaarddrempelwaarde voor verlopen capturebeleid een query minstens 30 keer in één dag moet worden uitgevoerd om te worden bewaard in de Query Store. EXECUTION_COUNT is int.

  • TOTAL_COMPILE_CPU_TIME_MS = geheel getal

    Hiermee definieert u de totale verstreken CPU-tijd die door een query wordt gebruikt gedurende de evaluatieperiode. De standaardwaarde is 1000, wat betekent dat voor de standaarddrempelwaarde voor verlopen capturebeleid een query een totaal van ten minste één seconde CPU-tijd moet hebben die is besteed tijdens het compileren van query's in één dag om te worden bewaard in de Query Store. TOTAL_COMPILE_CPU_TIME_MS is int.

  • TOTAL_EXECUTION_CPU_TIME_MS = geheel getal

    Hiermee definieert u de totale verstreken CPU-tijd van de uitvoering die wordt gebruikt door een query gedurende de evaluatieperiode. De standaardwaarde is 100, wat betekent dat voor de standaarddrempelwaarde voor verlopen capture-beleid een query in totaal ten minste 100 ms CPU-tijd moet hebben die is besteed tijdens de uitvoering in één dag om te worden bewaard in de Query Store. TOTAL_EXECUTION_CPU_TIME_MS is int.

<recovery_option> ::=

van toepassing op: SQL Server

Hiermee bepaalt u opties voor databaseherstel en I/O-foutcontrole op schijf.

  • VOL

    Biedt volledig herstel na een mediafout met behulp van back-ups van transactielogboeken. Als een gegevensbestand is beschadigd, kan mediaherstel alle vastgelegde transacties herstellen. Zie Recovery-modellenvoor meer informatie.

  • BULK_LOGGED

    Biedt herstel na een mediafout. Combineert de beste prestaties en minimale hoeveelheid gebruik van logboekruimte voor bepaalde grootschalige of bulkbewerkingen. Zie Het transactielogboekvoor informatie over welke bewerkingen minimaal kunnen worden geregistreerd. Onder het BULK_LOGGED herstelmodel is logboekregistratie voor deze bewerkingen minimaal. Zie Recovery-modellenvoor meer informatie.

  • EENVOUDIG

    Er wordt een eenvoudige back-upstrategie geboden die gebruikmaakt van minimale logboekruimte. Logboekruimte kan automatisch opnieuw worden gebruikt wanneer deze niet meer nodig is voor herstel van serverfouten. Zie Recovery-modellenvoor meer informatie.

    Belangrijk

    Het eenvoudige herstelmodel is eenvoudiger te beheren dan de andere twee modellen, maar ten koste van een grotere blootstelling aan gegevensverlies als een gegevensbestand beschadigd is. Alle wijzigingen omdat de meest recente database- of differentiële databaseback-up verloren gaat en handmatig opnieuw moet worden doorgevoerd.

Het standaardherstelmodel wordt bepaald door het herstelmodel van de model systeemdatabase. Zie Recovery-modellenvoor meer informatie over het selecteren van het juiste herstelmodel.

U kunt de status van deze optie bepalen door de kolommen recovery_model en recovery_model_desc te bekijken in de sys.databases catalogusweergave. U kunt ook de status bepalen door de eigenschap Recovery van de DATABASEPROPERTYEX- functie te onderzoeken.

TORN_PAGE_DETECTION { ON | UIT }

  • OP

    Onvolledige pagina's kunnen worden gedetecteerd door de database-engine.

  • AF

    Onvolledige pagina's kunnen niet worden gedetecteerd door de database-engine.

Belangrijk

De syntaxisstructuur TORN_PAGE_DETECTION ON | UIT wordt verwijderd in een toekomstige versie van SQL Server. Vermijd het gebruik van deze syntaxisstructuur in nieuwe ontwikkelwerkzaamheden en plan om toepassingen te wijzigen die momenteel gebruikmaken van de syntaxisstructuur. Gebruik in plaats daarvan de optie PAGE_VERIFY.

PAGE_VERIFY { CHECKSUM | TORN_PAGE_DETECTION | GEEN }

Detecteert beschadigde databasepagina's die worden veroorzaakt door schijf-I/O-padfouten. Schijf-I/O-padfouten kunnen de oorzaak zijn van problemen met databasebeschadiging. Deze fouten worden meestal veroorzaakt door stroomstoringen of schijfhardwarefouten die optreden op het moment dat de pagina naar de schijf wordt geschreven.

  • CHECKSUM

    Berekent een controlesom over de inhoud van de hele pagina en slaat de waarde op in de paginakoptekst wanneer een pagina naar de schijf wordt geschreven. Wanneer de pagina van de schijf wordt gelezen, wordt de controlesom opnieuw berekend en vergeleken met de waarde van de controlesom die is opgeslagen in de paginakoptekst. Als de waarden niet overeenkomen, wordt foutbericht 824 (wat een controlesomfout aangeeft) gerapporteerd aan zowel het SQL Server-foutenlogboek als het Windows-gebeurtenislogboek. Een controlesomfout geeft een I/O-padprobleem aan. Voor het bepalen van de hoofdoorzaak is onderzoek van de hardware, firmwarestuurprogramma's, BIOS, filterstuurprogramma's (zoals virussoftware) en andere I/O-padonderdelen vereist.

  • TORN_PAGE_DETECTION

    Hiermee wordt een specifiek 2-bits patroon opgeslagen voor elke sector van 512 bytes op de databasepagina van 8 kilobyte (KB) en opgeslagen in de koptekst van de databasepagina wanneer de pagina naar de schijf wordt geschreven. Wanneer de pagina wordt gelezen van schijf, worden de gescheurde bits die zijn opgeslagen in de paginakoptekst vergeleken met de werkelijke informatie over de paginasector.

    Niet-overeenkomende waarden geven aan dat slechts een deel van de pagina naar de schijf is geschreven. In deze situatie wordt foutbericht 824 (waarmee een gescheurde paginafout wordt aangegeven) gerapporteerd aan zowel het SQL Server-foutenlogboek als het Windows-gebeurtenislogboek. Gescheurde pagina's worden doorgaans gedetecteerd door databaseherstel als het echt een onvolledige schrijfbewerking van een pagina is. Andere I/O-padfouten kunnen echter op elk gewenst moment een gescheurde pagina veroorzaken.

  • GEEN

    Schrijfbewerkingen op databasepagina's genereren geen CHECKSUM- of TORN_PAGE_DETECTION waarde. SQL Server controleert geen controlesom of gescheurde pagina tijdens een leesbewerking, zelfs niet als er een CHECKSUM- of TORN_PAGE_DETECTION-waarde aanwezig is in de paginakoptekst.

Houd rekening met de volgende belangrijke punten wanneer u de optie PAGE_VERIFY gebruikt:

  • De standaardwaarde is CHECKSUM-.

  • Wanneer een gebruiker of systeemdatabase wordt bijgewerkt naar SQL Server 2005 (9.x) of een latere versie, wordt de PAGE_VERIFY waarde (NONE of TORN_PAGE_DETECTION) niet gewijzigd. We raden u aan om over te schakelen naar CHECKSUM.

    Notitie

    In eerdere versies van SQL Server is de optie PAGE_VERIFY database ingesteld op NONE voor de tempdb-database en kan deze niet worden gewijzigd. Vanaf SQL Server 2008 (10.0.x) is de standaardwaarde voor de tempdb database CHECKSUM voor nieuwe installaties van SQL Server. Wanneer u een installatie van SQL Server bijwerkt, blijft de standaardwaarde NONE. De optie kan worden gewijzigd. U wordt aangeraden CHECKSUM te gebruiken voor de tempdb-database.

  • TORN_PAGE_DETECTION mogelijk minder resources gebruikt, maar biedt een minimale subset van de CHECKSUM-beveiliging.

  • PAGE_VERIFY kan worden ingesteld zonder de database offline te halen, de database te vergrendelen of anderszins gelijktijdigheid voor die database te belemmeren.

  • CHECKSUM is wederzijds exclusief voor TORN_PAGE_DETECTION. Beide opties kunnen niet tegelijkertijd worden ingeschakeld.

Wanneer een gescheurde pagina of controlesomfout wordt gedetecteerd, kunt u herstellen door de gegevens te herstellen of de index mogelijk opnieuw te bouwen als de fout alleen is beperkt tot indexpagina's. Als er een controlesomfout optreedt, voert u DBCC CHECKDB uit om te bepalen welk type databasepagina of pagina's is beïnvloed. Zie ARGUMENTEN HERSTELLENvoor meer informatie over herstelopties. Hoewel het herstellen van de gegevens het probleem met gegevensbeschadiging oplost, moet de hoofdoorzaak (bijvoorbeeld schijfhardwarefout) zo snel mogelijk worden vastgesteld en gecorrigeerd om aanhoudende fouten te voorkomen.

SQL Server probeert eventuele leesbewerkingen die mislukken met een controlesom, gescheurde pagina of andere I/O-fout vier keer opnieuw. Als de leesbewerking is geslaagd in een van de nieuwe pogingen, wordt een bericht naar het foutenlogboek geschreven. De opdracht die de leesbewerking heeft geactiveerd, gaat door. De opdracht mislukt met foutbericht 824 als de nieuwe pogingen mislukken.

Zie voor meer informatie over foutberichten 823, 824 en 825:

De huidige instelling van deze optie kan worden bepaald door de kolom page_verify_option te bekijken in de sys.databases catalogusweergave of de eigenschap IsTornPageDetectionEnabled van de functie DATABASEPROPERTYEX.

<remote_data_archive_option> ::=

van toepassing op: SQL Server (vanaf SQL Server 2016 (13.x))

Hiermee schakelt u Stretch Database voor de database in of uit. Zie Stretch Databasevoor meer informatie.

Belangrijk

Stretch Database is afgeschaft in SQL Server 2022 (16.x) en Azure SQL Database. Deze functie wordt verwijderd in een toekomstige versie van de database-engine. Vermijd het gebruik van deze functie in nieuwe ontwikkelwerkzaamheden en plan om toepassingen te wijzigen die momenteel gebruikmaken van deze functie.

REMOTE_DATA_ARCHIVE = { ON ( SERVER = <server_name>, { CREDENTIAL = <db_scoped_credential_name> | FEDERATED_SERVICE_ACCOUNT = AAN | UIT } ) | AF

  • OP

    Hiermee schakelt u Stretch Database voor de database in. Zie Stretch Database inschakelen voor een databasevoor meer informatie, inclusief aanvullende vereisten.

    Hiervoor is db_owner machtiging vereist om Stretch Database in te schakelen voor een tabel. Hiervoor zijn db_owner en CONTROL DATABASE machtigingen vereist om Stretch Database in te schakelen voor een database.

    • SERVER = <server_name>

      Hiermee geeft u het adres van de Azure-server. Neem het .database.windows.net gedeelte van de naam op. Bijvoorbeeld MyStretchDatabaseServer.database.windows.net.

    • CREDENTIAL = <db_scoped_credential_name>

      Hiermee geeft u de database scoped referentie die het exemplaar van SQL Server gebruikt om verbinding te maken met de Azure-server. Zorg ervoor dat de referentie bestaat voordat u deze opdracht uitvoert. Zie CREATE DATABASE SCOPED CREDENTIALvoor meer informatie.

    • FEDERATED_SERVICE_ACCOUNT = { ON | UIT }

      U kunt een federatief serviceaccount voor de on-premises SQL Server gebruiken om te communiceren met de externe Azure-server wanneer aan de volgende voorwaarden wordt voldaan.

      • Het serviceaccount waaronder het exemplaar van SQL Server wordt uitgevoerd, is een domeinaccount.
      • Het domeinaccount behoort tot een domein waarvan Active Directory is gefedereerd met Microsoft Entra-id.
      • De externe Azure-server is geconfigureerd ter ondersteuning van Microsoft Entra-verificatie.
      • Het serviceaccount waaronder het exemplaar van SQL Server wordt uitgevoerd, moet worden geconfigureerd als een dbmanager- of sysadmin-account op de externe Azure-server.

      Als u opgeeft dat het federatieve serviceaccount AAN is, kunt u niet ook het argument CREDENTIAL opgeven. Geef het argument CREDENTIAL op als u UIT opgeeft.

  • AF

    Hiermee schakelt u Stretch Database voor de database uit. Zie Stretch Database uitschakelen en externe gegevens terugbrengenvoor meer informatie.

    U kunt Stretch Database alleen uitschakelen voor een database nadat de database geen tabellen meer bevat die zijn ingeschakeld voor Stretch Database. Nadat u Stretch Database hebt uitgeschakeld, stopt de gegevensmigratie. Queryresultaten bevatten ook geen resultaten meer uit externe tabellen.

    Als u Stretch Database uitschakelt, wordt de externe database niet verwijderd. Als u de externe database wilt verwijderen, verwijdert u deze met behulp van Azure Portal.

PERSISTENT_LOG_BUFFER

van toepassing op: SQL Server 2017 (14.x) en hoger.

Wanneer deze optie is opgegeven, wordt de transactielogboekbuffer gemaakt op een volume dat zich op een schijfapparaat bevindt dat wordt ondersteund door Storage Class Memory (NVDIMM-N niet-compatibele opslag), ook wel een permanente logboekbuffer genoemd. Zie Latentieversnelling voor transactiedoorvoer met opslagklassegeheugen en permanente logboekbuffer toevoegen aan een databasevoor meer informatie.

<service_broker_option> ::=

van toepassing op: SQL Server

Hiermee bepaalt u de volgende Service Broker-opties: hiermee schakelt u de bezorging van berichten in of uit, stelt u een nieuwe Service Broker-id in of stelt u gespreksprioriteiten in op AAN of UIT.

ENABLE_BROKER

Hiermee geeft u op dat Service Broker is ingeschakeld voor de opgegeven database. Berichtbezorging wordt gestart en de vlag is_broker_enabled is ingesteld op true in de sys.databases catalogusweergave. De database behoudt de bestaande Service Broker-id. Service Broker kan niet worden ingeschakeld terwijl de database de principal is in een configuratie voor databasespiegeling.

Notitie

ENABLE_BROKER is een exclusieve databasevergrendeling vereist. Als andere sessies resources in de database hebben vergrendeld, wacht ENABLE_BROKER totdat de andere sessies hun vergrendelingen vrijgeven. Als u Service Broker in een gebruikersdatabase wilt inschakelen, moet u ervoor zorgen dat er geen andere sessies de database gebruiken voordat u de instructie ALTER DATABASE SET ENABLE_BROKER uitvoert, bijvoorbeeld door de database in de modus voor één gebruiker te plaatsen. Als u Service Broker wilt inschakelen in de msdb-database, moet u eerst SQL Server Agent stoppen, zodat Service Broker de benodigde vergrendeling kan verkrijgen.

DISABLE_BROKER

Hiermee geeft u op dat Service Broker is uitgeschakeld voor de opgegeven database. De bezorging van berichten is gestopt en de vlag is_broker_enabled is ingesteld op false in de sys.databases catalogusweergave. De database behoudt de bestaande Service Broker-id.

NEW_BROKER

Hiermee geeft u op dat de database een nieuwe broker-id moet ontvangen. De database fungeert als een nieuwe servicebroker. Als zodanig worden alle bestaande gesprekken in de database onmiddellijk verwijderd zonder dialoogvensterberichten te produceren. Elke route die verwijst naar de oude Service Broker-id, moet opnieuw worden gemaakt met de nieuwe id.

ERROR_BROKER_CONVERSATIONS

Hiermee geeft u op dat de bezorging van Service Broker-berichten is ingeschakeld. Met deze instelling blijft de bestaande Service Broker-id voor de database behouden. Service Broker beëindigt alle gesprekken in de database met een fout. Met deze instelling kunnen toepassingen regelmatig opschonen voor bestaande gesprekken.

HONOR_BROKER_PRIORITY { AAN | UIT }

  • OP

    Verzendbewerkingen houden rekening met de prioriteitsniveaus die zijn toegewezen aan gesprekken. Berichten van gesprekken met hoge prioriteitsniveaus worden verzonden voor berichten van gesprekken waaraan lage prioriteitsniveaus zijn toegewezen.

  • AF

    Verzendbewerkingen worden uitgevoerd alsof alle gesprekken het standaardprioriteitsniveau hebben.

Wijzigingen in de optie HONOR_BROKER_PRIORITY direct van kracht worden voor nieuwe dialoogvensters of dialoogvensters waarvoor geen berichten worden verzonden. Dialoogvensters met berichten die moeten worden verzonden wanneer ALTER DATABASE wordt uitgevoerd, halen de nieuwe instelling pas op nadat sommige berichten voor het dialoogvenster zijn verzonden. De hoeveelheid tijd voordat alle dialoogvensters de nieuwe instelling gaan gebruiken, kan aanzienlijk variëren.

De huidige instelling van deze eigenschap wordt gerapporteerd in de kolom is_broker_priority_honored in de sys.databases catalogusweergave.

<snapshot_option> ::=

Berekent het isolatieniveau van de transactie.

ALLOW_SNAPSHOT_ISOLATION { ON | UIT }

  • OP

    Hiermee schakelt u de optie Momentopname in op databaseniveau. Wanneer deze optie is ingeschakeld, beginnen DML-instructies met het genereren van rijversies, zelfs wanneer er geen transactie gebruikmaakt van Momentopname-isolatie. Zodra deze optie is ingeschakeld, kunnen transacties het isolatieniveau van de SNAPSHOT-transactie opgeven. Wanneer een transactie wordt uitgevoerd op het isolatieniveau SNAPSHOT, zien alle instructies een momentopname van gegevens zoals deze zich aan het begin van de transactie bevinden. Als een transactie die wordt uitgevoerd op het isolatieniveau SNAPSHOT toegang heeft tot gegevens in meerdere databases, moet ALLOW_SNAPSHOT_ISOLATION zijn ingesteld op AAN in alle databases, of elke instructie in de transactie moet vergrendelingshints gebruiken voor elke verwijzing in een FROM-component naar een tabel in een database waar ALLOW_SNAPSHOT_ISOLATION is uitgeschakeld.

  • AF

    Hiermee schakelt u de optie Momentopname uit op databaseniveau. Transacties kunnen het isolatieniveau van de SNAPSHOT-transactie niet opgeven.

Wanneer u ALLOW_SNAPSHOT_ISOLATION instelt op een nieuwe status (van AAN naar UIT of van UIT naar AAN), retourneert ALTER DATABASE geen controle naar de beller totdat alle bestaande transacties in de database zijn doorgevoerd. Als de database al de status heeft die is opgegeven in de instructie ALTER DATABASE, wordt het besturingselement onmiddellijk teruggezet naar de aanroeper. Als de instructie ALTER DATABASE niet snel retourneert, gebruikt u sys.dm_tran_active_snapshot_database_transactions om te bepalen of er langlopende transacties zijn. Als de instructie ALTER DATABASE wordt geannuleerd, blijft de database de status behouden waarin deze zich bevond toen ALTER DATABASE werd gestart. De sys.databases catalogusweergave geeft de status van momentopname-isolatietransacties in de database aan. Als snapshot_isolation_state_desc = IN_TRANSITION_TO_ON, wordt de opdracht ALTER DATABASE ... ALLOW_SNAPSHOT_ISOLATION OFF zes seconden onderbroken en wordt de bewerking opnieuw uitgevoerd.

U kunt de status van ALLOW_SNAPSHOT_ISOLATION niet wijzigen als de database OFFLINE is.

Als u ALLOW_SNAPSHOT_ISOLATION instelt in een READ_ONLY database, wordt de instelling bewaard als de database later is ingesteld op READ_WRITE.

U kunt de ALLOW_SNAPSHOT_ISOLATION-instellingen voor de master, model, msdben tempdb databases wijzigen. De instelling wordt bewaard telkens wanneer het exemplaar van de database-engine wordt gestopt en opnieuw wordt gestart als u de instelling voor tempdbwijzigt. Als u de instelling voor modelwijzigt, wordt deze instelling de standaardinstelling voor nieuwe databases die worden gemaakt, met uitzondering van tempdb.

De optie is standaard INGESCHAKELD voor de master- en msdb-databases.

De huidige instelling van deze optie kan worden bepaald door de kolom snapshot_isolation_state in de sys.databases catalogusweergave te bekijken.

READ_COMMITTED_SNAPSHOT { AAN | UIT }

  • OP

    Hiermee schakelt u Read-Committed optie Momentopname in op databaseniveau. Wanneer deze optie is ingeschakeld, beginnen DML-instructies met het genereren van rijversies, zelfs wanneer er geen transactie gebruikmaakt van Momentopname-isolatie. Zodra deze optie is ingeschakeld, gebruiken de transacties die het isolatieniveau lezen aangeven rijversiebeheer in plaats van vergrendelen. Alle instructies zien een momentopname van gegevens zoals deze bestaan aan het begin van de instructie wanneer een transactie wordt uitgevoerd op het isolatieniveau READ COMMITTED.

  • AF

    Hiermee schakelt u Read-Committed optie Momentopname op databaseniveau uit. Transacties die het isolatieniveau READ COMMITTED opgeven, maken gebruik van vergrendeling.

Als u READ_COMMITTED_SNAPSHOT AAN of UIT wilt instellen, moeten er geen actieve verbindingen met de database zijn, met uitzondering van de verbinding met de opdracht ALTER DATABASE. De database hoeft zich echter niet in de modus voor één gebruiker te bevinden. U kunt de status van deze optie niet wijzigen wanneer de database OFFLINE is.

Als u READ_COMMITTED_SNAPSHOT instelt in een READ_ONLY database, wordt de instelling bewaard wanneer de database later is ingesteld op READ_WRITE.

READ_COMMITTED_SNAPSHOT kan niet worden ingeschakeld voor de master, tempdbof msdb systeemdatabases. Als u de instelling voor modelwijzigt, wordt deze instelling de standaardinstelling voor nieuwe databases die zijn gemaakt, met uitzondering van tempdb.

De huidige instelling van deze optie kan worden bepaald door de kolom is_read_committed_snapshot_on in de sys.databases catalogusweergave te bekijken.

Waarschuwing

Wanneer een tabel wordt gemaakt met DUURZAAMHEID = SCHEMA_ONLYen READ_COMMITTED_SNAPSHOT vervolgens wordt gewijzigd met ALTER DATABASE, gaan de gegevens in de tabel verloren.

MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT { AAN | UIT }

van toepassing op: SQL Server (vanaf SQL Server 2014 (12.x))

  • OP

    Wanneer het niveau van transactieisolatie is ingesteld op een isolatieniveau dat lager is dan MOMENTOPNAME, worden alle geïnterpreteerde Transact-SQL bewerkingen op tabellen die zijn geoptimaliseerd voor geheugen, uitgevoerd onder MOMENTOPNAME-isolatie. Voorbeelden van isolatieniveaus die lager zijn dan momentopnamen zijn READ COMMITTED of READ UNCOMMITTED. Deze bewerkingen worden uitgevoerd of het niveau van transactieisolatie expliciet is ingesteld op sessieniveau, of de standaardinstelling wordt impliciet gebruikt.

  • AF

    Verhoogt het niveau van transactieisolatie niet voor geïnterpreteerde Transact-SQL bewerkingen op tabellen die zijn geoptimaliseerd voor geheugen.

U kunt de status van MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT niet wijzigen als de database OFFLINE is.

De standaardoptie is UIT.

De huidige instelling van deze optie kan worden bepaald door de kolom is_memory_optimized_elevate_to_snapshot_on in de sys.databases catalogusweergave te bekijken.

<sql_option> ::=

Hiermee bepaalt u de ANSI-nalevingsopties op databaseniveau.

ANSI_NULL_DEFAULT { AAN | UIT }

Bepaalt de standaardwaarde, NULL of NOT NULL, van een kolom of door de gebruiker gedefinieerde CLR-type waarvoor de null-waarde niet expliciet is gedefinieerd in CREATE TABLE- of ALTER TABLE-instructies. Kolommen die zijn gedefinieerd met beperkingen volgen regels voor beperkingen, ongeacht wat deze instelling kan zijn.

  • OP

    De standaardwaarde voor een niet-gedefinieerde kolom is NULL.

  • AF

    De standaardwaarde voor een niet-gedefinieerde kolom is NOT NULL.

Instellingen op verbindingsniveau die zijn ingesteld met de SET-instructie overschrijven de standaardinstelling op databaseniveau voor ANSI_NULL_DEFAULT. ODBC- en OLE DB-clients geven standaard een set-instructieinstelling op verbindingsniveau uit ANSI_NULL_DEFAULT op AAN voor de sessie. De clients voeren de instructie uit wanneer u verbinding maakt met een exemplaar van SQL Server. Zie SET ANSI_NULL_DFLT_ONvoor meer informatie.

Voor ANSI-compatibiliteit stelt u de databaseoptie in ANSI_NULL_DEFAULT op AAN wijzigt de standaardwaarde van de database in NULL.

U kunt de status van deze optie bepalen door de kolom is_ansi_null_default_on te bekijken in de sys.databases catalogusweergave. U kunt ook de status bepalen door de eigenschap IsAnsiNullDefault van de DATABASEPROPERTYEX- functie te onderzoeken.

ANSI_NULLS { AAN | UIT }

  • OP

    Alle vergelijkingen met een null-waarde resulteren in ONBEKEND.

  • AF

    Vergelijkingen van niet-Unicode-waarden met een null-waarde resulteren in WAAR als beide waarden NULL zijn.

Belangrijk

In een toekomstige versie van SQL Server is ANSI_NULLS altijd INGESCHAKELD en eventuele toepassingen die de optie expliciet op UIT instellen, veroorzaken een fout. Vermijd het gebruik van deze functie in nieuwe ontwikkelwerkzaamheden en plan om toepassingen te wijzigen die momenteel gebruikmaken van deze functie.

Instellingen op verbindingsniveau die zijn ingesteld met de SET-instructie overschrijven de standaarddatabase-instelling voor ANSI_NULLS. ODBC- en OLE DB-clients geven standaard een set-instructieinstelling op verbindingsniveau uit ANSI_NULLS op AAN voor de sessie. De clients voeren de instructie uit wanneer u verbinding maakt met een exemplaar van SQL Server. Zie SET ANSI_NULLSvoor meer informatie.

Belangrijk

SET ANSI_NULLS moet ook worden ingesteld op AAN wanneer u indexen maakt of wijzigt in indexen in berekende kolommen of geïndexeerde weergaven.

U kunt de status van deze optie bepalen door de kolom is_ansi_nulls_on te bekijken in de sys.databases catalogusweergave. U kunt ook de status bepalen door de eigenschap IsAnsiNullsEnabled van de DATABASEPROPERTYEX- functie te onderzoeken.

ANSI_PADDING { AAN | UIT }

  • OP

    Tekenreeksen worden opgevuld tot dezelfde lengte voordat de conversie wordt uitgevoerd. Ook opgevuld tot dezelfde lengte voordat u een varchar of nvarchar gegevenstype invoegt.

  • AF

    Voegt volgspaties in tekenwaarden in varchar- of nvarchar kolommen in. Laat ook volgnullen achter in binaire waarden die worden ingevoegd in varbinaire kolommen. Waarden worden niet opgevuld tot de lengte van de kolom.

    Wanneer UIT is opgegeven, is deze instelling alleen van invloed op de definitie van nieuwe kolommen.

Belangrijk

In een toekomstige versie van SQL Server is ANSI_PADDING altijd INGESCHAKELD en eventuele toepassingen die de optie expliciet op UIT instellen, veroorzaken een fout. Vermijd het gebruik van deze functie in nieuwe ontwikkelwerkzaamheden en plan om toepassingen te wijzigen die momenteel gebruikmaken van deze functie. U wordt aangeraden ANSI_PADDING altijd in te stellen op AAN. ANSI_PADDING moet zijn ingeschakeld wanneer u indexen maakt of bewerkt voor berekende kolommen of geïndexeerde weergaven.

char(n) en binary(n) kolommen die null-waarden toestaan, worden opgevuld met de kolomlengte wanneer ANSI_PADDING is ingesteld op AAN. Afsluitende lege waarden en nullen worden afgekapt wanneer ANSI_PADDING uit is. char(n) en binary(n) kolommen die null-waarden niet toestaan, worden altijd opgevuld met de lengte van de kolom.

Instellingen op verbindingsniveau die zijn ingesteld met de SET-instructie overschrijven de standaardinstelling op databaseniveau voor ANSI_PADDING. ODBC- en OLE DB-clients geven standaard een set-instructieinstelling op verbindingsniveau uit ANSI_PADDING op AAN voor de sessie. De clients voeren de instructie uit wanneer u verbinding maakt met een exemplaar van SQL Server. Zie SET ANSI_PADDINGvoor meer informatie.

U kunt de status van deze optie bepalen door de kolom is_ansi_padding_on te bekijken in de sys.databases catalogusweergave. U kunt ook de status bepalen door de eigenschap IsAnsiPaddingEnabled van de DATABASEPROPERTYEX- functie te onderzoeken.

ANSI_WARNINGS { AAN | UIT }

  • OP

    Fouten of waarschuwingen worden uitgegeven wanneer er voorwaarden zoals delen door nul optreden. Fouten en waarschuwingen worden ook uitgegeven wanneer null-waarden worden weergegeven in statistische functies.

  • AF

    Er worden geen waarschuwingen gegenereerd en null-waarden worden geretourneerd wanneer voorwaarden zoals delen door nul optreden.

Belangrijk

SET ANSI_WARNINGS moet worden ingesteld op AAN wanneer u indexen maakt of wijzigt in indexen in berekende kolommen of geïndexeerde weergaven.

Instellingen op verbindingsniveau die zijn ingesteld met de SET-instructie overschrijven de standaarddatabase-instelling voor ANSI_WARNINGS. ODBC- en OLE DB-clients geven standaard een set-instructieinstelling op verbindingsniveau uit ANSI_WARNINGS op AAN voor de sessie. De clients voeren de instructie uit wanneer u verbinding maakt met een exemplaar van SQL Server. Zie SET ANSI_WARNINGSvoor meer informatie.

U kunt de status van deze optie bepalen door de kolom is_ansi_warnings_on te bekijken in de sys.databases catalogusweergave. U kunt ook de status bepalen door de eigenschap IsAnsiWarningsEnabled van de DATABASEPROPERTYEX- functie te onderzoeken.

ARITHABORT { ON | UIT }

  • OP

    Een query wordt beëindigd wanneer er een overloop- of deel-by-nul-fout optreedt tijdens de uitvoering van de query.

  • AF

    Er wordt een waarschuwingsbericht weergegeven wanneer een van deze fouten optreedt. De query, batch of transactie blijft verwerken alsof er geen fout is opgetreden, zelfs als er een waarschuwing wordt weergegeven.

Belangrijk

SET ARITHABORT moet worden ingesteld op AAN wanneer u indexen maakt of wijzigt in indexen op berekende kolommen of geïndexeerde weergaven.

U kunt de status van deze optie bepalen door de kolom is_arithabort_on te bekijken in de sys.databases catalogusweergave. U kunt ook de status bepalen door de eigenschap IsArithmeticAbortEnabled van de DATABASEPROPERTYEX- functie te onderzoeken.

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

Zie ALTER DATABASE-compatibiliteitsniveauvoor meer informatie.

CONCAT_NULL_YIELDS_NULL { AAN | UIT }

  • OP

    Het resultaat van een samenvoegingsbewerking is NULL wanneer een van beide operanden NULL is. Als u bijvoorbeeld de tekenreeks 'Dit is' samenvoegt en NULL de WAARDE NULL retourneert in plaats van de waarde 'Dit is'.

  • AF

    De null-waarde wordt behandeld als een lege tekenreeks.

Belangrijk

CONCAT_NULL_YIELDS_NULL moet worden ingesteld op AAN wanneer u indexen maakt of wijzigt in indexen in berekende kolommen of geïndexeerde weergaven.

In toekomstige versies van SQL Server is CONCAT_NULL_YIELDS_NULL altijd INGESCHAKELD en eventuele toepassingen die de optie expliciet op UIT instellen, activeren een fout. Vermijd het gebruik van deze functie in nieuwe ontwikkelwerkzaamheden en plan om toepassingen te wijzigen die momenteel gebruikmaken van deze functie.

Instellingen op verbindingsniveau die zijn ingesteld met de SET-instructie overschrijven de standaarddatabase-instelling voor CONCAT_NULL_YIELDS_NULL. ODBC- en OLE DB-clients geven standaard een set-instructieinstelling op verbindingsniveau uit CONCAT_NULL_YIELDS_NULL aan AAN voor de sessie wanneer er verbinding wordt gemaakt met een exemplaar van SQL Server. Zie SET CONCAT_NULL_YIELDS_NULLvoor meer informatie.

U kunt de status van deze optie bepalen door de kolom is_concat_null_yields_null_on te bekijken in de sys.databases catalogusweergave. U kunt ook de status bepalen door de eigenschap IsNullConcat van de DATABASEPROPERTYEX- functie te onderzoeken.

NUMERIC_ROUNDABORT { AAN | UIT }

  • OP

    Er wordt een fout gegenereerd wanneer verlies van precisie optreedt in een expressie.

  • AF

    Verlies van precisie genereert geen foutbericht en het resultaat wordt afgerond op de precisie van de kolom of variabele die het resultaat opslaat.

    Belangrijk

    NUMERIC_ROUNDABORT moet zijn ingesteld op UIT wanneer u indexen maakt of wijzigt in indexen in berekende kolommen of geïndexeerde weergaven.

U kunt de status van deze optie bepalen in de kolom is_numeric_roundabort_on in de sys.databases catalogusweergave. U kunt ook de status bepalen door de eigenschap IsNumericRoundAbortEnabled van de DATABASEPROPERTYEX- functie te onderzoeken.

QUOTED_IDENTIFIER { AAN | UIT }

  • OP

    Dubbele aanhalingstekens kunnen worden gebruikt om gescheiden id's in te sluiten.

    Alle tekenreeksen die door dubbele aanhalingstekens worden gescheiden, worden geïnterpreteerd als object-id's. De Transact-SQL-regels voor id's hoeven niet te worden gevolgd. Dit kunnen trefwoorden zijn en tekens bevatten die niet zijn toegestaan in Transact-SQL id's. Als een dubbel aanhalingsteken (") deel uitmaakt van de id, kan deze worden vertegenwoordigd door twee dubbele aanhalingstekens ("").

  • AF

    Id's mogen niet tussen aanhalingstekens staan en moeten alle Transact-SQL regels voor id's volgen. Letterlijke tekens kunnen worden gescheiden door enkele of dubbele aanhalingstekens.

Met SQL Server kunnen id's ook worden gescheiden door vierkante haken ([ en ]). Id's met haakjes kunnen altijd worden gebruikt, ongeacht de QUOTED_IDENTIFIER instelling. Zie Database-id'svoor meer informatie.

Wanneer een tabel wordt gemaakt, wordt de optie AAN-ID altijd opgeslagen als AAN in de metagegevens van de tabel. De optie wordt opgeslagen, zelfs als de optie is ingesteld op UIT wanneer de tabel wordt gemaakt.

Instellingen op verbindingsniveau die zijn ingesteld met de SET-instructie overschrijven de standaarddatabase-instelling voor QUOTED_IDENTIFIER. ODBC- en OLE DB-clients geven standaard een set-instructieinstelling op verbindingsniveau uit QUOTED_IDENTIFIER op AAN. De clients voeren de instructie uit wanneer u verbinding maakt met een exemplaar van SQL Server. Zie SET QUOTED_IDENTIFIERvoor meer informatie.

U kunt de status van deze optie bepalen door de kolom is_quoted_identifier_on te bekijken in de sys.databases catalogusweergave. U kunt ook de status bepalen door de eigenschap IsQuotedIdentifiersEnabled van de DATABASEPROPERTYEX- functie te onderzoeken.

RECURSIVE_TRIGGERS { AAN | UIT }

  • OP

    Recursieve schieting van AFTER-triggers is toegestaan.

  • AF

    U kunt de status van deze optie bepalen door de kolom is_recursive_triggers_on te bekijken in de sys.databases catalogusweergave. U kunt ook de status bepalen door de eigenschap IsRecursiveTriggersEnabled van de DATABASEPROPERTYEX- functie te onderzoeken.

Notitie

Alleen directe recursie wordt voorkomen wanneer RECURSIVE_TRIGGERS is ingesteld op UIT. Als u indirecte recursie wilt uitschakelen, moet u ook de serveroptie geneste triggers instellen op 0.

U kunt de status van deze optie bepalen door de kolom is_recursive_triggers_on te bekijken in de sys.databases catalogusweergave of de eigenschap IsRecursiveTriggersEnabled van de functie DATABASEPROPERTYEX.

<suspend_for_snapshot_backup> ::=

van toepassing op: SQL Server (vanaf SQL Server 2022 (16.x))

Onderbreekt databases voor back-ups van momentopnamen. Kan een groep van een of meer databases definiëren. Kan de modus alleen kopiëren aanwijzen.

SET SUSPEND_FOR_SNAPSHOT_BACKUP = { AAN | UIT }

Onderbreekt of onderbreekt databases. Standaard UIT.

MODE = COPY_ONLY

Facultatief. Maakt gebruik van COPY_ONLY modus.

<target_recovery_time_option> ::=

van toepassing op: SQL Server (vanaf SQL Server 2012 (11.x))

Hiermee geeft u de frequentie van indirecte controlepunten per database. Vanaf SQL Server 2016 (13.x) is de standaardwaarde voor nieuwe databases 1 minuut, wat aangeeft dat de database indirecte controlepunten gebruikt. Voor oudere versies is de standaardwaarde 0, wat aangeeft dat de database automatische controlepunten gebruikt, waarvan de frequentie afhankelijk is van de herstelintervalinstelling van het serverexemplaren. Microsoft raadt 1 minuut aan voor de meeste systemen.

TARGET_RECOVERY_TIME = target_recovery_time { SECONDS | MINUTEN }

  • target_recovery_time

    Hiermee geeft u de maximumgrens voor de tijd voor het herstellen van de opgegeven database in het geval van een crash. target_recovery_time is int.

  • SECONDEN

    Geeft aan dat target_recovery_time wordt uitgedrukt als het aantal seconden.

  • NOTULEN

    Geeft aan dat target_recovery_time wordt uitgedrukt als het aantal minuten.

Zie Databasecontrolepuntenvoor meer informatie over indirecte controlepunten.

MET <beëindiging> ::=

Hiermee geeft u op wanneer onvolledige transacties moeten worden teruggedraaid wanneer de database van de ene status naar de andere wordt overgezet. Als de beëindigingsclausule wordt weggelaten, wacht de instructie ALTER DATABASE voor onbepaalde tijd als er een vergrendeling op de database is. Er kan slechts één beëindigingsclausule worden opgegeven en volgt de SET-componenten.

Notitie

Niet alle databaseopties maken gebruik van de component WITH <beëindiging>. Zie de tabel onder Instellingsopties van de sectie Opmerkingen van dit artikel voor meer informatie.

  • TERUGDRAAIEN NA geheel getal [SECONDEN] | DIRECT TERUGDRAAIEN

    Hiermee geeft u op of u wilt terugdraaien na het opgegeven aantal seconden of onmiddellijk.

  • NO_WAIT

    Hiermee geeft u op dat de aanvraag mislukt als de aangevraagde databasestatus of optiewijziging niet onmiddellijk kan worden voltooid. Onmiddellijk voltooien betekent niet wachten op het doorvoeren of terugdraaien van transacties.

Opties instellen

Als u de huidige instellingen voor databaseopties wilt ophalen, gebruikt u de sys.databases catalogusweergave of DATABASEPROPERTYEX-

Nadat u een databaseoptie hebt ingesteld, wordt de nieuwe instelling onmiddellijk van kracht.

U kunt de standaardwaarden wijzigen voor een van de databaseopties voor alle nieuw gemaakte databases. Hiervoor wijzigt u de juiste databaseoptie in de model-database.

Niet alle databaseopties gebruiken de component WITH <beëindiging> of kunnen worden opgegeven in combinatie met andere opties. De volgende tabel bevat deze opties en hun optie en beëindigingsstatus.

Categorie Opties Kan worden opgegeven met andere opties Kan de component WITH <beëindiging> gebruiken
<db_state_option> Ja Ja
<db_user_access_option> Ja Ja
<db_update_option> Ja Ja
<delayed_durability_option> Ja Ja
<external_access_option> Ja Nee
<cursor_option> Ja Nee
<auto_option> Ja Nee
<sql_option> Ja Nee
<recovery_option> Ja Nee
<target_recovery_time_option> Nee Ja
<database_mirroring_option> Nee Nee
ALLOW_SNAPSHOT_ISOLATION Nee Nee
READ_COMMITTED_SNAPSHOT Nee Ja
MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT Ja Ja
<service_broker_option> Ja Nee
DATE_CORRELATION_OPTIMIZATION Ja Ja
<parameterization_option> Ja Ja
<change_tracking_option> Ja Ja
<db_encryption_option> Ja Nee
<accelerated_database_recovery> Ja Ja

De plancache voor het exemplaar van SQL Server wordt gewist door een van de volgende opties in te stellen:

OFFLINE

ONLINE

MODIFY_NAME

SORTEREN

READ_ONLY

READ_WRITE

STANDAARDBESTANDSGROEP WIJZIGEN

FILEGROUP-READ_WRITE WIJZIGEN

FILEGROUP-READ_ONLY WIJZIGEN

De plancache wordt ook leeggemaakt in de volgende scenario's.

  • Voor een database is de optie AUTO_CLOSE database ingesteld op AAN. Wanneer er geen gebruikersverbindingsverwijzingen zijn of de database worden gebruikt, probeert de achtergrondtaak de database automatisch te sluiten en af te sluiten.
  • U voert verschillende query's uit op een database met standaardopties. Vervolgens wordt de database verwijderd.
  • Een momentopname van een database voor een brondatabase wordt verwijderd.
  • U hebt het transactielogboek voor een database opnieuw opgebouwd.
  • U herstelt een databaseback-up.
  • U koppelt een database los.

Als u de plancache wist, wordt een hercompilatie van alle volgende uitvoeringsplannen veroorzaakt. Dit kan een plotselinge, tijdelijke afname van de queryprestaties veroorzaken. Voor elk gewist cachearchief in de plancache bevat het SQL Server-foutenlogboek het volgende informatieve bericht: 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. Dit bericht wordt elke vijf minuten geregistreerd zolang de cache binnen dat tijdsinterval wordt leeggemaakt.

Voorbeelden

Een. Opties instellen voor een database

In het volgende voorbeeld worden de verificatieopties voor het herstelmodel en de gegevenspagina ingesteld voor de AdventureWorks2022 voorbeelddatabase.

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

B. De database instellen op READ_ONLY

Het wijzigen van de status van een database of bestandsgroep in READ_ONLY of READ_WRITE vereist exclusieve toegang tot de database. In het volgende voorbeeld wordt de database ingesteld op SINGLE_USER modus om exclusieve toegang te verkrijgen. In het voorbeeld wordt vervolgens de status van de AdventureWorks2022-database ingesteld op READ_ONLY en wordt toegang tot de database geretourneerd aan alle gebruikers.

Notitie

In dit voorbeeld wordt de beëindigingsoptie WITH ROLLBACK IMMEDIATE in de eerste ALTER DATABASE-instructie gebruikt. Alle onvolledige transacties worden teruggedraaid en eventuele andere verbindingen met de AdventureWorks2022 database worden onmiddellijk verbroken.

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. Isolatie van momentopnamen inschakelen voor een database

In het volgende voorbeeld wordt de optie voor isolatieframework voor momentopnamen ingeschakeld voor de AdventureWorks2022-database.

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

De resultatenset laat zien dat het framework voor isolatie van momentopnamen is ingeschakeld.

naam snapshot_isolation_state beschrijving
[database_name] 1 OP

D. Wijzigingen bijhouden inschakelen, wijzigen of uitschakelen

In het volgende voorbeeld wordt het bijhouden van wijzigingen voor de AdventureWorks2022 database ingeschakeld en wordt de bewaarperiode ingesteld op 2 dagen.

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

In het volgende voorbeeld ziet u hoe u de bewaarperiode wijzigt in 3 dagen.

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

In het volgende voorbeeld ziet u hoe u het bijhouden van wijzigingen voor de AdventureWorks2022-database kunt uitschakelen.

ALTER DATABASE [database_name]
SET CHANGE_TRACKING = OFF;

E. Query Store inschakelen

van toepassing op: SQL Server (vanaf SQL Server 2016 (13.x))

In het volgende voorbeeld wordt Query Store ingeschakeld en worden de parameters geconfigureerd.

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. Query Store met wachtstatistieken inschakelen

van toepassing op: SQL Server (vanaf SQL Server 2017 (14.x))

In het volgende voorbeeld wordt Query Store ingeschakeld en worden de parameters geconfigureerd.

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. Query Store inschakelen met aangepaste beleidsopties voor vastleggen

van toepassing op: SQL Server (vanaf SQL Server 2019 (15.x))

In het volgende voorbeeld wordt Query Store ingeschakeld en worden de parameters geconfigureerd.

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

* SQL Database *  

 

SQL Database

Compatibiliteitsniveaus zijn SET opties, maar worden beschreven in ALTER DATABASE-compatibiliteitsniveau.

Notitie

Veel opties voor databasesets kunnen worden geconfigureerd voor de huidige sessie met behulp van SET-instructies en worden vaak geconfigureerd door toepassingen wanneer ze verbinding maken. Opties voor set op sessieniveau overschrijven de ALTER DATABASE SET waarden. De databaseopties die in de volgende secties worden beschreven, zijn waarden die kunnen worden ingesteld voor sessies die niet expliciet andere ingestelde optiewaarden bevatten.

Syntaxis

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 }

Argumenten

database_name

De naam van de database die moet worden gewijzigd.

  • ACTUEEL

    CURRENT voert de actie uit in de huidige database. CURRENT wordt niet ondersteund voor alle opties in alle contexten. Als CURRENT mislukt, geeft u de databasenaam op.

<auto_option> ::=

Hiermee bepaalt u automatische opties.

AUTO_CREATE_STATISTICS { AAN | UIT }

  • OP

    Query Optimizer maakt zo nodig statistieken voor afzonderlijke kolommen in querypredicaten om queryplannen en queryprestaties te verbeteren. Deze statistieken met één kolom worden gemaakt wanneer Query Optimizer query's compileert. De statistieken met één kolom worden alleen gemaakt voor kolommen die nog niet de eerste kolom van een bestaand statistiekenobject zijn.

    De standaardwaarde is AAN. U wordt aangeraden de standaardinstelling voor de meeste databases te gebruiken.

  • AF

    Query Optimizer maakt geen statistieken voor afzonderlijke kolommen in querypredicaten bij het compileren van query's. Als u deze optie instelt op UIT, kunnen suboptimale queryplannen en verminderde queryprestaties worden veroorzaakt.

U kunt de status van deze optie bepalen door de kolom is_auto_create_stats_on te bekijken in de sys.databases catalogusweergave. U kunt ook de status bepalen door de eigenschap IsAutoCreateStatistics van de DATABASEPROPERTYEX- functie te onderzoeken.

Zie de sectie Statistiekenopties in Statistiekenvoor meer informatie.

INCREMENTEEL = AAN | AF

Stel AUTO_CREATE_STATISTICS in op AAN en stel INCREMENTEEL in op AAN. Met deze instelling worden automatisch gemaakte statistieken gemaakt als incrementeel wanneer incrementele statistieken worden ondersteund. De standaardwaarde is UIT. Zie CREATE STATISTICSvoor meer informatie.

AUTO_SHRINK { AAN | UIT }

  • OP

    De databasebestanden zijn kandidaten voor periodieke verkleining. Tenzij u een specifieke vereiste hebt, stelt u de optie AUTO_SHRINK database niet in op AAN. Zie Een database verkleinenvoor meer informatie.

Zowel gegevensbestanden als logboekbestanden kunnen automatisch worden verkleind. AUTO_SHRINK verkleint de grootte van het transactielogboek alleen als u de database instelt op SIMPLE-herstelmodel of als u een back-up van het logboek maakt. Wanneer deze is ingesteld op UIT, worden de databasebestanden niet automatisch verkleind tijdens periodieke controles op ongebruikte ruimte.

De optie AUTO_SHRINK zorgt ervoor dat bestanden worden verkleind wanneer meer dan 25 procent van het bestand ongebruikte ruimte bevat. De optie zorgt ervoor dat het bestand wordt verkleind tot een van de twee grootten. Het verkleint naar de items die groter zijn:

  • De grootte waarbij 25 procent van het bestand ongebruikte ruimte is
  • De grootte van het bestand toen het werd gemaakt

U kunt een alleen-lezen database niet verkleinen.

  • AF

    De databasebestanden worden niet automatisch verkleind tijdens periodieke controles op ongebruikte ruimte.

U kunt de status van deze optie bepalen door de kolom is_auto_shrink_on te bekijken in de sys.databases catalogusweergave. U kunt ook de status bepalen door de eigenschap IsAutoShrink van de DATABASEPROPERTYEX- functie te onderzoeken.

Notitie

De optie AUTO_SHRINK is niet beschikbaar in een ingesloten database.

AUTO_UPDATE_STATISTICS { AAN | UIT }

  • OP

    Hiermee geeft u op dat Query Optimizer statistieken bijwerken wanneer ze worden gebruikt door een query en wanneer ze mogelijk verouderd zijn. Statistieken worden verouderd na het invoegen, bijwerken, verwijderen of samenvoegen van bewerkingen wijzigen de gegevensdistributie in de tabel of geïndexeerde weergave. Query Optimizer bepaalt wanneer statistieken verouderd kunnen zijn door het aantal wijzigingen van gegevens te tellen sinds de laatste update van de statistieken en het vergelijken van het aantal wijzigingen aan een drempelwaarde. De drempelwaarde is gebaseerd op het aantal rijen in de tabel of geïndexeerde weergave.

    Query Optimizer controleert op verouderde statistieken voordat een query wordt gecompileerd en een queryplan in de cache wordt uitgevoerd. Query Optimizer maakt gebruik van de kolommen, tabellen en geïndexeerde weergaven in het querypredicaat om te bepalen welke statistieken verouderd kunnen zijn. Query Optimizer bepaalt deze informatie voordat een query wordt gecompileerd. Voordat u een queryplan in de cache uitvoert, controleert de database-engine of het queryplan verwijst naar up-to-datumstatistieken.

    De optie AUTO_UPDATE_STATISTICS is van toepassing op statistieken die zijn gemaakt voor indexen, enkelvoudige kolommen in querypredicaten en statistieken die worden gemaakt met behulp van de instructie CREATE STATISTICS. Deze optie is ook van toepassing op gefilterde statistieken.

    De standaardwaarde is AAN. U wordt aangeraden de standaardinstelling voor de meeste databases te gebruiken.

    Gebruik de optie AUTO_UPDATE_STATISTICS_ASYNC om op te geven of de statistieken synchroon of asynchroon worden bijgewerkt.

  • AF

    Hiermee geeft u op dat Query Optimizer geen statistieken bijwerkt wanneer ze worden gebruikt door een query. Query Optimizer werkt ook geen statistieken bij wanneer deze verouderd zijn. Als u deze optie instelt op UIT, kunnen suboptimale queryplannen en verminderde queryprestaties worden veroorzaakt.

    U kunt de status van deze optie bepalen door de kolom is_auto_update_stats_on te bekijken in de sys.databases catalogusweergave. U kunt ook de status bepalen door de eigenschap IsAutoUpdateStatistics van de DATABASEPROPERTYEX- functie te onderzoeken.

    Zie de sectie Statistiekenopties in Statistiekenvoor meer informatie.

AUTO_UPDATE_STATISTICS_ASYNC { AAN | UIT }

  • OP

    Hiermee geeft u op dat updates voor statistieken voor de AUTO_UPDATE_STATISTICS optie asynchroon zijn. Query Optimizer wacht niet totdat de updates van statistieken zijn voltooid voordat query's worden gecompileerd.

    Het instellen van deze optie op AAN heeft geen effect, tenzij AUTO_UPDATE_STATISTICS is ingesteld op AAN.

    De optie AUTO_UPDATE_STATISTICS_ASYNC is standaard ingesteld op UIT en Query Optimizer werkt statistieken synchroon bij.

  • AF

    Hiermee geeft u op dat statistiekenupdates voor de optie AUTO_UPDATE_STATISTICS synchroon zijn. Query Optimizer wacht tot de updates van statistieken zijn voltooid voordat query's worden gecompileerd.

    Het instellen van deze optie op UIT heeft geen effect, tenzij AUTO_UPDATE_STATISTICS is ingesteld op AAN.

U kunt de status van deze optie bepalen door de kolom is_auto_update_stats_async_on te bekijken in de sys.databases catalogusweergave.

Zie de sectie Statistiekenopties in Statistiekenvoor meer informatie over het gebruik van synchrone of asynchrone statistiekenupdates.

<automatic_tuning_option> ::=

Hiermee bepaalt u automatische opties voor Automatisch afstemmen. U kunt de opties voor de volgende instellingen bekijken in Azure Portal of via T-SQL in de weergave sys.database_automatic_tuning_options.

AUTOMATIC_TUNING = { AUTO | OVERNEMEN | AANGEPAST }

  • AUTO

    Als u de waarde voor automatisch afstemmen instelt op AUTO, worden standaardinstellingen voor Azure-configuratie toegepast voor automatisch afstemmen. In Azure Portal geeft dit de optie 'Overnemen van: Azure-standaardinstellingen'.

  • ERVEN

    Als u de waarde INHERIT gebruikt, wordt de standaardconfiguratie overgenomen van de bovenliggende server. In Azure Portal geeft dit de optie 'Overnemen van: Server' weer. Dit is vooral handig als u de configuratie voor automatisch afstemmen op een bovenliggende server wilt aanpassen en alle databases op een dergelijke server deze aangepaste instellingen wilt overnemen. Om de overname te laten werken, moeten de drie afzonderlijke afstemmingsopties FORCE_LAST_GOOD_PLAN, CREATE_INDEX en DROP_INDEX worden ingesteld op STANDAARD voor databases.

  • GEWOONTE

    Met behulp van de aangepaste waarde moet u elk van de opties voor automatisch afstemmen configureren die beschikbaar zijn voor databases. In De Azure-portal geeft dit de optie 'Overnemen van: niet overnemen'.

CREATE_INDEX = { DEFAULT | AAN | UIT }

Schakelt automatisch indexbeheer in of uit CREATE_INDEX optie van Automatisch afstemmen. U kunt de status voor deze optie bekijken in Azure Portal of via T-SQL in de weergave sys.database_automatic_tuning_options.

  • VERSTEK

    Neemt standaardinstellingen over van de server. In dit geval worden opties voor het in- of uitschakelen van afzonderlijke functies voor automatisch afstemmen gedefinieerd op serverniveau.

  • OP

    Wanneer deze functie is ingeschakeld, worden ontbrekende indexen automatisch gegenereerd in een database. Na het maken van de index worden de prestaties van de workload gecontroleerd. Wanneer een dergelijke gemaakte index geen voordelen meer biedt voor de prestaties van de werkbelasting, wordt deze automatisch teruggezet. Indexen die automatisch worden gemaakt, worden gemarkeerd als een door het systeem gegenereerde index.

  • AF

    Er worden niet automatisch ontbrekende indexen in de database gegenereerd.

DROP_INDEX = { DEFAULT | AAN | UIT }

Schakelt automatisch indexbeheer in of uit DROP_INDEX optie van Automatisch afstemmen. U kunt de status voor deze optie bekijken in Azure Portal of via T-SQL in de weergave sys.database_automatic_tuning_options.

  • VERSTEK

    Neemt standaardinstellingen over van de server. In dit geval worden opties voor het in- of uitschakelen van afzonderlijke functies voor automatisch afstemmen gedefinieerd op serverniveau.

  • OP

    Hiermee worden automatisch dubbele of niet meer nuttige indexen voor de prestatieworkload verwijderd.

  • AF

    Hiermee worden ontbrekende indexen in de database niet automatisch verwijderd.

FORCE_LAST_GOOD_PLAN = { DEFAULT | AAN | UIT }

Automatische correctie van plannen in- of uitschakelen FORCE_LAST_GOOD_PLAN optie van Automatische afstemming. U kunt de status voor deze optie bekijken in Azure Portal of via T-SQL in de weergave sys.database_automatic_tuning_options.

  • VERSTEK

    Neemt standaardinstellingen over van de server. In dit geval worden opties voor het in- of uitschakelen van afzonderlijke functies voor automatisch afstemmen gedefinieerd op serverniveau. Dit is de standaardwaarde. De standaardwaarde voor nieuwe Azure SQL-servers is AAN, wat betekent dat nieuwe databases standaard de instelling ON overnemen.

  • OP

    De database-engine dwingt automatisch het laatst bekende goede plan af op de Transact-SQL query's waarbij een nieuw queryplan prestatieregressies veroorzaakt. De database-engine bewaakt continu de queryprestaties van de Transact-SQL query met het geforceerde plan. Als er prestatieverbeteringen zijn, blijft de database-engine het laatst bekende goede plan gebruiken. Als er geen prestatieverbeteringen worden gedetecteerd, produceert de database-engine een nieuw queryplan. De instructie mislukt als de Query Store niet is ingeschakeld of zich niet in lees-/schrijfmodus bevindt.

  • AF

    De database-engine rapporteert mogelijke regressies voor queryprestaties die worden veroorzaakt door wijzigingen in het queryplan in sys.dm_db_tuning_recommendations weergave. Deze aanbevelingen worden echter niet automatisch toegepast. Gebruikers kunnen actieve aanbevelingen controleren en geïdentificeerde problemen oplossen door Transact-SQL scripts toe te passen die in de weergave worden weergegeven.

<change_tracking_option> ::=

Hiermee bepaalt u opties voor het bijhouden van wijzigingen. U kunt wijzigingen bijhouden inschakelen, opties instellen, opties voor wijzigen en het bijhouden van wijzigingen uitschakelen. Zie de sectie Voorbeelden verderop in dit artikel voor voorbeelden.

  • OP

    Hiermee schakelt u het bijhouden van wijzigingen voor de database in. Wanneer u wijzigingen bijhouden inschakelt, kunt u ook de opties VOOR AUTOMATISCH OPSCHONEN en BEWAARBELEID VOOR WIJZIGINGEN instellen.

    • AUTO_CLEANUP = { AAN | UIT }

      • OP

        Wijzigingen bijhouden wordt automatisch verwijderd na de opgegeven bewaarperiode.

      • AF

        Wijzigingen bijhouden wordt niet uit de database verwijderd.

    • CHANGE_RETENTION = retention_period { DAYS | UREN | MINUTEN }

      Hiermee geeft u de minimale periode op voor het bijhouden van wijzigingen in de database. Gegevens worden alleen verwijderd wanneer de AUTO_CLEANUP waarde is ingeschakeld.

      retention_period is een geheel getal dat het numerieke onderdeel van de bewaarperiode aangeeft.

      De standaardretentieperiode is 2 dagen. De minimale bewaarperiode is 1 minuut. Het standaardretentietype is DAYS.

  • AF

    Hiermee schakelt u het bijhouden van wijzigingen voor de database uit. Schakel wijzigingen bijhouden uit voor alle tabellen voordat u het bijhouden van wijzigingen uit de database uitschakelt.

<cursor_option> ::=

Besturingselementen cursoropties.

CURSOR_CLOSE_ON_COMMIT { AAN | UIT }

  • OP

    Alle cursors worden geopend wanneer u een transactie doorvoert of terugdraait.

  • AF

    Cursors blijven open wanneer een transactie wordt doorgevoerd; Als een transactie wordt teruggedraaid, worden alle cursors gesloten, behalve de cursors die zijn gedefinieerd als ONGEVOELIG of STATISCH.

Instellingen op verbindingsniveau die zijn ingesteld met de SET-instructie overschrijven de standaarddatabase-instelling voor CURSOR_CLOSE_ON_COMMIT. ODBC- en OLE DB-clients geven standaard een set-instructieinstelling op verbindingsniveau uit CURSOR_CLOSE_ON_COMMIT op UIT voor de sessie. De clients voeren de instructie uit wanneer u verbinding maakt met een exemplaar van SQL Server. Zie SET CURSOR_CLOSE_ON_COMMITvoor meer informatie.

U kunt de status van deze optie bepalen door de kolom is_cursor_close_on_commit_on te bekijken in de sys.databases catalogusweergave of de eigenschap IsCloseCursorsOnCommitEnabled van de functie DATABASEPROPERTYEX. De cursor wordt impliciet de toewijzing alleen ongedaan gemaakt wanneer de verbinding is verbroken. Zie CURSOR declarerenvoor meer informatie.

<db_encryption_option> ::=

Hiermee bepaalt u de status van de databaseversleuteling.

VERSLEUTELING { AAN | UIT }

Hiermee stelt u in dat de database moet worden versleuteld (AAN) of niet versleuteld (UIT). Zie TDE-(Transparent Data Encryption) en Transparent Data Encryption voor Azure SQL Database, Azure SQL Managed Instance en Azure Synapse Analyticsvoor meer informatie over databaseversleuteling.

Wanneer versleuteling op databaseniveau is ingeschakeld, worden alle bestandsgroepen versleuteld. Alle nieuwe bestandsgroepen nemen de versleutelde eigenschap over. Als bestandsgroepen in de database zijn ingesteld op ALLEEN-LEZEN, mislukt de bewerking voor databaseversleuteling.

U kunt de versleutelingsstatus van de database zien met behulp van de sys.dm_database_encryption_keys dynamische beheerweergave.

<db_update_option> ::=

Hiermee bepaalt u of updates zijn toegestaan voor de database.

  • READ_ONLY

    Gebruikers kunnen gegevens uit de database lezen, maar deze niet wijzigen.

    Notitie

    Als u de queryprestaties wilt verbeteren, moet u statistieken bijwerken voordat u een database instelt op READ_ONLY. Als er extra statistieken nodig zijn nadat een database is ingesteld op READ_ONLY, maakt de database-engine statistieken in tempdb. Zie Statisticsvoor meer informatie over statistieken voor een alleen-lezen database.

  • READ_WRITE

    De database is beschikbaar voor lees- en schrijfbewerkingen.

Als u deze status wilt wijzigen, moet u exclusieve toegang tot de database hebben. Zie de SINGLE_USER-component voor meer informatie.

Notitie

In federatieve Azure SQL Database-databases is SET { READ_ONLY | READ_WRITE } uitgeschakeld.

<db_user_access_option> ::=

Hiermee beheert u de gebruikerstoegang tot de database.

  • RESTRICTED_USER

    Staat alleen leden van de db_owner vaste databaserol toe en dbcreator en sysadmin vaste serverfuncties om verbinding te maken met de database, maar beperkt hun aantal niet. Alle verbindingen met de database worden verbroken in de periode die is opgegeven door de beëindigingsclausule van de INSTRUCTIE ALTER DATABASE. Nadat de database is overgezet naar de status RESTRICTED_USER, worden verbindingspogingen door niet-gekwalificeerde gebruikers geweigerd. In Azure SQL Database moet worden uitgevoerd vanuit de gebruikersdatabase. In de master-database wordt mogelijk een foutbericht weergegeven 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

    Alle gebruikers met de juiste machtigingen om verbinding te maken met de database zijn toegestaan. U kunt de status van deze optie bepalen door de kolom user_access te bekijken in de sys.databases catalogusweergave of de eigenschap UserAccess van de functie DATABASEPROPERTYEX. In Azure SQL Database moet worden uitgevoerd vanuit de gebruikersdatabase. In de master-database wordt mogelijk een foutbericht weergegeven 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> ::=

Bepaalt of transacties volledig duurzaam of vertraagd worden doorgevoerd.

  • INVALIDE

    Alle transacties na SET DISABLED zijn volledig duurzaam. Alle duurzaamheidsopties die zijn ingesteld in een atomische blok- of doorvoerinstructie, worden genegeerd.

  • TOEGESTAAN

    Alle transacties na SET ALLOWED zijn volledig duurzaam of vertraagd, afhankelijk van de duurzaamheidsoptie die is ingesteld in de atomische blok- of doorvoerinstructie.

  • GEDWONGEN

    Alle transacties na SET FORCED worden duurzaam vertraagd. Alle duurzaamheidsopties die zijn ingesteld in een atomische blok- of doorvoerinstructie, worden genegeerd.

<PARAMETERIZATION_option> ::=

Hiermee bepaalt u de parameterisatieoptie.

PARAMETERISATIE { SIMPLE | GEFORCEERD }

  • EENVOUDIG

    Query's worden geparameteriseerd op basis van het standaardgedrag van de database.

  • GEDWONGEN

    SQL Server parameteriseert alle query's in de database.

De huidige instelling van deze optie kan worden bepaald door de kolom is_parameterization_forced in de sys.databases catalogusweergave te bekijken.

<query_store_options> ::=

  • AAN | UIT | CLEAR [ ALL ]

    Hiermee bepaalt u of Query Store is ingeschakeld in deze database en bepaalt u ook hoe de inhoud van de Query Store wordt verwijderd.

    • OP

      Hiermee schakelt u Query Store in. AAN is de standaardwaarde.

    • AF

      Hiermee schakelt u de Query Store uit.

      Notitie

      Query Store kan niet worden uitgeschakeld in één database en elastische pool van Azure SQL Database. Als u ALTER DATABASE [database] SET QUERY_STORE = OFF uitvoert, wordt de waarschuwing 'QUERY_STORE=OFF' is not supported in this version of SQL Server.geretourneerd.

    • DUIDELIJK

      Verwijder de inhoud van de Query Store.

OPERATION_MODE

Beschrijft de bewerkingsmodus van de Query Store. Geldige waarden zijn READ_ONLY en READ_WRITE. In READ_WRITE-modus verzamelt en persistente queryplan- en runtime-uitvoeringsstatistieken. In READ_ONLY-modus kan informatie worden gelezen uit de Query Store, maar er wordt geen nieuwe informatie toegevoegd. Als de maximaal toegewezen ruimte van de Query Store is uitgeput, wijzigt Query Store de bewerkingsmodus in READ_ONLY.

CLEANUP_POLICY

Beschrijft het bewaarbeleid voor gegevens van de Query Store. STALE_QUERY_THRESHOLD_DAYS bepaalt het aantal dagen waarvoor de gegevens voor een query worden bewaard in de Query Store. STALE_QUERY_THRESHOLD_DAYS is bigint. De standaardwaarde is 30. Voor sql Database Basic is de standaardinstelling 7 dagen.

DATA_FLUSH_INTERVAL_SECONDS

Bepaalt de frequentie waarmee gegevens die naar de Query Store worden geschreven, op schijf worden bewaard. Om de prestaties te optimaliseren, worden gegevens die door de Query Store worden verzameld, asynchroon naar de schijf geschreven. De frequentie waarmee deze asynchrone overdracht plaatsvindt, wordt geconfigureerd met behulp van het argument DATA_FLUSH_INTERVAL_SECONDS. DATA_FLUSH_INTERVAL_SECONDS is bigint. De standaardwaarde is 900 (15 min).

MAX_STORAGE_SIZE_MB

Bepaalt de ruimte die is toegewezen aan de Query Store. MAX_STORAGE_SIZE_MB is bigint.

Notitie

In Azure SQL Database verschilt de standaardwaarde MAX_STORAGE_SIZE_MB per servicelaag, als volgt: Premium, Bedrijfskritiek en Hyperscale: 1024 MB; Standaard en algemeen gebruik: 100 MB; Basic: 10 MB De maximaal toegestane MAX_STORAGE_SIZE_MB waarde is 10.240 MB.

Notitie

MAX_STORAGE_SIZE_MB limiet wordt niet strikt afgedwongen. De opslaggrootte wordt alleen gecontroleerd wanneer Query Store gegevens naar schijf schrijft. Dit interval wordt ingesteld door de optie DATA_FLUSH_INTERVAL_SECONDS of de dialoogvensteroptie Query Store van Management Studio interval voor het leegmaken van gegevens. De standaardwaarde voor het interval is 900 seconden (of 15 minuten). Als de Query Store de MAX_STORAGE_SIZE_MB limiet tussen controles van de opslaggrootte heeft overschreden, wordt deze overgezet naar de modus Alleen-lezen. Als SIZE_BASED_CLEANUP_MODE is ingeschakeld, wordt het opschoonmechanisme voor het afdwingen van de MAX_STORAGE_SIZE_MB limiet ook geactiveerd. Zodra er voldoende ruimte is gewist, schakelt de Query Store-modus automatisch terug naar lezen/schrijven.

Belangrijk

Als u denkt dat uw workloadopname meer dan 10 GB schijfruimte nodig heeft, moet u uw workload waarschijnlijk herzien en optimaliseren om queryplannen opnieuw te gebruiken (bijvoorbeeld door gebruik te maken van geforceerde parametersof de Query Store-configuraties aan te passen. Vanaf SQL Server 2019 (15.x) en in Azure SQL Database kunt u QUERY_CAPTURE_MODE instellen op CUSTOM voor extra controle over het queryopnamebeleid.

INTERVAL_LENGTH_MINUTES

Bepaalt het tijdsinterval waarmee runtime-uitvoeringsstatistiekengegevens worden samengevoegd in de Query Store. Om te optimaliseren voor ruimtegebruik, worden de uitvoeringsstatistieken van runtime in het archief met runtimestatistieken geaggregeerd in een vast tijdvenster. Dit vaste tijdvenster wordt geconfigureerd met behulp van het argument INTERVAL_LENGTH_MINUTES. INTERVAL_LENGTH_MINUTES is bigint. De standaardwaarde is 60.

SIZE_BASED_CLEANUP_MODE = { AUTO | UIT }

Hiermee bepaalt u of opschonen automatisch wordt geactiveerd wanneer de totale hoeveelheid gegevens dicht bij de maximale grootte komt.

  • AF

    Op grootte gebaseerde opschoning wordt niet automatisch geactiveerd.

  • AUTO

    Op grootte gebaseerde opschoning wordt automatisch geactiveerd wanneer de grootte op schijf 90% van max_storage_size_mbbereikt. Op grootte gebaseerde opschoning verwijdert eerst de goedkoopste en oudste query's. Het stopt op ongeveer 80% van max_storage_size_mb. Dit is de standaardconfiguratiewaarde.

SIZE_BASED_CLEANUP_MODE is type nvarchar.

QUERY_CAPTURE_MODE { ALL | AUTO | AANGEPAST | GEEN }

Hiermee wordt de momenteel actieve queryopnamemodus opgegeven. Elke modus definieert specifiek beleid voor het vastleggen van query's.

Notitie

Cursors, query's in opgeslagen procedures en systeemeigen gecompileerde query's worden altijd vastgelegd wanneer de queryopnamemodus is ingesteld op ALL, AUTO of CUSTOM.

  • ALLE

    Legt alle query's vast.

  • AUTO

    Leg relevante query's vast op basis van het aantal uitvoeringen en het resourceverbruik. Dit is de standaardconfiguratiewaarde voor Azure SQL Database.

  • GEEN

    Stop met het vastleggen van nieuwe query's. Query Store blijft compileer- en runtimestatistieken verzamelen voor query's die al zijn vastgelegd. Gebruik deze configuratie met voorzichtigheid, omdat u belangrijke query's mogelijk niet kunt vastleggen.

  • GEWOONTE

    Hiermee kunt u de QUERY_CAPTURE_POLICY opties beheren.

QUERY_CAPTURE_MODE is type nvarchar.

MAX_PLANS_PER_QUERY

Hiermee definieert u het maximum aantal plannen dat voor elke query wordt onderhouden. MAX_PLANS_PER_QUERY is int. De standaardwaarde is 200.

WAIT_STATS_CAPTURE_MODE { AAN | UIT }

Hiermee bepaalt u of wachtstatistieken per query worden vastgelegd.

  • OP

    Wachtstatistiekengegevens per query worden vastgelegd. Deze waarde is de standaardconfiguratiewaarde.

  • AF

    Wachtstatistiekengegevens per query worden niet vastgelegd.

<query_capture_policy_option_list> :: =

Hiermee bepaalt u de opnamebeleidsopties van Query Store. Met uitzondering van STALE_CAPTURE_POLICY_THRESHOLD definiëren deze opties de OR-voorwaarden die moeten worden uitgevoerd voor het vastleggen van query's in de gedefinieerde drempelwaarde voor verlopen vastleggen van beleid.

STALE_CAPTURE_POLICY_THRESHOLD = geheel getal { DAYS | HOURS }

Definieert de evaluatieperiode om te bepalen of een query moet worden vastgelegd. De standaardwaarde is 1 dag en kan worden ingesteld van 1 uur tot zeven dagen. getal typt int.

EXECUTION_COUNT = geheel getal

Hiermee definieert u het aantal keren dat een query wordt uitgevoerd gedurende de evaluatieperiode. De standaardwaarde is 30, wat betekent dat voor de standaarddrempelwaarde voor verlopen capturebeleid een query minstens 30 keer in één dag moet worden uitgevoerd om te worden bewaard in de Query Store. EXECUTION_COUNT is int.

TOTAL_COMPILE_CPU_TIME_MS = geheel getal

Hiermee definieert u de totale verstreken CPU-tijd die door een query wordt gebruikt gedurende de evaluatieperiode. De standaardwaarde is 1000, wat betekent dat voor de standaarddrempelwaarde voor verlopen capturebeleid een query een totaal van ten minste één seconde CPU-tijd moet hebben die is besteed tijdens het compileren van query's in één dag om te worden bewaard in de Query Store. TOTAL_COMPILE_CPU_TIME_MS is int.

TOTAL_EXECUTION_CPU_TIME_MS = geheel getal

Hiermee definieert u de totale verstreken CPU-tijd van de uitvoering die wordt gebruikt door een query gedurende de evaluatieperiode. De standaardwaarde is 100, wat betekent dat voor de standaarddrempelwaarde voor verlopen capture-beleid een query in totaal ten minste 100 ms CPU-tijd moet hebben die is besteed tijdens de uitvoering in één dag om te worden bewaard in de Query Store. TOTAL_EXECUTION_CPU_TIME_MS is int.

<snapshot_option> ::=

Bepaalt het niveau van transactieisolatie.

ALLOW_SNAPSHOT_ISOLATION { ON | UIT }

  • OP

    Hiermee schakelt u de optie Momentopname in op databaseniveau. Wanneer deze optie is ingeschakeld, beginnen DML-instructies met het genereren van rijversies, zelfs wanneer er geen transactie gebruikmaakt van Momentopname-isolatie. Zodra deze optie is ingeschakeld, kunnen transacties het isolatieniveau van de SNAPSHOT-transactie opgeven. Wanneer een transactie wordt uitgevoerd op het isolatieniveau SNAPSHOT, zien alle instructies een momentopname van gegevens zoals deze zich aan het begin van de transactie bevinden. Als een transactie die wordt uitgevoerd op het isolatieniveau SNAPSHOT toegang heeft tot gegevens in meerdere databases, moet ALLOW_SNAPSHOT_ISOLATION zijn ingesteld op AAN in alle databases, of elke instructie in de transactie moet vergrendelingshints gebruiken voor elke verwijzing in een FROM-component naar een tabel in een database waar ALLOW_SNAPSHOT_ISOLATION is uitgeschakeld.

  • AF

    Hiermee schakelt u de optie Momentopname uit op databaseniveau. Transacties kunnen het isolatieniveau van de SNAPSHOT-transactie niet opgeven.

Wanneer u ALLOW_SNAPSHOT_ISOLATION instelt op een nieuwe status (van AAN naar UIT of van UIT naar AAN), retourneert ALTER DATABASE geen controle naar de beller totdat alle bestaande transacties in de database zijn doorgevoerd. Als de database al de status heeft die is opgegeven in de instructie ALTER DATABASE, wordt het besturingselement onmiddellijk teruggezet naar de aanroeper. Als de instructie ALTER DATABASE niet snel retourneert, gebruikt u sys.dm_tran_active_snapshot_database_transactions om te bepalen of er langlopende transacties zijn. Als de instructie ALTER DATABASE wordt geannuleerd, blijft de database de status behouden waarin deze zich bevond toen ALTER DATABASE werd gestart. De sys.databases catalogusweergave geeft de status van momentopname-isolatietransacties in de database aan. Als snapshot_isolation_state_desc = IN_TRANSITION_TO_ON, wordt de instructie ALTER DATABASE .... ALLOW_SNAPSHOT_ISOLATION OFF zes seconden onderbroken en wordt de bewerking opnieuw uitgevoerd.

U kunt de status van ALLOW_SNAPSHOT_ISOLATION niet wijzigen als de database OFFLINE is.

Als u ALLOW_SNAPSHOT_ISOLATION instelt in een READ_ONLY database, wordt de instelling bewaard als de database later is ingesteld op READ_WRITE.

De huidige instelling van deze optie kan worden bepaald door de kolom snapshot_isolation_state in de sys.databases catalogusweergave te bekijken.

READ_COMMITTED_SNAPSHOT { AAN | UIT }

  • OP

    Hiermee schakelt u Read-Committed optie Momentopname in op databaseniveau. Wanneer deze optie is ingeschakeld, beginnen DML-instructies met het genereren van rijversies, zelfs wanneer er geen transactie gebruikmaakt van Momentopname-isolatie. Zodra deze optie is ingeschakeld, gebruiken de transacties die het isolatieniveau READ COMMIT opgeven rijversiebeheer in plaats van vergrendelen. Alle instructies zien een momentopname van gegevens zoals deze bestaan aan het begin van de instructie wanneer een transactie wordt uitgevoerd op het isolatieniveau READ COMMITTED.

  • AF

    Hiermee schakelt u Read-Committed optie Momentopname op databaseniveau uit. Transacties die het isolatieniveau READ COMMITTED opgeven, maken gebruik van vergrendeling.

Als u READ_COMMITTED_SNAPSHOT AAN of UIT wilt instellen, moeten er geen actieve verbindingen met de database zijn, met uitzondering van de verbinding met de opdracht ALTER DATABASE. De database hoeft zich echter niet in de modus voor één gebruiker te bevinden. U kunt de status van deze optie niet wijzigen wanneer de database OFFLINE is.

Als u READ_COMMITTED_SNAPSHOT instelt in een READ_ONLY database, wordt de instelling bewaard wanneer de database later is ingesteld op READ_WRITE.

READ_COMMITTED_SNAPSHOT kan niet worden ingeschakeld voor de master, tempdbof msdb systeemdatabases. Als u de instelling voor modelwijzigt, wordt deze instelling de standaardinstelling voor nieuwe databases die zijn gemaakt, met uitzondering van tempdb.

De huidige instelling van deze optie kan worden bepaald door de kolom is_read_committed_snapshot_on in de sys.databases catalogusweergave te bekijken.

Waarschuwing

Wanneer een tabel met DURABILITY = SCHEMA_ONLYwordt gemaakt en READ_COMMITTED_SNAPSHOT vervolgens wordt gewijzigd met behulp van ALTER DATABASE, gaan de gegevens in de tabel verloren.

Fooi

In Azure SQL Database moet de ALTER DATABASE opdracht voor het instellen van READ_COMMITTED_SNAPSHOT AAN of UIT voor een database worden uitgevoerd in de master-database.

MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT { AAN | UIT }

  • OP

    Wanneer het niveau van transactieisolatie is ingesteld op een isolatieniveau dat lager is dan MOMENTOPNAME, worden alle geïnterpreteerde Transact-SQL bewerkingen op tabellen die zijn geoptimaliseerd voor geheugen, uitgevoerd onder MOMENTOPNAME-isolatie. Voorbeelden van isolatieniveaus die lager zijn dan momentopnamen zijn READ COMMITTED of READ UNCOMMITTED. Deze bewerkingen worden uitgevoerd of het niveau van transactieisolatie expliciet is ingesteld op sessieniveau, of de standaardinstelling wordt impliciet gebruikt.

  • AF

    Verhoogt het niveau van transactieisolatie niet voor geïnterpreteerde Transact-SQL bewerkingen op tabellen die zijn geoptimaliseerd voor geheugen.

U kunt de status van MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT niet wijzigen als de database OFFLINE is.

De standaardwaarde is UIT.

De huidige instelling van deze optie kan worden bepaald door de kolom is_memory_optimized_elevate_to_snapshot_on in de sys.databases catalogusweergave te bekijken.

<sql_option> ::=

Hiermee bepaalt u de ANSI-nalevingsopties op databaseniveau.

ANSI_NULL_DEFAULT { AAN | UIT }

Bepaalt de standaardwaarde, NULL of NOT NULL, van een kolom of door de gebruiker gedefinieerde CLR-type waarvoor de null-waarde niet expliciet is gedefinieerd in CREATE TABLE- of ALTER TABLE-instructies. Kolommen die zijn gedefinieerd met beperkingen volgen regels voor beperkingen, ongeacht wat deze instelling kan zijn.

  • OP

    De standaardwaarde is NULL.

  • AF

    De standaardwaarde is NOT NULL.

Instellingen op verbindingsniveau die zijn ingesteld met de SET-instructie overschrijven de standaardinstelling op databaseniveau voor ANSI_NULL_DEFAULT. ODBC- en OLE DB-clients geven standaard een set-instructieinstelling op verbindingsniveau uit ANSI_NULL_DEFAULT op AAN voor de sessie. De clients voeren de instructie uit wanneer u verbinding maakt met een exemplaar van SQL Server. Zie SET ANSI_NULL_DFLT_ONvoor meer informatie.

Voor ANSI-compatibiliteit stelt u de databaseoptie in ANSI_NULL_DEFAULT op AAN wijzigt de standaardwaarde van de database in NULL.

U kunt de status van deze optie bepalen door de kolom is_ansi_null_default_on te bekijken in de sys.databases catalogusweergave. U kunt ook de status bepalen door de eigenschap IsAnsiNullDefault van de DATABASEPROPERTYEX- functie te onderzoeken.

ANSI_NULLS { AAN | UIT }

  • OP

    Alle vergelijkingen met een null-waarde resulteren in ONBEKEND.

  • AF

    Vergelijkingen van niet-Unicode-waarden met een null-waarde resulteren in WAAR als beide waarden NULL zijn.

Belangrijk

In een toekomstige versie van SQL Server is ANSI_NULLS altijd INGESCHAKELD en eventuele toepassingen die de optie expliciet op UIT instellen, veroorzaken een fout. Vermijd het gebruik van deze functie in nieuwe ontwikkelwerkzaamheden en plan om toepassingen te wijzigen die momenteel gebruikmaken van deze functie.

Instellingen op verbindingsniveau die zijn ingesteld met de SET-instructie overschrijven de standaarddatabase-instelling voor ANSI_NULLS. ODBC- en OLE DB-clients geven standaard een set-instructieinstelling op verbindingsniveau uit ANSI_NULLS op AAN voor de sessie. De clients voeren de instructie uit wanneer u verbinding maakt met een exemplaar van SQL Server. Zie SET ANSI_NULLSvoor meer informatie.

Notitie

SET ANSI_NULLS moet ook worden ingesteld op AAN wanneer u indexen maakt of wijzigt in indexen in berekende kolommen of geïndexeerde weergaven.

U kunt de status van deze optie bepalen door de kolom is_ansi_nulls_on te bekijken in de sys.databases catalogusweergave. U kunt ook de status bepalen door de eigenschap IsAnsiNullsEnabled van de DATABASEPROPERTYEX- functie te onderzoeken.

ANSI_PADDING { AAN | UIT }

  • OP

    Tekenreeksen worden opgevuld tot dezelfde lengte voordat de conversie wordt uitgevoerd. Ook opgevuld tot dezelfde lengte voordat u een varchar of nvarchar gegevenstype invoegt.

  • AF

    Voegt volgspaties in tekenwaarden in varchar- of nvarchar kolommen in. Laat ook volgnullen achter in binaire waarden die worden ingevoegd in varbinaire kolommen. Waarden worden niet opgevuld tot de lengte van de kolom.

    Wanneer UIT is opgegeven, is deze instelling alleen van invloed op de definitie van nieuwe kolommen.

Belangrijk

In een toekomstige versie van SQL Server is ANSI_PADDING altijd INGESCHAKELD en eventuele toepassingen die de optie expliciet op UIT instellen, veroorzaken een fout. Vermijd het gebruik van deze functie in nieuwe ontwikkelwerkzaamheden en plan om toepassingen te wijzigen die momenteel gebruikmaken van deze functie. U wordt aangeraden ANSI_PADDING altijd in te stellen op AAN. ANSI_PADDING moet zijn ingeschakeld wanneer u indexen maakt of bewerkt voor berekende kolommen of geïndexeerde weergaven.

char(n) en binary(n) kolommen die null-waarden toestaan, worden opgevuld met de kolomlengte wanneer ANSI_PADDING is ingesteld op AAN. Afsluitende lege waarden en nullen worden afgekapt wanneer ANSI_PADDING uit is. char(n) en binary(n) kolommen die null-waarden niet toestaan, worden altijd opgevuld met de lengte van de kolom.

Instellingen op verbindingsniveau die zijn ingesteld met de SET-instructie overschrijven de standaardinstelling op databaseniveau voor ANSI_PADDING. ODBC- en OLE DB-clients geven standaard een set-instructieinstelling op verbindingsniveau uit ANSI_PADDING op AAN voor de sessie. De clients voeren de instructie uit wanneer u verbinding maakt met een exemplaar van SQL Server. Zie SET ANSI_PADDINGvoor meer informatie.

U kunt de status van deze optie bepalen door de kolom is_ansi_padding_on te bekijken in de sys.databases catalogusweergave. U kunt ook de status bepalen door de eigenschap IsAnsiPaddingEnabled van de DATABASEPROPERTYEX- functie te onderzoeken.

ANSI_WARNINGS { AAN | UIT }

  • OP

    Fouten of waarschuwingen worden uitgegeven wanneer er voorwaarden zoals delen door nul optreden. Fouten en waarschuwingen worden ook uitgegeven wanneer null-waarden worden weergegeven in statistische functies.

  • AF

    Er worden geen waarschuwingen gegenereerd en null-waarden worden geretourneerd wanneer voorwaarden zoals delen door nul optreden.

Notitie

SET ANSI_WARNINGS moet worden ingesteld op AAN wanneer u indexen maakt of wijzigt in indexen in berekende kolommen of geïndexeerde weergaven.

Instellingen op verbindingsniveau die zijn ingesteld met de SET-instructie overschrijven de standaarddatabase-instelling voor ANSI_WARNINGS. ODBC- en OLE DB-clients geven standaard een set-instructieinstelling op verbindingsniveau uit ANSI_WARNINGS op AAN voor de sessie. De clients voeren de instructie uit wanneer u verbinding maakt met een exemplaar van SQL Server. Zie SET ANSI_WARNINGSvoor meer informatie.

U kunt de status van deze optie bepalen door de kolom is_ansi_warnings_on te bekijken in de sys.databases catalogusweergave. U kunt ook de status bepalen door de eigenschap IsAnsiWarningsEnabled van de DATABASEPROPERTYEX- functie te onderzoeken.

ARITHABORT { ON | UIT }

  • OP

    Een query wordt beëindigd wanneer er een overloop- of deel-by-nul-fout optreedt tijdens de uitvoering van de query.

  • AF

    Er wordt een waarschuwingsbericht weergegeven wanneer een van deze fouten optreedt. De query, batch of transactie blijft verwerken alsof er geen fout is opgetreden, zelfs als er een waarschuwing wordt weergegeven.

Notitie

SET ARITHABORT moet worden ingesteld op AAN wanneer u indexen maakt of wijzigt in indexen op berekende kolommen of geïndexeerde weergaven.

U kunt de status van deze optie bepalen door de kolom is_arithabort_on te bekijken in de sys.databases catalogusweergave. U kunt ook de status bepalen door de eigenschap IsArithmeticAbortEnabled van de DATABASEPROPERTYEX- functie te onderzoeken.

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

Zie ALTER DATABASE-compatibiliteitsniveauvoor meer informatie.

CONCAT_NULL_YIELDS_NULL { AAN | UIT }

  • OP

    Het resultaat van een samenvoegingsbewerking is NULL wanneer een van beide operanden NULL is. Als u bijvoorbeeld de tekenreeks 'Dit is' samenvoegt en NULL de waarde NULL veroorzaakt, in plaats van de waarde 'Dit is'.

  • AF

    De null-waarde wordt behandeld als een lege tekenreeks.

Notitie

CONCAT_NULL_YIELDS_NULL moet worden ingesteld op AAN wanneer u indexen maakt of wijzigt in indexen in berekende kolommen of geïndexeerde weergaven.

In een toekomstige versie van SQL Server is CONCAT_NULL_YIELDS_NULL altijd INGESCHAKELD en eventuele toepassingen die de optie expliciet op UIT instellen, veroorzaken een fout. Vermijd het gebruik van deze functie in nieuwe ontwikkelwerkzaamheden en plan om toepassingen te wijzigen die momenteel gebruikmaken van deze functie.

Instellingen op verbindingsniveau die zijn ingesteld met de SET-instructie overschrijven de standaarddatabase-instelling voor CONCAT_NULL_YIELDS_NULL. ODBC- en OLE DB-clients geven standaard een set-instructieinstelling op verbindingsniveau uit CONCAT_NULL_YIELDS_NULL aan AAN voor de sessie wanneer er verbinding wordt gemaakt met een exemplaar van SQL Server. Zie SET CONCAT_NULL_YIELDS_NULLvoor meer informatie.

U kunt de status van deze optie bepalen door de kolom is_concat_null_yields_null_on te bekijken in de sys.databases catalogusweergave. U kunt ook de status bepalen door de eigenschap IsNullConcat van de DATABASEPROPERTYEX- functie te onderzoeken.

NUMERIC_ROUNDABORT { AAN | UIT }

  • OP

    Er wordt een fout gegenereerd wanneer verlies van precisie optreedt in een expressie.

  • AF

    Verlies van precisie genereert geen foutbericht en het resultaat wordt afgerond op de precisie van de kolom of variabele die het resultaat opslaat.

Belangrijk

NUMERIC_ROUNDABORT moet zijn ingesteld op UIT wanneer u indexen maakt of wijzigt in indexen in berekende kolommen of geïndexeerde weergaven.

U kunt de status voor deze optie bepalen in de kolom is_numeric_roundabort_on in de sys.databases catalogusweergave. U kunt ook de status bepalen door de eigenschap IsNumericRoundAbortEnabled van de DATABASEPROPERTYEX- functie te onderzoeken.

QUOTED_IDENTIFIER { AAN | UIT }

  • OP

    Dubbele aanhalingstekens kunnen worden gebruikt om gescheiden id's in te sluiten.

    Alle tekenreeksen die door dubbele aanhalingstekens worden gescheiden, worden geïnterpreteerd als object-id's. De Transact-SQL-regels voor id's hoeven niet te worden gevolgd. Dit kunnen trefwoorden zijn en tekens bevatten die niet zijn toegestaan in Transact-SQL id's. Als een dubbel aanhalingsteken (") deel uitmaakt van de id, kan deze worden vertegenwoordigd door twee dubbele aanhalingstekens ("").

  • AF

    Id's mogen niet tussen aanhalingstekens staan en moeten alle Transact-SQL regels voor id's volgen. Letterlijke tekens kunnen worden gescheiden door enkele of dubbele aanhalingstekens.

Met SQL Server kunnen id's ook worden gescheiden door vierkante haken ([ en ]). Id's met haakjes kunnen altijd worden gebruikt, ongeacht de QUOTED_IDENTIFIER instelling. Zie Database-id'svoor meer informatie.

Wanneer een tabel wordt gemaakt, wordt de optie AAN-ID altijd opgeslagen als AAN in de metagegevens van de tabel. De optie wordt opgeslagen, zelfs als de optie is ingesteld op UIT wanneer de tabel wordt gemaakt.

Instellingen op verbindingsniveau die zijn ingesteld met de SET-instructie overschrijven de standaarddatabase-instelling voor QUOTED_IDENTIFIER. ODBC- en OLE DB-clients geven standaard een set-instructieinstelling op verbindingsniveau uit QUOTED_IDENTIFIER op AAN. De clients voeren de instructie uit wanneer u verbinding maakt met een exemplaar van SQL Server. Zie SET QUOTED_IDENTIFIERvoor meer informatie.

U kunt de status van deze optie bepalen door de kolom is_quoted_identifier_on te bekijken in de sys.databases catalogusweergave. U kunt ook de status bepalen door de eigenschap IsQuotedIdentifiersEnabled van de DATABASEPROPERTYEX- functie te onderzoeken.

RECURSIVE_TRIGGERS { AAN | UIT }

  • OP

    Recursieve schieting van AFTER-triggers is toegestaan.

  • AF

    U kunt de status van deze optie bepalen door de kolom is_recursive_triggers_on te bekijken in de sys.databases catalogusweergave. U kunt ook de status bepalen door de eigenschap IsRecursiveTriggersEnabled van de DATABASEPROPERTYEX- functie te onderzoeken.

Notitie

Alleen directe recursie wordt voorkomen wanneer RECURSIVE_TRIGGERS is ingesteld op UIT. Als u indirecte recursie wilt uitschakelen, moet u ook de serveroptie geneste triggers instellen op 0.

U kunt de status van deze optie bepalen door de kolom is_recursive_triggers_on te bekijken in de sys.databases catalogusweergave of de eigenschap IsRecursiveTriggersEnabled van de functie DATABASEPROPERTYEX.

<target_recovery_time_option> ::=

Hiermee geeft u de frequentie van indirecte controlepunten per database. Vanaf SQL Server 2016 (13.x) is de standaardwaarde voor nieuwe databases 1 minuut, wat aangeeft dat de database indirecte controlepunten gebruikt. Voor oudere versies is de standaardwaarde 0, wat aangeeft dat de database automatische controlepunten gebruikt, waarvan de frequentie afhankelijk is van de herstelintervalinstelling van het serverexemplaren. Microsoft raadt 1 minuut aan voor de meeste systemen.

TARGET_RECOVERY_TIME = target_recovery_time { SECONDS | MINUTEN }

  • target_recovery_time

    Hiermee geeft u de maximumgrens voor de tijd voor het herstellen van de opgegeven database in het geval van een crash. target_recovery_time is int.

  • SECONDEN

    Geeft aan dat target_recovery_time wordt uitgedrukt als het aantal seconden.

  • NOTULEN

    Geeft aan dat target_recovery_time wordt uitgedrukt als het aantal minuten.

Zie Databasecontrolepuntenvoor meer informatie over indirecte controlepunten.

MET <beëindiging> ::=

Hiermee geeft u op wanneer onvolledige transacties moeten worden teruggedraaid wanneer de database van de ene status naar de andere wordt overgezet. Als de beëindigingsclausule wordt weggelaten, wacht de instructie ALTER DATABASE voor onbepaalde tijd als er een vergrendeling op de database is. Er kan slechts één beëindigingsclausule worden opgegeven en volgt de SET-componenten.

Notitie

Niet alle databaseopties maken gebruik van de component WITH <beëindiging>. Zie de tabel onder Instellingsopties van de sectie Opmerkingen van dit artikel voor meer informatie.

  • TERUGDRAAIEN NA geheel getal [SECONDEN] | DIRECT TERUGDRAAIEN

    Hiermee geeft u op of u wilt terugdraaien na het opgegeven aantal seconden of onmiddellijk.

  • NO_WAIT

    Hiermee geeft u op dat de aanvraag mislukt als de aangevraagde databasestatus of optiewijziging niet onmiddellijk kan worden voltooid. Onmiddellijk voltooien betekent niet wachten op het doorvoeren of terugdraaien van transacties.

<temporal_history_retention> ::=

Opties instellen

Als u de huidige instellingen voor databaseopties wilt ophalen, gebruikt u de sys.databases catalogusweergave of DATABASEPROPERTYEX-

Nadat u een databaseoptie hebt ingesteld, wordt de nieuwe instelling onmiddellijk van kracht.

U kunt de standaardwaarden wijzigen voor een van de databaseopties voor alle nieuw gemaakte databases. Hiervoor wijzigt u de juiste databaseoptie in de model-database.

Niet alle databaseopties gebruiken de component WITH <beëindiging> of kunnen worden opgegeven in combinatie met andere opties. De volgende tabel bevat deze opties en hun optie en beëindigingsstatus.

Categorie Opties Kan worden opgegeven met andere opties Kan de component WITH <beëindiging> gebruiken
<auto_option> Ja Nee
<change_tracking_option> Ja Ja
<cursor_option> Ja Nee
<db_encryption_option> Ja Nee
<db_update_option> Ja Ja
<db_user_access_option> Ja Ja
<delayed_durability_option> Ja Ja
<parameterization_option> Ja Ja
ALLOW_SNAPSHOT_ISOLATION Nee Nee
READ_COMMITTED_SNAPSHOT Nee Ja
MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT Ja Ja
DATE_CORRELATION_OPTIMIZATION Ja Ja
<sql_option> Ja Nee
<target_recovery_time_option> Nee Ja

Voorbeelden

Een. De database instellen op READ_ONLY

Als u de status van een database of bestandsgroep wijzigt in READ_ONLY of READ_WRITE hebt u exclusieve toegang tot de database nodig en kan het enkele seconden duren voordat deze is voltooid. In het volgende voorbeeld wordt de database ingesteld op RESTRICTED_USER modus om de toegang te beperken. In het voorbeeld wordt vervolgens de status van de AdventureWorks2022-database ingesteld op READ_ONLY en wordt toegang tot de database geretourneerd aan alle gebruikers.

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

De database terugzetten op de lees-/schrijfmodus:

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

Ga als volgende te werk om het volgende te controleren:

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

B. Isolatie van momentopnamen inschakelen voor een database

In het volgende voorbeeld wordt de optie voor isolatieframework voor momentopnamen ingeschakeld voor de AdventureWorks2022-database.

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

Controleer de status van de snapshot_isolation_framework in de database.

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

De resultatenset laat zien dat het framework voor isolatie van momentopnamen is ingeschakeld.

naam snapshot_isolation_state beschrijving
[database_name] 1 OP

C. Wijzigingen bijhouden inschakelen, wijzigen of uitschakelen

In het volgende voorbeeld wordt het bijhouden van wijzigingen voor de AdventureWorks2022 database ingeschakeld en wordt de bewaarperiode ingesteld op 2 dagen.

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

In het volgende voorbeeld ziet u hoe u de bewaarperiode wijzigt in 3 dagen.

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

In het volgende voorbeeld ziet u hoe u het bijhouden van wijzigingen voor de AdventureWorks2022-database kunt uitschakelen.

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

D. Query Store inschakelen

In het volgende voorbeeld worden Query Store-parameters ingeschakeld en geconfigureerd.

--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. Query Store met wachtstatistieken inschakelen

In het volgende voorbeeld wordt Query Store ingeschakeld en worden de parameters geconfigureerd.

--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. Query Store inschakelen met aangepaste beleidsopties voor vastleggen

In het volgende voorbeeld wordt Query Store ingeschakeld en worden de parameters geconfigureerd.

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

* SQL Managed Instance *  

 

Azure SQL Managed Instance

Compatibiliteitsniveaus zijn SET opties, maar worden beschreven in ALTER DATABASE-compatibiliteitsniveau.

Notitie

Veel opties voor databasesets kunnen worden geconfigureerd voor de huidige sessie met behulp van SET-instructies en worden vaak geconfigureerd door toepassingen wanneer ze verbinding maken. Opties voor set op sessieniveau overschrijven de ALTER DATABASE SET waarden. De databaseopties die in de volgende secties worden beschreven, zijn waarden die kunnen worden ingesteld voor sessies die niet expliciet andere ingestelde optiewaarden bevatten.

Syntaxis

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 }

Argumenten

database_name

De naam van de database die moet worden gewijzigd.

ACTUEEL

CURRENT voert de actie uit in de huidige database. CURRENT wordt niet ondersteund voor alle opties in alle contexten. Als CURRENT mislukt, geeft u de databasenaam op.

<auto_option> ::=

Hiermee bepaalt u automatische opties.

AUTO_CREATE_STATISTICS { AAN | UIT }

  • OP

    Query Optimizer maakt zo nodig statistieken voor afzonderlijke kolommen in querypredicaten om queryplannen en queryprestaties te verbeteren. Deze statistieken met één kolom worden gemaakt wanneer Query Optimizer query's compileert. De statistieken met één kolom worden alleen gemaakt voor kolommen die nog niet de eerste kolom van een bestaand statistiekenobject zijn.

    De standaardwaarde is AAN. U wordt aangeraden de standaardinstelling voor de meeste databases te gebruiken.

  • AF

    Query Optimizer maakt geen statistieken voor afzonderlijke kolommen in querypredicaten bij het compileren van query's. Als u deze optie instelt op UIT, kunnen suboptimale queryplannen en verminderde queryprestaties worden veroorzaakt.

    U kunt de status van deze optie bepalen door de kolom is_auto_create_stats_on te bekijken in de sys.databases catalogusweergave. U kunt ook de status bepalen door de eigenschap IsAutoCreateStatistics van de DATABASEPROPERTYEX- functie te onderzoeken.

    Zie de sectie Statistiekenopties in Statistiekenvoor meer informatie.

INCREMENTEEL = AAN | AF

Stel AUTO_CREATE_STATISTICS in op AAN en stel INCREMENTEEL in op AAN. Met deze instelling worden automatisch gemaakte statistieken gemaakt als incrementeel wanneer incrementele statistieken worden ondersteund. De standaardwaarde is UIT. Zie CREATE STATISTICSvoor meer informatie.

AUTO_SHRINK { AAN | UIT }

  • OP

    De databasebestanden zijn kandidaten voor periodieke verkleining. Tenzij u een specifieke vereiste hebt, stelt u de optie AUTO_SHRINK database niet in op AAN. Zie Een database verkleinenvoor meer informatie.

    Zowel gegevensbestanden als logboekbestanden kunnen automatisch worden verkleind. AUTO_SHRINK verkleint de grootte van het transactielogboek alleen als u de database instelt op SIMPLE-herstelmodel of als u een back-up van het logboek maakt. Wanneer deze is ingesteld op UIT, worden de databasebestanden niet automatisch verkleind tijdens periodieke controles op ongebruikte ruimte.

    De optie AUTO_SHRINK zorgt ervoor dat bestanden worden verkleind wanneer meer dan 25 procent van het bestand ongebruikte ruimte bevat. De optie zorgt ervoor dat het bestand wordt verkleind tot een van de twee grootten. Het verkleint naar de items die groter zijn:

    • De grootte waarbij 25 procent van het bestand ongebruikte ruimte is
    • De grootte van het bestand toen het werd gemaakt

    U kunt een alleen-lezen database niet verkleinen.

  • AF

    De databasebestanden worden niet automatisch verkleind tijdens periodieke controles op ongebruikte ruimte.

U kunt de status van deze optie bepalen door de kolom is_auto_shrink_on te bekijken in de sys.databases catalogusweergave. U kunt ook de status bepalen door de eigenschap IsAutoShrink van de DATABASEPROPERTYEX- functie te onderzoeken.

Notitie

De optie AUTO_SHRINK is niet beschikbaar in een ingesloten database.

AUTO_UPDATE_STATISTICS { AAN | UIT }

  • OP

    Hiermee geeft u op dat Query Optimizer statistieken bijwerken wanneer ze worden gebruikt door een query en wanneer ze mogelijk verouderd zijn. Statistieken worden verouderd na het invoegen, bijwerken, verwijderen of samenvoegen van bewerkingen wijzigen de gegevensdistributie in de tabel of geïndexeerde weergave. Query Optimizer bepaalt wanneer statistieken verouderd kunnen zijn door het aantal wijzigingen van gegevens te tellen sinds de laatste update van de statistieken en het vergelijken van het aantal wijzigingen aan een drempelwaarde. De drempelwaarde is gebaseerd op het aantal rijen in de tabel of geïndexeerde weergave.

    Query Optimizer controleert op verouderde statistieken voordat een query wordt gecompileerd en een queryplan in de cache wordt uitgevoerd. Query Optimizer maakt gebruik van de kolommen, tabellen en geïndexeerde weergaven in het querypredicaat om te bepalen welke statistieken verouderd kunnen zijn. Query Optimizer bepaalt deze informatie voordat een query wordt gecompileerd. Voordat u een queryplan in de cache uitvoert, controleert de database-engine of het queryplan verwijst naar up-to-datumstatistieken.

    De optie AUTO_UPDATE_STATISTICS is van toepassing op statistieken die zijn gemaakt voor indexen, enkelvoudige kolommen in querypredicaten en statistieken die worden gemaakt met behulp van de instructie CREATE STATISTICS. Deze optie is ook van toepassing op gefilterde statistieken.

    De standaardwaarde is AAN. U wordt aangeraden de standaardinstelling voor de meeste databases te gebruiken.

    Gebruik de optie AUTO_UPDATE_STATISTICS_ASYNC om op te geven of de statistieken synchroon of asynchroon worden bijgewerkt.

  • AF

    Hiermee geeft u op dat Query Optimizer geen statistieken bijwerkt wanneer ze worden gebruikt door een query. Query Optimizer werkt ook geen statistieken bij wanneer deze verouderd zijn. Als u deze optie instelt op UIT, kunnen suboptimale queryplannen en verminderde queryprestaties worden veroorzaakt.

U kunt de status van deze optie bepalen door de kolom is_auto_update_stats_on te bekijken in de sys.databases catalogusweergave. U kunt ook de status bepalen door de eigenschap IsAutoUpdateStatistics van de DATABASEPROPERTYEX- functie te onderzoeken.

Zie de sectie 'De opties voor statistieken voor de hele database gebruiken' in Statistiekenvoor meer informatie.

AUTO_UPDATE_STATISTICS_ASYNC { AAN | UIT }

  • OP

    Hiermee geeft u op dat updates voor statistieken voor de AUTO_UPDATE_STATISTICS optie asynchroon zijn. Query Optimizer wacht niet totdat de updates van statistieken zijn voltooid voordat query's worden gecompileerd.

    Het instellen van deze optie op AAN heeft geen effect, tenzij AUTO_UPDATE_STATISTICS is ingesteld op AAN.

    De optie AUTO_UPDATE_STATISTICS_ASYNC is standaard ingesteld op UIT en Query Optimizer werkt statistieken synchroon bij.

  • AF

    Hiermee geeft u op dat statistiekenupdates voor de optie AUTO_UPDATE_STATISTICS synchroon zijn. Query Optimizer wacht tot de updates van statistieken zijn voltooid voordat query's worden gecompileerd.

    Het instellen van deze optie op UIT heeft geen effect, tenzij AUTO_UPDATE_STATISTICS is ingesteld op AAN.

U kunt de status van deze optie bepalen door de kolom is_auto_update_stats_async_on te bekijken in de sys.databases catalogusweergave.

Zie de sectie 'De opties voor statistieken voor de hele database gebruiken' in Statistiekenvoor meer informatie over het gebruik van synchrone of asynchrone statistiekenupdates.

<automatic_tuning_option> ::=

Hiermee bepaalt u automatische opties voor Automatisch afstemmen.

FORCE_LAST_GOOD_PLAN = { DEFAULT | AAN | UIT }

Hiermee schakelt u FORCE_LAST_GOOD_PLANoptie automatisch afstemmen in of uit.

  • VERSTEK

    De standaardwaarde voor Azure SQL Managed Instance is INGESCHAKELD.

  • OP

    De database-engine dwingt automatisch het laatst bekende goede plan af op de Transact-SQL query's waarbij een nieuw queryplan prestatieregressies veroorzaakt. De database-engine bewaakt continu de queryprestaties van de Transact-SQL query met het geforceerde plan. Als er prestatieverbeteringen zijn, blijft de database-engine het laatst bekende goede plan gebruiken. Als er geen prestatieverbeteringen worden gedetecteerd, produceert de database-engine een nieuw queryplan. De instructie mislukt als de Query Store niet is ingeschakeld of zich niet in lees-/schrijfmodus bevindt. Dit is de standaardwaarde.

  • AF

    De database-engine rapporteert mogelijke regressies voor queryprestaties die worden veroorzaakt door wijzigingen in het queryplan in sys.dm_db_tuning_recommendations weergave. Deze aanbevelingen worden echter niet automatisch toegepast. Gebruikers kunnen actieve aanbevelingen controleren en geïdentificeerde problemen oplossen door Transact-SQL scripts toe te passen die in de weergave worden weergegeven.

<change_tracking_option> ::=

Hiermee bepaalt u opties voor het bijhouden van wijzigingen. U kunt wijzigingen bijhouden inschakelen, opties instellen, opties voor wijzigen en het bijhouden van wijzigingen uitschakelen. Zie de sectie Voorbeelden verderop in dit artikel voor voorbeelden.

  • OP

    Hiermee schakelt u het bijhouden van wijzigingen voor de database in. Wanneer u wijzigingen bijhouden inschakelt, kunt u ook de opties VOOR AUTOMATISCH OPSCHONEN en BEWAARBELEID VOOR WIJZIGINGEN instellen.

AUTO_CLEANUP = { AAN | UIT }

  • OP

    Wijzigingen bijhouden wordt automatisch verwijderd na de opgegeven bewaarperiode.

  • AF

    Wijzigingen bijhouden wordt niet uit de database verwijderd.

CHANGE_RETENTION = retention_period { DAYS | UREN | MINUTEN }

Hiermee geeft u de minimale periode op voor het bijhouden van wijzigingen in de database. Gegevens worden alleen verwijderd wanneer de AUTO_CLEANUP waarde is ingeschakeld.

retention_period is een geheel getal dat het numerieke onderdeel van de bewaarperiode aangeeft.

De standaardretentieperiode is 2 dagen. De minimale bewaarperiode is 1 minuut. Het standaardretentietype is DAYS.

  • AF

    Hiermee schakelt u het bijhouden van wijzigingen voor de database uit. Schakel wijzigingen bijhouden uit voor alle tabellen voordat u het bijhouden van wijzigingen uit de database uitschakelt.

<cursor_option> ::=

Besturingselementen cursoropties.

CURSOR_CLOSE_ON_COMMIT { AAN | UIT }

  • OP

    Alle cursors worden geopend wanneer u een transactie doorvoert of terugdraait.

  • AF

    Cursors blijven open wanneer een transactie wordt doorgevoerd; Als een transactie wordt teruggedraaid, worden alle cursors gesloten, behalve de cursors die zijn gedefinieerd als ONGEVOELIG of STATISCH.

Instellingen op verbindingsniveau die zijn ingesteld met de SET-instructie overschrijven de standaarddatabase-instelling voor CURSOR_CLOSE_ON_COMMIT. ODBC- en OLE DB-clients geven standaard een set-instructieinstelling op verbindingsniveau uit CURSOR_CLOSE_ON_COMMIT op UIT voor de sessie. De clients voeren de instructie uit wanneer u verbinding maakt met een exemplaar van SQL Server. Zie SET CURSOR_CLOSE_ON_COMMITvoor meer informatie.

U kunt de status van deze optie bepalen door de kolom is_cursor_close_on_commit_on te bekijken in de sys.databases catalogusweergave of de eigenschap IsCloseCursorsOnCommitEnabled van de functie DATABASEPROPERTYEX. De cursor wordt impliciet de toewijzing alleen ongedaan gemaakt wanneer de verbinding is verbroken. Zie CURSOR declarerenvoor meer informatie.

<db_encryption_option> ::=

Hiermee bepaalt u de status van de databaseversleuteling.

VERSLEUTELING { AAN | UIT }

Hiermee stelt u in dat de database moet worden versleuteld (AAN) of niet versleuteld (UIT). Zie TDE-(Transparent Data Encryption) en Transparent Data Encryption voor Azure SQL Database, Azure SQL Managed Instance en Azure Synapse Analyticsvoor meer informatie over databaseversleuteling.

Wanneer versleuteling op databaseniveau is ingeschakeld, worden alle bestandsgroepen versleuteld. Alle nieuwe bestandsgroepen nemen de versleutelde eigenschap over. Als bestandsgroepen in de database zijn ingesteld op ALLEEN-LEZEN, mislukt de bewerking voor databaseversleuteling.

U kunt de versleutelingsstatus van de database zien met behulp van de sys.dm_database_encryption_keys dynamische beheerweergave.

<delayed_durability_option> ::=

Bepaalt of transacties volledig duurzaam of vertraagd worden doorgevoerd.

  • INVALIDE

    Alle transacties na SET DISABLED zijn volledig duurzaam. Alle duurzaamheidsopties die zijn ingesteld in een atomische blok- of doorvoerinstructie, worden genegeerd.

  • TOEGESTAAN

    Alle transacties na SET ALLOWED zijn volledig duurzaam of vertraagd, afhankelijk van de duurzaamheidsoptie die is ingesteld in de atomische blok- of doorvoerinstructie.

  • GEDWONGEN

    Alle transacties na SET FORCED worden duurzaam vertraagd. Alle duurzaamheidsopties die zijn ingesteld in een atomische blok- of doorvoerinstructie, worden genegeerd.

<PARAMETERIZATION_option> ::=

Hiermee bepaalt u de parameterisatieoptie.

PARAMETERISATIE { SIMPLE | GEFORCEERD }

  • EENVOUDIG

    Query's worden geparameteriseerd op basis van het standaardgedrag van de database.

  • GEDWONGEN

SQL Server parameteriseert alle query's in de database.

De huidige instelling van deze optie kan worden bepaald door de kolom is_parameterization_forced in de sys.databases catalogusweergave te bekijken.

<query_store_options> ::=

  • AAN | UIT | CLEAR [ ALL ]

    Hiermee bepaalt u of Query Store is ingeschakeld in deze database en bepaalt u ook hoe de inhoud van de Query Store wordt verwijderd.

    • OP

      Hiermee schakelt u Query Store in.

    • AF

      Hiermee schakelt u de Query Store uit. Dit is de standaardwaarde.

    • DUIDELIJK

      Verwijder de inhoud van de Query Store.

OPERATION_MODE

Beschrijft de bewerkingsmodus van de Query Store. Geldige waarden zijn READ_ONLY en READ_WRITE. In READ_WRITE-modus verzamelt en persistente queryplan- en runtime-uitvoeringsstatistieken. In READ_ONLY-modus kan informatie worden gelezen uit de Query Store, maar er wordt geen nieuwe informatie toegevoegd. Als de maximaal toegewezen ruimte van de Query Store is uitgeput, wijzigt Query Store de bewerkingsmodus in READ_ONLY.

CLEANUP_POLICY

Beschrijft het bewaarbeleid voor gegevens van de Query Store. STALE_QUERY_THRESHOLD_DAYS bepaalt het aantal dagen waarvoor de gegevens voor een query worden bewaard in de Query Store. STALE_QUERY_THRESHOLD_DAYS is bigint. De standaardwaarde is 30. Voor sql Database Basic is de standaardinstelling 7 dagen.

DATA_FLUSH_INTERVAL_SECONDS

Bepaalt de frequentie waarmee gegevens die naar de Query Store worden geschreven, op schijf worden bewaard. Om de prestaties te optimaliseren, worden gegevens die door de Query Store worden verzameld, asynchroon naar de schijf geschreven. De frequentie waarmee deze asynchrone overdracht plaatsvindt, wordt geconfigureerd met behulp van het argument DATA_FLUSH_INTERVAL_SECONDS. DATA_FLUSH_INTERVAL_SECONDS is bigint. De standaardwaarde is 900 (15 min).

MAX_STORAGE_SIZE_MB

Bepaalt de ruimte die is toegewezen aan de Query Store. MAX_STORAGE_SIZE_MB is bigint. De standaardwaarde is 100 MB.

MAX_STORAGE_SIZE_MB limiet wordt niet strikt afgedwongen. De opslaggrootte wordt alleen gecontroleerd wanneer Query Store gegevens naar schijf schrijft. Dit interval wordt ingesteld door de optie DATA_FLUSH_INTERVAL_SECONDS of de dialoogvensteroptie Query Store van Management Studio interval voor het leegmaken van gegevens. De standaardwaarde voor het interval is 900 seconden (of 15 minuten).

Als de Query Store de MAX_STORAGE_SIZE_MB limiet tussen controles van de opslaggrootte heeft overschreden, wordt deze overgezet naar de modus Alleen-lezen. Als SIZE_BASED_CLEANUP_MODE is ingeschakeld, wordt het opschoonmechanisme voor het afdwingen van de MAX_STORAGE_SIZE_MB limiet ook geactiveerd.

Zodra er voldoende ruimte is gewist, schakelt de Query Store-modus automatisch terug naar lezen/schrijven.

Belangrijk

  • Als u denkt dat uw workloadopname meer dan 10 GB schijfruimte nodig heeft, moet u uw workload waarschijnlijk herzien en optimaliseren om queryplannen opnieuw te gebruiken (bijvoorbeeld door gebruik te maken van geforceerde parametersof de Query Store-configuraties aan te passen.
  • Vanaf SQL Server 2019 (15.x) en in Azure SQL Database kunt u QUERY_CAPTURE_MODE instellen op CUSTOM voor extra controle over het queryopnamebeleid.
  • MAX_STORAGE_SIZE_MB instellingslimiet is 10.240 MB in Azure SQL Managed Instance.

INTERVAL_LENGTH_MINUTES

Bepaalt het tijdsinterval waarmee runtime-uitvoeringsstatistiekengegevens worden samengevoegd in de Query Store. Om te optimaliseren voor ruimtegebruik, worden de uitvoeringsstatistieken van runtime in het archief met runtimestatistieken geaggregeerd in een vast tijdvenster. Dit vaste tijdvenster wordt geconfigureerd met behulp van het argument INTERVAL_LENGTH_MINUTES. INTERVAL_LENGTH_MINUTES is bigint. De standaardwaarde is 60.

SIZE_BASED_CLEANUP_MODE = { AUTO | UIT }

Hiermee bepaalt u of opschonen automatisch wordt geactiveerd wanneer de totale hoeveelheid gegevens dicht bij de maximale grootte komt.

  • AF

    Op grootte gebaseerde opschoning wordt niet automatisch geactiveerd.

  • AUTO

    Op grootte gebaseerde opschoning wordt automatisch geactiveerd wanneer de grootte op schijf 90% van max_storage_size_mbbereikt. Op grootte gebaseerde opschoning verwijdert eerst de goedkoopste en oudste query's. Het stopt op ongeveer 80% van max_storage_size_mb. Dit is de standaardconfiguratiewaarde.

SIZE_BASED_CLEANUP_MODE is type nvarchar.

QUERY_CAPTURE_MODE { ALL | AUTO | AANGEPAST | GEEN }

Hiermee wordt de momenteel actieve queryopnamemodus opgegeven.

  • ALLE

    Alle query's worden vastgelegd.

  • AUTO

    Leg relevante query's vast op basis van het aantal uitvoeringen en het resourceverbruik. Dit is de standaardconfiguratiewaarde voor Azure SQL Database.

  • GEEN

    Stop met het vastleggen van nieuwe query's. Query Store blijft compileer- en runtimestatistieken verzamelen voor query's die al zijn vastgelegd. Gebruik deze configuratie met voorzichtigheid, omdat u belangrijke query's mogelijk niet kunt vastleggen.

QUERY_CAPTURE_MODE is type nvarchar.

MAX_PLANS_PER_QUERY

Een geheel getal dat het maximum aantal plannen vertegenwoordigt dat voor elke query wordt onderhouden. MAX_PLANS_PER_QUERY is int. De standaardwaarde is 200.

WAIT_STATS_CAPTURE_MODE { AAN | UIT }

Hiermee bepaalt u of wachtstatistieken per query worden vastgelegd.

  • OP

    Wachtstatistiekengegevens per query worden vastgelegd. Deze waarde is de standaardconfiguratiewaarde.

  • AF

    Wachtstatistiekengegevens per query worden niet vastgelegd.

<query_capture_policy_option_list> :: =

Hiermee bepaalt u de opnamebeleidsopties van Query Store. Met uitzondering van STALE_CAPTURE_POLICY_THRESHOLD definiëren deze opties de OR-voorwaarden die moeten worden uitgevoerd voor het vastleggen van query's in de gedefinieerde drempelwaarde voor verlopen vastleggen van beleid.

STALE_CAPTURE_POLICY_THRESHOLD = geheel getal { DAYS | HOURS }

Definieert de evaluatieperiode om te bepalen of een query moet worden vastgelegd. De standaardwaarde is 1 dag en kan worden ingesteld van 1 uur tot zeven dagen.

EXECUTION_COUNT = geheel getal

Hiermee definieert u het aantal keren dat een query wordt uitgevoerd gedurende de evaluatieperiode. De standaardwaarde is 30, wat betekent dat voor de standaarddrempelwaarde voor verlopen capturebeleid een query minstens 30 keer in één dag moet worden uitgevoerd om te worden bewaard in de Query Store. EXECUTION_COUNT is int.

TOTAL_COMPILE_CPU_TIME_MS = geheel getal

Hiermee definieert u de totale verstreken CPU-tijd die door een query wordt gebruikt gedurende de evaluatieperiode. De standaardwaarde is 1000, wat betekent dat voor de standaarddrempelwaarde voor verlopen capturebeleid een query een totaal van ten minste één seconde CPU-tijd moet hebben die is besteed tijdens het compileren van query's in één dag om te worden bewaard in de Query Store. TOTAL_COMPILE_CPU_TIME_MS is int.

TOTAL_EXECUTION_CPU_TIME_MS = geheel getal

Hiermee definieert u de totale verstreken CPU-tijd van de uitvoering die wordt gebruikt door een query gedurende de evaluatieperiode. De standaardwaarde is 100, wat betekent dat voor de standaarddrempelwaarde voor verlopen capturebeleid een query in totaal ten minste 100 ms CPU-tijd moet hebben die is besteed tijdens de uitvoering in één dag om te worden bewaard in de Query Store. TOTAL_EXECUTION_CPU_TIME_MS is int.

<snapshot_option> ::=

Bepaalt het niveau van transactieisolatie.

ALLOW_SNAPSHOT_ISOLATION { ON | UIT }

  • OP

    Hiermee schakelt u de optie Momentopname in op databaseniveau. Wanneer deze optie is ingeschakeld, beginnen DML-instructies met het genereren van rijversies, zelfs wanneer er geen transactie gebruikmaakt van Momentopname-isolatie. Nadat deze optie is ingeschakeld, kunnen transacties het isolatieniveau van de MOMENTOPNAME-transactie opgeven. Wanneer een transactie wordt uitgevoerd op het isolatieniveau SNAPSHOT, zien alle instructies een momentopname van gegevens zoals deze zich aan het begin van de transactie bevinden. Als een transactie die wordt uitgevoerd op het isolatieniveau SNAPSHOT toegang heeft tot gegevens in meerdere databases, moet ALLOW_SNAPSHOT_ISOLATION zijn ingesteld op AAN in alle databases, of elke instructie in de transactie moet vergrendelingshints gebruiken voor elke verwijzing in een FROM-component naar een tabel in een database waar ALLOW_SNAPSHOT_ISOLATION is uitgeschakeld.

  • AF

    Hiermee schakelt u de optie Momentopname uit op databaseniveau. Transacties kunnen het isolatieniveau van de SNAPSHOT-transactie niet opgeven.

Wanneer u ALLOW_SNAPSHOT_ISOLATION instelt op een nieuwe status (van AAN naar UIT of van UIT naar AAN), retourneert ALTER DATABASE geen controle naar de beller totdat alle bestaande transacties in de database zijn doorgevoerd. Als de database al de status heeft die is opgegeven in de instructie ALTER DATABASE, wordt het besturingselement onmiddellijk teruggezet naar de aanroeper. Als de instructie ALTER DATABASE niet snel retourneert, gebruikt u sys.dm_tran_active_snapshot_database_transactions om te bepalen of er langlopende transacties zijn. Als de instructie ALTER DATABASE wordt geannuleerd, blijft de database de status behouden waarin deze zich bevond toen ALTER DATABASE werd gestart. De sys.databases catalogusweergave geeft de status van momentopname-isolatietransacties in de database aan. Als snapshot_isolation_state_desc = IN_TRANSITION_TO_ON, pauzeert de instructie ALTER DATABASE ... ALLOW_SNAPSHOT_ISOLATION OFF zes seconden en voert u de bewerking opnieuw uit.

U kunt de status van ALLOW_SNAPSHOT_ISOLATION niet wijzigen als de database OFFLINE is.

U kunt de ALLOW_SNAPSHOT_ISOLATION-instellingen voor de master, model, msdben tempdb databases wijzigen. De instelling wordt bewaard telkens wanneer het exemplaar van de database-engine wordt gestopt en opnieuw wordt gestart als u de instelling voor tempdbwijzigt. Als u de instelling voor de model systeemdatabase wijzigt, wordt deze instelling de standaardinstelling voor nieuwe databases die worden gemaakt, met uitzondering van tempdb.

De optie is standaard INGESCHAKELD voor de master- en msdb-databases.

De huidige instelling van deze optie kan worden bepaald door de kolom snapshot_isolation_state in de sys.databases catalogusweergave te bekijken.

READ_COMMITTED_SNAPSHOT { AAN | UIT }

  • OP

    Hiermee schakelt u de optie Read-Committed Momentopname in op databaseniveau. Wanneer deze optie is ingeschakeld, beginnen DML-instructies met het genereren van rijversies, zelfs wanneer er geen transactie gebruikmaakt van Momentopname-isolatie. Nadat deze optie is ingeschakeld, gebruiken de transacties die het isolatieniveau READ COMMITTED opgeven rijversiebeheer in plaats van vergrendeling. Alle instructies zien een momentopname van gegevens zoals deze bestaan aan het begin van de instructie wanneer een transactie wordt uitgevoerd op het isolatieniveau READ COMMITTED.

  • AF

    Hiermee schakelt u de optie Read-Committed Momentopname uit op databaseniveau. Transacties die het isolatieniveau READ COMMITTED opgeven, maken gebruik van vergrendeling.

Als u READ_COMMITTED_SNAPSHOT wilt instellen op AAN of UIT, moeten er geen actieve verbindingen met de database zijn, met uitzondering van de verbinding met de opdracht ALTER DATABASE. De database hoeft zich echter niet in de modus voor één gebruiker te bevinden. U kunt de status van deze optie niet wijzigen wanneer de database OFFLINE is.

READ_COMMITTED_SNAPSHOT kan niet worden ingeschakeld voor de master, tempdbof msdb systeemdatabases. Als u de instelling voor de model systeemdatabase wijzigt, wordt deze instelling de standaardinstelling voor nieuwe databases die zijn gemaakt, met uitzondering van tempdb.

De huidige instelling van deze optie kan worden bepaald door de kolom is_read_committed_snapshot_on in de sys.databases catalogusweergave te bekijken.

Waarschuwing

Wanneer een tabel wordt gemaakt met DUURZAAMHEID = SCHEMA_ONLYen READ_COMMITTED_SNAPSHOT vervolgens wordt gewijzigd met ALTER DATABASE, gaan de gegevens in de tabel verloren.

MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT { AAN | UIT }

  • OP

    Wanneer het niveau van transactieisolatie is ingesteld op een isolatieniveau dat lager is dan MOMENTOPNAME, worden alle geïnterpreteerde Transact-SQL bewerkingen op tabellen die zijn geoptimaliseerd voor geheugen, uitgevoerd onder MOMENTOPNAME-isolatie. Voorbeelden van isolatieniveaus die lager zijn dan momentopnamen zijn READ COMMITTED of READ UNCOMMITTED. Deze bewerkingen worden uitgevoerd of het niveau van transactieisolatie expliciet is ingesteld op sessieniveau, of de standaardinstelling wordt impliciet gebruikt.

  • AF

    Verhoogt het niveau van transactieisolatie niet voor geïnterpreteerde Transact-SQL bewerkingen op tabellen die zijn geoptimaliseerd voor geheugen.

U kunt de status van MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT niet wijzigen als de database OFFLINE is.

De standaardwaarde is UIT.

De huidige instelling van deze optie kan worden bepaald door de kolom is_memory_optimized_elevate_to_snapshot_on in de sys.databases catalogusweergave te bekijken.

<sql_option> ::=

Hiermee bepaalt u de ANSI-nalevingsopties op databaseniveau.

ANSI_NULL_DEFAULT { AAN | UIT }

Bepaalt de standaardwaarde, NULL of NOT NULL, van een kolom of door de gebruiker gedefinieerde CLR-type waarvoor de null-waarde niet expliciet is gedefinieerd in CREATE TABLE- of ALTER TABLE-instructies. Kolommen die zijn gedefinieerd met beperkingen volgen regels voor beperkingen, ongeacht wat deze instelling kan zijn.

  • OP

    De standaardwaarde is NULL.

  • AF

    De standaardwaarde is NOT NULL.

Instellingen op verbindingsniveau die zijn ingesteld met de SET-instructie overschrijven de standaardinstelling op databaseniveau voor ANSI_NULL_DEFAULT. ODBC- en OLE DB-clients geven standaard een set-instructieinstelling op verbindingsniveau uit ANSI_NULL_DEFAULT op AAN voor de sessie. De clients voeren de instructie uit wanneer u verbinding maakt met een exemplaar van SQL Server. Zie SET ANSI_NULL_DFLT_ONvoor meer informatie.

Voor ANSI-compatibiliteit stelt u de databaseoptie in ANSI_NULL_DEFAULT op AAN wijzigt de standaardwaarde van de database in NULL.

U kunt de status van deze optie bepalen door de kolom is_ansi_null_default_on te bekijken in de sys.databases catalogusweergave. U kunt ook de status bepalen door de eigenschap IsAnsiNullDefault van de DATABASEPROPERTYEX- functie te onderzoeken.

ANSI_NULLS { AAN | UIT }

  • OP

    Alle vergelijkingen met een null-waarde resulteren in ONBEKEND.

  • AF

    Vergelijkingen van niet-Unicode-waarden met een null-waarde resulteren in WAAR als beide waarden NULL zijn.

Belangrijk

In een toekomstige versie van SQL Server is ANSI_NULLS altijd INGESCHAKELD en eventuele toepassingen die de optie expliciet op UIT instellen, veroorzaken een fout. Vermijd het gebruik van deze functie in nieuwe ontwikkelwerkzaamheden en plan om toepassingen te wijzigen die momenteel gebruikmaken van deze functie.

Instellingen op verbindingsniveau die zijn ingesteld met de SET-instructie overschrijven de standaarddatabase-instelling voor ANSI_NULLS. ODBC- en OLE DB-clients geven standaard een set-instructieinstelling op verbindingsniveau uit ANSI_NULLS op AAN voor de sessie. De clients voeren de instructie uit wanneer u verbinding maakt met een exemplaar van SQL Server. Zie SET ANSI_NULLSvoor meer informatie.

Belangrijk

SET ANSI_NULLS moet ook worden ingesteld op AAN wanneer u indexen maakt of wijzigt in indexen in berekende kolommen of geïndexeerde weergaven.

U kunt de status van deze optie bepalen door de kolom is_ansi_nulls_on te bekijken in de sys.databases catalogusweergave. U kunt ook de status bepalen door de eigenschap IsAnsiNullsEnabled van de DATABASEPROPERTYEX- functie te onderzoeken.

ANSI_PADDING { AAN | UIT }

  • OP

    Tekenreeksen worden opgevuld tot dezelfde lengte voordat de conversie wordt uitgevoerd. Ook opgevuld tot dezelfde lengte voordat u een varchar of nvarchar gegevenstype invoegt.

  • AF

    Voegt volgspaties in tekenwaarden in varchar- of nvarchar kolommen in. Laat ook volgnullen achter in binaire waarden die worden ingevoegd in varbinaire kolommen. Waarden worden niet opgevuld tot de lengte van de kolom.

    Wanneer UIT is opgegeven, is deze instelling alleen van invloed op de definitie van nieuwe kolommen.

Belangrijk

In een toekomstige versie van SQL Server is ANSI_PADDING altijd INGESCHAKELD en eventuele toepassingen die de optie expliciet op UIT instellen, veroorzaken een fout. Vermijd het gebruik van deze functie in nieuwe ontwikkelwerkzaamheden en plan om toepassingen te wijzigen die momenteel gebruikmaken van deze functie. U wordt aangeraden ANSI_PADDING altijd in te stellen op AAN. ANSI_PADDING moet zijn ingeschakeld wanneer u indexen maakt of bewerkt voor berekende kolommen of geïndexeerde weergaven.

char(n) en binary(n) kolommen die null-waarden toestaan, worden opgevuld met de kolomlengte wanneer ANSI_PADDING is ingesteld op AAN. Afsluitende lege waarden en nullen worden afgekapt wanneer ANSI_PADDING uit is. char(n) en binary(n) kolommen die null-waarden niet toestaan, worden altijd opgevuld met de lengte van de kolom.

Instellingen op verbindingsniveau die zijn ingesteld met de SET-instructie overschrijven de standaardinstelling op databaseniveau voor ANSI_PADDING. ODBC- en OLE DB-clients geven standaard een set-instructieinstelling op verbindingsniveau uit ANSI_PADDING op AAN voor de sessie. De clients voeren de instructie uit wanneer u verbinding maakt met een exemplaar van SQL Server. Zie SET ANSI_PADDINGvoor meer informatie.

U kunt de status van deze optie bepalen door de kolom is_ansi_padding_on te bekijken in de sys.databases catalogusweergave. U kunt ook de status bepalen door de eigenschap IsAnsiPaddingEnabled van de DATABASEPROPERTYEX- functie te onderzoeken.

ANSI_WARNINGS { AAN | UIT }

  • OP

    Fouten of waarschuwingen worden uitgegeven wanneer er voorwaarden zoals delen door nul optreden. Fouten en waarschuwingen worden ook uitgegeven wanneer null-waarden worden weergegeven in statistische functies.

  • AF

    Er worden geen waarschuwingen gegenereerd en null-waarden worden geretourneerd wanneer voorwaarden zoals delen door nul optreden.

Belangrijk

SET ANSI_WARNINGS moet worden ingesteld op AAN wanneer u indexen maakt of wijzigt in indexen in berekende kolommen of geïndexeerde weergaven.

Instellingen op verbindingsniveau die zijn ingesteld met de SET-instructie overschrijven de standaarddatabase-instelling voor ANSI_WARNINGS. ODBC- en OLE DB-clients geven standaard een set-instructieinstelling op verbindingsniveau uit ANSI_WARNINGS op AAN voor de sessie. De clients voeren de instructie uit wanneer u verbinding maakt met een exemplaar van SQL Server. Zie SET ANSI_WARNINGSvoor meer informatie.

U kunt de status van deze optie bepalen door de kolom is_ansi_warnings_on te bekijken in de sys.databases catalogusweergave. U kunt ook de status bepalen door de eigenschap IsAnsiWarningsEnabled van de DATABASEPROPERTYEX- functie te onderzoeken.

ARITHABORT { ON | UIT }

  • OP

    Een query wordt beëindigd wanneer er een overloop- of deel-by-nul-fout optreedt tijdens de uitvoering van de query.

  • AF

    Er wordt een waarschuwingsbericht weergegeven wanneer een van deze fouten optreedt. De query, batch of transactie blijft verwerken alsof er geen fout is opgetreden, zelfs als er een waarschuwing wordt weergegeven.

Belangrijk

SET ARITHABORT moet worden ingesteld op AAN wanneer u indexen maakt of wijzigt in indexen op berekende kolommen of geïndexeerde weergaven.

U kunt de status van deze optie bepalen door de kolom is_arithabort_on te bekijken in de sys.databases catalogusweergave. U kunt ook de status bepalen door de eigenschap IsArithmeticAbortEnabled van de DATABASEPROPERTYEX- functie te onderzoeken.

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

Zie ALTER DATABASE-compatibiliteitsniveauvoor meer informatie.

CONCAT_NULL_YIELDS_NULL { AAN | UIT }

  • OP

    Het resultaat van een samenvoegingsbewerking is NULL wanneer een van beide operanden NULL is. Als u bijvoorbeeld de tekenreeks 'Dit is' samenvoegt en NULL de waarde NULL veroorzaakt, in plaats van de waarde 'Dit is'.

  • AF

    De null-waarde wordt behandeld als een lege tekenreeks.

Belangrijk

CONCAT_NULL_YIELDS_NULL moet worden ingesteld op AAN wanneer u indexen maakt of wijzigt in indexen in berekende kolommen of geïndexeerde weergaven.

In een toekomstige versie van SQL Server is CONCAT_NULL_YIELDS_NULL altijd INGESCHAKELD en eventuele toepassingen die de optie expliciet op UIT instellen, veroorzaken een fout. Vermijd het gebruik van deze functie in nieuwe ontwikkelwerkzaamheden en plan om toepassingen te wijzigen die momenteel gebruikmaken van deze functie.

Instellingen op verbindingsniveau die zijn ingesteld met de SET-instructie overschrijven de standaarddatabase-instelling voor CONCAT_NULL_YIELDS_NULL. ODBC- en OLE DB-clients geven standaard een set-instructieinstelling op verbindingsniveau uit CONCAT_NULL_YIELDS_NULL aan AAN voor de sessie wanneer er verbinding wordt gemaakt met een exemplaar van SQL Server. Zie SET CONCAT_NULL_YIELDS_NULLvoor meer informatie.

U kunt de status van deze optie bepalen door de kolom is_concat_null_yields_null_on te bekijken in de sys.databases catalogusweergave. U kunt ook de status bepalen door de eigenschap IsNullConcat van de DATABASEPROPERTYEX- functie te onderzoeken.

NUMERIC_ROUNDABORT { AAN | UIT }

  • OP

    Er wordt een fout gegenereerd wanneer verlies van precisie optreedt in een expressie.

  • AF

    Verlies van precisie genereert geen foutbericht en het resultaat wordt afgerond op de precisie van de kolom of variabele die het resultaat opslaat.

Belangrijk

NUMERIC_ROUNDABORT moet zijn ingesteld op UIT wanneer u indexen maakt of wijzigt in indexen in berekende kolommen of geïndexeerde weergaven.

U kunt de status van deze optie bepalen in de kolom is_numeric_roundabort_on in de sys.databases catalogusweergave. U kunt ook de status bepalen door de eigenschap IsNumericRoundAbortEnabled van de DATABASEPROPERTYEX- functie te onderzoeken.

QUOTED_IDENTIFIER { AAN | UIT }

  • OP

    Dubbele aanhalingstekens kunnen worden gebruikt om gescheiden id's in te sluiten.

    Alle tekenreeksen die door dubbele aanhalingstekens worden gescheiden, worden geïnterpreteerd als object-id's. De Transact-SQL-regels voor id's hoeven niet te worden gevolgd. Dit kunnen trefwoorden zijn en tekens bevatten die niet zijn toegestaan in Transact-SQL id's. Als een dubbel aanhalingsteken (") deel uitmaakt van de id, kan deze worden vertegenwoordigd door twee dubbele aanhalingstekens ("").

  • AF

    Id's mogen niet tussen aanhalingstekens staan en moeten alle Transact-SQL regels voor id's volgen. Letterlijke tekens kunnen worden gescheiden door enkele of dubbele aanhalingstekens.

Met SQL Server kunnen id's ook worden gescheiden door vierkante haken ([ en ]). Id's met haakjes kunnen altijd worden gebruikt, ongeacht de QUOTED_IDENTIFIER instelling. Zie Database-id'svoor meer informatie.

Wanneer een tabel wordt gemaakt, wordt de optie AAN-ID altijd opgeslagen als AAN in de metagegevens van de tabel. De optie wordt opgeslagen, zelfs als de optie is ingesteld op UIT wanneer de tabel wordt gemaakt.

Instellingen op verbindingsniveau die zijn ingesteld met de SET-instructie overschrijven de standaarddatabase-instelling voor QUOTED_IDENTIFIER. ODBC- en OLE DB-clients geven standaard een set-instructieinstelling op verbindingsniveau uit QUOTED_IDENTIFIER op AAN. De clients voeren de instructie uit wanneer u verbinding maakt met een exemplaar van SQL Server. Zie SET QUOTED_IDENTIFIERvoor meer informatie.

U kunt de status van deze optie bepalen door de kolom is_quoted_identifier_on te bekijken in de sys.databases catalogusweergave. U kunt ook de status bepalen door de eigenschap IsQuotedIdentifiersEnabled van de DATABASEPROPERTYEX- functie te onderzoeken.

RECURSIVE_TRIGGERS { AAN | UIT }

  • OP

    Recursieve schieting van AFTER-triggers is toegestaan.

  • AF

    U kunt de status van deze optie bepalen door de kolom is_recursive_triggers_on te bekijken in de sys.databases catalogusweergave. U kunt ook de status bepalen door de eigenschap IsRecursiveTriggersEnabled van de DATABASEPROPERTYEX- functie te onderzoeken.

    Notitie

    Alleen directe recursie wordt voorkomen wanneer RECURSIVE_TRIGGERS is ingesteld op UIT. Als u indirecte recursie wilt uitschakelen, moet u ook de serveroptie geneste triggers instellen op 0.

U kunt de status van deze optie bepalen door de kolom is_recursive_triggers_on te bekijken in de sys.databases catalogusweergave of de eigenschap IsRecursiveTriggersEnabled van de functie DATABASEPROPERTYEX.

<target_recovery_time_option> ::=

target_recovery_time_option wordt niet ondersteund in Azure SQL Managed Instance.

Hiermee geeft u de frequentie van indirecte controlepunten per database. Vanaf SQL Server 2016 (13.x) is de standaardwaarde voor nieuwe databases 1 minuut, wat aangeeft dat de database indirecte controlepunten gebruikt. Voor oudere versies is de standaardwaarde 0, wat aangeeft dat de database automatische controlepunten gebruikt, waarvan de frequentie afhankelijk is van de herstelintervalinstelling van het serverexemplaren. Microsoft raadt 1 minuut aan voor de meeste systemen.

MET <beëindiging> ::=

Hiermee geeft u op wanneer onvolledige transacties moeten worden teruggedraaid wanneer de database van de ene status naar de andere wordt overgezet. Als de beëindigingsclausule wordt weggelaten, wacht de instructie ALTER DATABASE voor onbepaalde tijd als er een vergrendeling op de database is. Er kan slechts één beëindigingsclausule worden opgegeven en volgt de SET-componenten.

Notitie

Niet alle databaseopties maken gebruik van de component WITH <beëindiging>. Zie de tabel onder Instellingsopties van de sectie Opmerkingen van dit artikel voor meer informatie.

  • TERUGDRAAIEN NA geheel getal [SECONDEN] | DIRECT TERUGDRAAIEN

    Hiermee geeft u op of u wilt terugdraaien na het opgegeven aantal seconden of onmiddellijk.

  • NO_WAIT

    Hiermee geeft u op dat de aanvraag mislukt als de aangevraagde databasestatus of optiewijziging niet onmiddellijk kan worden voltooid. Onmiddellijk voltooien betekent niet wachten op het doorvoeren of terugdraaien van transacties.

<temporal_history_retention> ::=

Opties instellen

Als u de huidige instellingen voor databaseopties wilt ophalen, gebruikt u de sys.databases catalogusweergave of DATABASEPROPERTYEX-

Nadat u een databaseoptie hebt ingesteld, wordt de nieuwe instelling onmiddellijk van kracht.

U kunt de standaardwaarden wijzigen voor een van de databaseopties voor alle nieuw gemaakte databases. Hiervoor wijzigt u de juiste databaseoptie in de model systeemdatabase.

Voorbeelden

Een. Isolatie van momentopnamen inschakelen voor een database

In het volgende voorbeeld wordt de optie voor isolatieframework voor momentopnamen ingeschakeld voor de AdventureWorks2022-database.

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

De resultatenset laat zien dat het framework voor isolatie van momentopnamen is ingeschakeld.

naam snapshot_isolation_state beschrijving
[database_name] 1 OP

B. Wijzigingen bijhouden inschakelen, wijzigen of uitschakelen

In het volgende voorbeeld wordt het bijhouden van wijzigingen voor de AdventureWorks2022 database ingeschakeld en wordt de bewaarperiode ingesteld op 2 dagen.

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

In het volgende voorbeeld ziet u hoe u de bewaarperiode wijzigt in 3 dagen.

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

In het volgende voorbeeld ziet u hoe u het bijhouden van wijzigingen voor de AdventureWorks2022-database kunt uitschakelen.

ALTER DATABASE [database_name]
SET CHANGE_TRACKING = OFF;

C. Query Store inschakelen

In het volgende voorbeeld worden Query Store-parameters ingeschakeld en geconfigureerd.

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. Query Store met wachtstatistieken inschakelen

In het volgende voorbeeld wordt Query Store ingeschakeld en worden de parameters geconfigureerd.

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. Query Store inschakelen met aangepaste beleidsopties voor vastleggen

In het volgende voorbeeld wordt Query Store ingeschakeld en worden de parameters geconfigureerd.

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

* Azure Synapse
Analyse *
 

 

Azure Synapse Analytics

Syntaxis

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

Argumenten

database_name

De naam van de database die moet worden gewijzigd.

<auto_option> ::=

Hiermee bepaalt u automatische opties.

AUTO_CREATE_STATISTICS { AAN | UIT }

  • OP

    Query Optimizer maakt zo nodig statistieken voor afzonderlijke kolommen in querypredicaten om queryplannen en queryprestaties te verbeteren. Deze statistieken met één kolom worden gemaakt wanneer Query Optimizer query's compileert. De statistieken met één kolom worden alleen gemaakt voor kolommen die nog niet de eerste kolom van een bestaand statistiekenobject zijn.

    De standaardwaarde is AAN. U wordt aangeraden de standaardinstelling voor de meeste databases te gebruiken.

  • AF

    Query Optimizer maakt geen statistieken voor afzonderlijke kolommen in querypredicaten bij het compileren van query's. Als u deze optie instelt op UIT, kunnen suboptimale queryplannen en verminderde queryprestaties worden veroorzaakt.

Deze opdracht moet worden uitgevoerd terwijl deze is verbonden met de gebruikersdatabase.

U kunt de status van deze optie bepalen door de kolom is_auto_create_stats_on te bekijken in de sys.databases catalogusweergave. U kunt ook de status bepalen door de eigenschap IsAutoCreateStatistics van de DATABASEPROPERTYEX- functie te onderzoeken.

Zie de sectie 'De opties voor statistieken voor de hele database gebruiken' in Statistiekenvoor meer informatie.

<db_encryption_option> ::=

Hiermee bepaalt u de status van de databaseversleuteling.

VERSLEUTELING { AAN | UIT }

  • OP

    Hiermee stelt u in dat de database moet worden versleuteld.

  • AF

    Hiermee stelt u in dat de database niet wordt versleuteld.

Zie TDE-(Transparent Data Encryption) en Transparent Data Encryption voor Azure SQL Database, Azure SQL Managed Instance en Azure Synapse Analyticsvoor meer informatie over databaseversleuteling.

Wanneer versleuteling op databaseniveau is ingeschakeld, worden alle bestandsgroepen versleuteld. Alle nieuwe bestandsgroepen nemen de versleutelde eigenschap over. Als bestandsgroepen in de database zijn ingesteld op ALLEEN-LEZEN, mislukt de bewerking voor databaseversleuteling.

U kunt de versleutelingsstatus van de database en de status van de versleutelingsscan zien met behulp van de sys.dm_database_encryption_keys dynamische beheerweergave.

<query_store_option> ::=

Hiermee bepaalt u of Query Store is ingeschakeld in dit datawarehouse.

QUERY_STORE { AAN | UIT }

  • OP

    Hiermee schakelt u Query Store in.

  • AF

    Hiermee schakelt u de Query Store uit. UIT is de standaardwaarde.

Notitie

Voor Azure Synapse Analytics moet u ALTER DATABASE SET QUERY_STORE uitvoeren vanuit de gebruikersdatabase. Het uitvoeren van de instructie van een ander datawarehouse-exemplaar wordt niet ondersteund.

Notitie

Voor Azure Synapse Analytics kan Query Store worden ingeschakeld zoals op andere platforms, maar aanvullende configuratieopties worden niet ondersteund.

<result_set_caching_option> ::=

van toepassing op: Azure Synapse Analytics

Hiermee bepaalt u of het queryresultaat in de cache wordt opgeslagen in de database.

RESULT_SET_CACHING { AAN | UIT }

  • OP

    Hiermee geeft u op dat queryresultatensets die worden geretourneerd uit deze database in de cache worden opgeslagen in de database.

  • AF

    Hiermee geeft u op dat queryresultatensets die worden geretourneerd uit deze database niet in de cache worden opgeslagen in de database.

Deze opdracht moet worden uitgevoerd terwijl deze is verbonden met de master-database. Wijziging in deze database-instelling wordt onmiddellijk van kracht. Opslagkosten worden gemaakt door queryresultatensets in de cache op te slaan. Nadat u de cache van resultaten voor een database hebt uitgeschakeld, wordt de eerder persistente resultaatcache onmiddellijk verwijderd uit Azure Synapse-opslag.

Voer deze opdracht uit om de cacheconfiguratie van de resultatenset van een database te controleren. Als caching van resultatensets is ingeschakeld, retourneert is_result_set_caching_on 1.

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

Voer deze opdracht uit om te controleren of een query is uitgevoerd met behulp van het resultaat in de cache. De kolom result_cache_hit retourneert 1 voor cachetreffers, 0 voor cachemissers en negatieve waarden om redenen waarom het opslaan van resultatensets niet is gebruikt. Controleer sys.dm_pdw_exec_requests voor meer informatie.

SELECT request_id, command, result_cache_hit FROM sys.dm_pdw_exec_requests
WHERE request_id = <'Your_Query_Request_ID'>

Notitie

Caching van resultatensets mag niet worden gebruikt in combinatie met DECRYPTBYKEY. Als deze cryptografische functie moet worden gebruikt, moet u ervoor zorgen dat de resultatenset caching is uitgeschakeld (op sessieniveau of databaseniveau) op het moment van uitvoering.

Belangrijk

De bewerkingen voor het maken van de cache voor resultatensets en het ophalen van gegevens uit de cache vinden plaats op het besturingsknooppunt van een datawarehouse-exemplaar. Wanneer caching van resultatensets is ingeschakeld, kunnen het uitvoeren van query's die een grote resultatenset retourneren (bijvoorbeeld >1 miljoen rijen) een hoog CPU-gebruik op het besturingsknooppunt veroorzaken en de algehele queryreactie op het exemplaar vertragen. Deze query's worden vaak gebruikt tijdens het verkennen van gegevens of ETL-bewerkingen. Om te voorkomen dat het besturingsknooppunt wordt belast en prestatieproblemen veroorzaakt, moeten gebruikers resultatensets in de cache uitschakelen voordat ze deze typen query's uitvoeren.

Raadpleeg richtlijnen voor het afstemmen van prestatiesvoor meer informatie over het afstemmen van de prestaties met caching van resultatensets.

Machtigingen

Als u de optie RESULT_SET_CACHING wilt instellen, moet een gebruiker zich op serverniveau aanmelden (degene die is gemaakt door het inrichtingsproces) of lid zijn van de dbmanager-databaserol.

<snapshot_option> ::=

van toepassing op: Azure Synapse Analytics

Hiermee bepaalt u het isolatieniveau van een transactie van een database.

READ_COMMITTED_SNAPSHOT { AAN | UIT }

  • OP

    Hiermee schakelt u de optie READ_COMMITTED_SNAPSHOT op databaseniveau in.

  • AF

    Schakel de optie READ_COMMITTED_SNAPSHOT uit op databaseniveau.

Deze opdracht moet worden uitgevoerd terwijl deze is verbonden met de master-database. Als u READ_COMMITTED_SNAPSHOT in- of uitschakelt voor een gebruikersdatabase, worden alle geopende verbindingen met deze database uitgeschakeld. U moet deze wijziging aanbrengen tijdens een onderhoudsvenster van een database of wachten totdat er geen actieve verbinding met de database is, met uitzondering van de verbinding waarop de opdracht ALTER DATABASE wordt uitgevoerd. De database hoeft zich niet in de modus voor één gebruiker te bevinden. Het wijzigen van READ_COMMITTED_SNAPSHOT instelling op sessieniveau wordt niet ondersteund. Als u deze instelling voor een database wilt controleren, controleert u de kolom is_read_committed_snapshot_on in sys.databases.

In een database waarvoor READ_COMMITTED_SNAPSHOT ingeschakeld, kunnen query's tragere prestaties ervaren vanwege de scan van versies als er meerdere gegevensversies aanwezig zijn. Lang geopende transacties kunnen ook leiden tot een toename van de grootte van de database. Dit probleem treedt op als er gegevenswijzigingen zijn door deze transacties die het opschonen van de versie blokkeren.

Machtigingen

Als u de optie READ_COMMITTED_SNAPSHOT wilt instellen, heeft een gebruiker ALTER-machtiging nodig voor de database.

Voorbeelden

Instelling voor statistieken voor een database controleren

SELECT name, is_auto_create_stats_on FROM sys.databases

Query Store inschakelen voor een database

ALTER DATABASE [database_name]
SET QUERY_STORE = ON;

Cache van resultatensets inschakelen voor een database

-- Run this command when connecting to the MASTER database

ALTER DATABASE [database_name]
SET RESULT_SET_CACHING ON;

De cache-instelling voor resultatensets voor een database controleren

SELECT name, is_result_set_caching_on
FROM sys.databases;

De optie Read_Committed_Snapshot voor een database inschakelen

Voer deze opdracht uit wanneer u verbinding maakt met de master-database.

ALTER DATABASE MyDatabase
SET READ_COMMITTED_SNAPSHOT ON;

Microsoft Fabric-

 

Microsoft Fabric

Gebruik ALTER DATABASE ... SET om een Microsoft Fabric Warehouse te beheren.

Syntaxis

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

Opmerkingen

Op dit moment zijn het onderbreken van het publiceren van Delta Lake-logboeken en het uitschakelen van V-ordergedrag in een magazijn, de enige toepassingen voor ALTER DATABASE ... SET in Microsoft Fabric.

Machtigingen

De gebruiker moet lid zijn van de rollen Beheerder, Lid of Inzender in de werkruimte Fabric.

Voorbeelden

Een. Het publiceren van Delta Lake-logboeken onderbreken

Met de volgende T-SQL-opdracht wordt het publiceren van Delta Lake Log onderbroken in de huidige magazijncontext.

ALTER DATABASE CURRENT SET DATA_LAKE_LOG_PUBLISHING = PAUSED;

Als u de huidige status van Delta Lake Log-publicatie in alle magazijnen wilt controleren, gebruikt u de volgende T-SQL-code om query's uit te voeren op sys.databases in een nieuw queryvenster:

SELECT [name], [DATA_LAKE_LOG_PUBLISHING_DESC] FROM sys.databases;