Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ustawia opcje bazy danych w programie Microsoft SQL Server, usłudze Azure SQL Database i usłudze Azure Synapse Analytics. For other ALTER DATABASE options, see ALTER DATABASE.
Note
Ustawienie niektórych opcji przy użyciu funkcji ALTER DATABASE może wymagać wyłącznego dostępu do bazy danych. Jeśli instrukcja ALTER DATABASE nie zostanie ukończona w odpowiednim czasie, sprawdź, czy inne sesje w bazie danych blokują sesję ALTER DATABASE.
Aby uzyskać więcej informacji na temat konwencji składni, zobacz Transact-SQL konwencje składni.
Wybieranie produktu
W poniższym wierszu wybierz dowolną nazwę produktu. Spowoduje to wyświetlenie w tym miejscu innej zawartości na tej stronie internetowej, odpowiedniej dla wybranego produktu.
* SQL Server *
usługi
SQL Server
Dublowanie bazy danych, zawsze włączone grupy dostępności i poziomy zgodności są SET
opcje, ale są opisane w oddzielnych artykułach ze względu na ich długość. Aby uzyskać więcej informacji, zobacz ALTER DATABASE Mirroring, ALTER DATABASE SET HADRi poziomu zgodności z bazą danych ALTER DATABASE.
Konfiguracje o zakresie bazy danych służą do ustawiania kilku konfiguracji bazy danych na poziomie pojedynczej bazy danych. Aby uzyskać więcej informacji, zobacz ALTER DATABASE SCOPED CONFIGURATION.
Note
Many database set options can be configured for the current session by using SET statements and are often configured by applications when they connect. Opcje zestawu na poziomie sesji zastępują wartości ALTER DATABASE SET
. Opcje bazy danych opisane w poniższych sekcjach to wartości, które można ustawić dla sesji, które nie zapewniają jawnie innych wartości opcji zestawu.
Syntax
ALTER DATABASE { database_name | CURRENT }
SET
{
<option_spec> [ ,...n ] [ WITH <termination> ]
}
<option_spec> ::=
{
<accelerated_database_recovery>
| <auto_option>
| <automatic_tuning_option>
| <change_tracking_option>
| <containment_option>
| <cursor_option>
| <data_retention_policy>
| <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>
| <optimized_locking>
| <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>
}
;
<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 = { 170 | 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 }
<optimized_locking> ::=
{
OPTIMIZED_LOCKING = { ON | OFF }
}
Arguments
database_name
Nazwa bazy danych, która ma zostać zmodyfikowana.
CURRENT
Applies to: SQL Server (Starting with SQL Server 2012 (11.x))
Uruchamia akcję w bieżącej bazie danych.
CURRENT
nie jest obsługiwana dla wszystkich opcji we wszystkich kontekstach. Jeśli CURRENT
się nie powiedzie, podaj nazwę bazy danych.
< > accelerated_database_recovery ::=
Applies to: SQL Server (Starting with SQL Server 2019 (15.x))
Włącza przyspieszone odzyskiwanie bazy danych (ADR). Reguła ADR jest domyślnie wyłączona w programie SQL Server 2019 (15.x) i nowszych wersjach. Korzystając z tej składni, można wyznaczyć określoną grupę plików dla danych magazynu trwałych wersji (PVS). Jeśli grupa plików nie zostanie określona, usługa PVS używa grupy plików PRIMARY
. Aby uzyskać więcej informacji, zobacz Zarządzanie przyspieszonym odzyskiwaniem bazy danych.
Aby ustawić ACCELERATED_DATABASE_RECOVERY włączone lub wyłączone, nie musi istnieć żadne aktywne połączenia z bazą danych, z wyjątkiem połączenia z uruchomionym poleceniem ALTER DATABASE. Jednak baza danych nie musi być w trybie pojedynczego użytkownika. Nie można zmienić stanu tej opcji, chyba że baza danych jest w trybie ONLINE.
< > auto_option ::=
Steruje opcjami automatycznymi.
AUTO_CLOSE { ON | WYŁ. }
ON
Baza danych jest czysta i jej zasoby zostaną zwolnione po zakończeniu ostatniego działania użytkownika.
Baza danych zostanie automatycznie ponownie otwarta, gdy użytkownik spróbuje ponownie użyć bazy danych. Na przykład to zachowanie występuje, gdy użytkownik wystawia instrukcję
USE database_name
. Baza danych może zostać czysta zamknięta z AUTO_CLOSE ustawioną na WARTOŚĆ WŁĄCZONE. Jeśli tak, baza danych nie zostanie ponownie otwarta, dopóki użytkownik nie spróbuje użyć bazy danych przy następnym ponownym uruchomieniu aparatu bazy danych.Po zamknięciu bazy danych przy następnej próbie użycia bazy danych baza danych musi zostać otwarta, a następnie stan zmieni się na online. Może to zająć trochę czasu i może spowodować przekroczenie limitu czasu aplikacji.
OFF
Baza danych pozostaje otwarta po zakończeniu ostatniego użytkownika.
Opcja AUTO_CLOSE jest przydatna w przypadku baz danych klasycznych, ponieważ umożliwia zarządzanie plikami bazy danych jako zwykłymi plikami. Można je przenosić, kopiować do tworzenia kopii zapasowych, a nawet wysyłać pocztą e-mail do innych użytkowników. Proces AUTO_CLOSE jest asynchroniczny; wielokrotne otwieranie i zamykanie bazy danych nie zmniejsza wydajności.
Note
Opcja AUTO_CLOSE nie jest dostępna w zawartej bazie danych ani w usłudze SQL Database.
You can determine this option's status by examining the is_auto_close_on
column in the sys.databases catalog view or the IsAutoClose
property of the DATABASEPROPERTYEX function.
When AUTO_CLOSE is set to ON, some columns in the sys.databases catalog view and the DATABASEPROPERTYEX function returns NULL because the database is unavailable to retrieve the data. Aby rozwiązać ten problem, uruchom instrukcję USE, aby otworzyć bazę danych.
Dublowanie bazy danych wymaga ustawienia AUTO_CLOSE wyłączone.
Gdy baza danych jest ustawiona na AUTOCLOSE = ON
, operacja, która inicjuje automatyczne zamykanie bazy danych, czyści pamięć podręczną planu dla wystąpienia programu SQL Server. Wyczyszczenie pamięci podręcznej planu powoduje ponowne skompilowanie wszystkich kolejnych planów wykonywania i może spowodować nagłe, tymczasowe obniżenie wydajności zapytań. Począwszy od programu SQL Server 2005 (9.x) z dodatkiem Service Pack 2, dla każdego wyczyszczonego magazynu pamięci podręcznej w pamięci podręcznej planu dziennik błędów programu SQL Server zawiera następujący komunikat informacyjny: 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
. Ten komunikat jest rejestrowany co pięć minut, o ile pamięć podręczna jest opróżniona w tym przedziale czasu.
Ustawienie AUTO_CLOSE może być przydatną funkcją w niektórych rzadkich sytuacjach, na przykład w wystąpieniu programu SQL Server bez wystarczającej ilości pamięci do działania z dużą liczbą baz danych lub dla starszego 32-bitowego wystąpienia programu SQL Server z dużą liczbą baz danych. W takich scenariuszach warto włączyć AUTO_CLOSE i zachować zasoby pamięci wymagane do otwierania bazy danych, gdy nie ma aplikacji korzystającej z bazy danych. Po otwarciu bazy danych wymagane są pewne domyślne alokacje pamięci (na przykład struktury wewnętrzne reprezentujące różne obiekty metadanych bazy danych i dziennika transakcji).
AUTO_CREATE_STATISTICS { ON | WYŁ. }
ON
Optymalizator zapytań tworzy statystyki dotyczące pojedynczych kolumn w predykatach zapytań, w razie potrzeby, aby poprawić plany zapytań i wydajność zapytań. Te statystyki jednokolumna są tworzone podczas kompilowania zapytań przez optymalizator zapytań. Statystyki z jedną kolumną są tworzone tylko w kolumnach, które nie są jeszcze pierwszą kolumną istniejącego obiektu statystyk.
Ustawienie domyślne to WŁĄCZONE. Zalecamy użycie domyślnego ustawienia dla większości baz danych.
OFF
Optymalizator zapytań nie tworzy statystyk dotyczących pojedynczych kolumn w predykatach zapytań podczas kompilowania zapytań. Ustawienie tej opcji na wartość OFF może spowodować nieoptymalne plany zapytań i obniżoną wydajność zapytań.
You can determine this option's status by examining the is_auto_create_stats_on
column in the sys.databases catalog view. You can also determine the status by examining the IsAutoCreateStatistics
property of the DATABASEPROPERTYEX function.
For more information, see the section "Using the Database-wide statistics options" in Statistics.
INCREMENTAL = ON | OD
Applies to: SQL Server (Starting with SQL Server 2014 (12.x)) and Azure SQL Database
Ustaw wartość AUTO_CREATE_STATISTICS na WŁ., a następnie ustaw wartość INCREMENTAL na WŁ. Spowoduje to automatyczne utworzenie statystyk jako przyrostowych zawsze, gdy są obsługiwane statystyki przyrostowe. Wartość domyślna to OFF. For more information, see CREATE STATISTICS.
AUTO_SHRINK { ON | WYŁ. }
ON
Pliki bazy danych są kandydatami do okresowego zmniejszania. Jeśli nie masz określonego wymagania, nie należy ustawiać opcji AUTO_SHRINK bazy danych na WŁ. Aby uzyskać więcej informacji, zobacz Zmniejszanie bazy danych.
Zarówno pliki danych, jak i pliki dziennika mogą być automatycznie zmniejszane. AUTO_SHRINK zmniejsza rozmiar dziennika transakcji tylko w przypadku ustawienia bazy danych na model odzyskiwania SIMPLE lub kopii zapasowej dziennika. Po ustawieniu AUTO_SHRINK na wartość OFF pliki bazy danych nie są automatycznie zmniejszane podczas okresowych testów dla nieużywanego miejsca.
Opcja AUTO_SHRINK zmniejsza pliki, gdy ponad 25 procent pliku zawiera nieużywane miejsce. Zmniejsza on plik do jednego z dwóch rozmiarów (w zależności od tego, co jest większe):
- Rozmiar, w którym 25 procent pliku jest nieużywane miejsce
- Rozmiar pliku podczas jego tworzenia
Nie można zmniejszyć bazy danych tylko do odczytu.
OFF
Pliki bazy danych nie są automatycznie zmniejszane podczas okresowych testów dla nieużywanego miejsca.
You can determine this option's status by examining the is_auto_shrink_on
column in the sys.databases catalog view. You can also determine the status by examining the IsAutoShrink
property of the DATABASEPROPERTYEX function.
Note
Opcja AUTO_SHRINK nie jest dostępna w zawartej bazie danych.
AUTO_UPDATE_STATISTICS { ON | WYŁ. }
ON
Określa, że optymalizator zapytań aktualizuje statystyki, gdy są używane przez zapytanie i kiedy mogą być nieaktualne. Statystyki stają się nieaktualne po wstawieniu, aktualizacji, usunięciu lub scalaniu operacji zmiany rozkładu danych w tabeli lub widoku indeksowanym. Optymalizator zapytań określa, kiedy statystyki mogą być nieaktualne, zliczając liczbę modyfikacji danych od ostatniej aktualizacji statystyk i porównując liczbę modyfikacji do progu. Próg jest oparty na liczbie wierszy w tabeli lub w widoku indeksowanym.
Optymalizator zapytań sprawdza nieaktualne statystyki przed skompilowanie zapytania i uruchomienie buforowanego planu zapytania. Optymalizator zapytań używa kolumn, tabel i indeksowanych widoków w predykacie zapytania, aby określić, które statystyki mogą być nieaktualne. Optymalizator zapytań określa te informacje przed skompilowanie zapytania. Przed uruchomieniem buforowanego planu zapytania aparat bazy danych sprawdza, czy plan zapytania odwołuje się up-to-date statistics.
Opcja AUTO_UPDATE_STATISTICS dotyczy statystyk utworzonych dla indeksów, pojedynczych kolumn w predykatach zapytań i statystyk tworzonych przy użyciu instrukcji CREATE STATISTICS. Ta opcja dotyczy również przefiltrowanych statystyk.
Wartość domyślna to WŁĄCZONE. Zalecamy użycie domyślnego ustawienia dla większości baz danych.
Użyj opcji AUTO_UPDATE_STATISTICS_ASYNC, aby określić, czy statystyki są aktualizowane synchronicznie, czy asynchronicznie.
OFF
Określa, że optymalizator zapytań nie aktualizuje statystyk podczas ich użycia przez zapytanie. Optymalizator zapytań nie aktualizuje również statystyk, gdy mogą być nieaktualne. Ustawienie tej opcji na wartość OFF może spowodować nieoptymalne plany zapytań i obniżoną wydajność zapytań.
You can determine this option's status by examining the is_auto_update_stats_on
column in the sys.databases catalog view. You can also determine the status by examining the IsAutoUpdateStatistics
property of the DATABASEPROPERTYEX function.
For more information, see the section "Using the Database-wide statistics options" in Statistics.
AUTO_UPDATE_STATISTICS_ASYNC { ON | WYŁ. }
ON
Określa, że aktualizacje statystyk dla opcji AUTO_UPDATE_STATISTICS są asynchroniczne. Optymalizator zapytań nie czeka na ukończenie aktualizacji statystyk przed skompilowanie zapytań.
Ustawienie tej opcji na WARTOŚĆ WŁĄCZONE nie ma wpływu, chyba że AUTO_UPDATE_STATISTICS jest ustawiona na WARTOŚĆ WŁĄCZONE.
Domyślnie opcja AUTO_UPDATE_STATISTICS_ASYNC jest wyłączona, a optymalizator zapytań aktualizuje statystyki synchronicznie.
OFF
Określa, że aktualizacje statystyk dla opcji AUTO_UPDATE_STATISTICS są synchroniczne. Optymalizator zapytań czeka na ukończenie aktualizacji statystyk przed skompilowanie zapytań.
Note
Ustawienie tej opcji na WYŁ. nie ma wpływu, chyba że AUTO_UPDATE_STATISTICS jest ustawiona na WARTOŚĆ WŁĄCZONE.
You can determine this option's status by examining the is_auto_update_stats_async_on
column in the sys.databases catalog view.
For more information that describes when to use synchronous or asynchronous statistics updates, see the "Statistics options" section in Statistics.
< > automatic_tuning_option ::=
Applies to: SQL Server (Starting with SQL Server 2017 (14.x))
Enables or disables FORCE_LAST_GOOD_PLAN
Automatic tuning option. Stan tej opcji można wyświetlić w widoku sys.database_automatic_tuning_options
.
FORCE_LAST_GOOD_PLAN = { DEFAULT | WŁ. | WYŁ. }
DEFAULT
Wartość domyślna dla programu SQL Server to WYŁĄCZONE.
ON
Aparat bazy danych automatycznie wymusza ostatni znany dobry plan na Transact-SQL zapytaniach, w których nowy plan zapytania powoduje regresję wydajności. Aparat bazy danych stale monitoruje wydajność zapytań Transact-SQL zapytania przy użyciu wymuszonego planu.
Jeśli wystąpi wzrost wydajności, aparat bazy danych nadal korzysta z ostatniego znanego dobrego planu. Jeśli nie zostanie wykryty wzrost wydajności, aparat bazy danych utworzy nowy plan zapytania. The statement fails if the Query Store isn't enabled or if the Query Store isn't in Read-Write mode.
OFF
The Database Engine reports potential query performance regressions caused by query plan changes in sys.dm_db_tuning_recommendations view. Jednak te zalecenia nie są stosowane automatycznie. Użytkownicy mogą monitorować aktywne zalecenia i rozwiązywać zidentyfikowane problemy, stosując Transact-SQL skrypty wyświetlane w widoku. Wartość domyślna to OFF.
< > change_tracking_option ::=
Applies to: SQL Server and Azure SQL Database
Steruje opcjami śledzenia zmian. Możesz włączyć śledzenie zmian, ustawić opcje, opcje zmiany i wyłączyć śledzenie zmian. For examples, see the Examples section later in this article.
ON
Włącza śledzenie zmian dla bazy danych. Po włączeniu śledzenia zmian można również ustawić opcje AUTOMATYCZNEGO OCZYSZCZANIA i PRZECHOWYWANIA ZMIAN.
AUTO_CLEANUP = { ON | WYŁ. }
ON
Informacje o śledzeniu zmian są automatycznie usuwane po określonym okresie przechowywania.
OFF
Dane śledzenia zmian nie są automatycznie usuwane z bazy danych.
CHANGE_RETENTION = retention_period { DAYS | HOURS | MINUTES }
Określa minimalny okres przechowywania informacji o śledzeniu zmian w bazie danych. Dane są usuwane tylko wtedy, gdy wartość AUTO_CLEANUP jest włączona.
retention_period is an integer that specifies the numerical component of the retention period.
The default retention period is 2 days. Minimalny okres przechowywania wynosi 1 minutę. The default retention type is DAYS.
WYŁĄCZONE Wyłącza śledzenie zmian dla bazy danych. Wyłącz śledzenie zmian we wszystkich tabelach przed wyłączeniem śledzenia zmian w bazie danych.
< > containment_option ::=
Applies to: SQL Server (Starting with SQL Server 2012 (11.x))
Steruje opcjami zawierania bazy danych.
ZAWIERANIE = { NONE | CZĘŚCIOWE}
NONE
Baza danych nie jest zawartą bazą danych.
PARTIAL
Baza danych jest zawartą bazą danych. Ustawianie ograniczenia bazy danych na częściowe niepowodzenie, jeśli baza danych ma włączoną replikację, przechwytywanie zmian danych lub śledzenie zmian. Sprawdzanie błędów zatrzymuje się po jednym błędzie. For more information about contained databases, see Contained Databases.
< > cursor_option ::=
Steruje opcjami kursora.
CURSOR_CLOSE_ON_COMMIT { ON | WYŁ. }
ON
Wszystkie kursory otwierane po zatwierdzeniu lub wycofaniu transakcji zostaną zamknięte.
OFF
Kursory pozostają otwarte po zatwierdzeniu transakcji; wycofywanie transakcji zamyka wszystkie kursory, z wyjątkiem tych kursorów zdefiniowanych jako INSENSITIVE lub STATIC.
Ustawienia na poziomie połączenia ustawione przy użyciu instrukcji SET zastępują domyślne ustawienie bazy danych dla CURSOR_CLOSE_ON_COMMIT. Klienci ODBC i OLE DB domyślnie wystawiają ustawienie instrukcji SET na poziomie połączenia CURSOR_CLOSE_ON_COMMIT wyłączone dla sesji. Klienci uruchamiają instrukcję podczas nawiązywania połączenia z wystąpieniem programu SQL Server. For more information, see SET CURSOR_CLOSE_ON_COMMIT.
You can determine this option's status by examining the is_cursor_close_on_commit_on
column in the sys.databases catalog view or the IsCloseCursorsOnCommitEnabled
property of the DATABASEPROPERTYEX function.
CURSOR_DEFAULT { LOCAL | GLOBAL }
Applies to: SQL Server
Określa, czy zakres kursora używa funkcji LOCAL, czy GLOBAL.
LOCAL
Jeśli określisz wartość LOCAL i nie zdefiniujesz kursora jako globalnego podczas tworzenia kursora, zakres kursora jest lokalny. W szczególności zakres jest lokalny dla partii, procedury składowanej lub wyzwalacza, w którym utworzono kursor. Nazwa kursora jest prawidłowa tylko w tym zakresie.
Kursor można odwoływać się do zmiennych lokalnych kursora w partii, procedurze składowanej lub wyzwalaczu albo parametru OUTPUT procedury składowanej. Kursor jest niejawnie cofnięty, gdy kończy się partia, procedura składowana lub wyzwalacz. Kursor jest cofany, chyba że został przekazany z powrotem w parametrze OUTPUT. Kursor może zostać przekazany z powrotem w parametrze OUTPUT. Jeśli kursor przechodzi z powrotem w ten sposób, kursor zostanie cofnięty, gdy ostatnia zmienna odwołująca się do kursora zostanie cofnięto przydział lub przekroczy zakres.
GLOBAL
Gdy parametr GLOBAL jest określony, a kursor nie jest zdefiniowany jako LOKALNY podczas tworzenia, zakres kursora jest globalny dla połączenia. Nazwa kursora może być przywołyowana w dowolnej procedurze składowanej lub partii wykonywanej przez połączenie.
Kursor jest niejawnie cofnięty tylko po rozłączeniu. For more information, see DECLARE CURSOR.
You can determine this option's status by examining the is_local_cursor_default
column in the sys.databases catalog view. You can also determine the status by examining the IsLocalCursorsDefault
property of the DATABASEPROPERTYEX function.
< > temporal_history_retention ::=
TEMPORAL_HISTORY_RETENTION { ON | WYŁ. }
Domyślnie włączone, ale także automatycznie ustaw wartość OFF po operacji przywracania do punktu w czasie. Aby uzyskać więcej informacji, w tym sposób włączania tego ustawienia, zobacz Jak skonfigurować zasady przechowywania.
ON
Default. Włącza zasady przechowywania tabel czasowych. Aby uzyskać więcej informacji, zobacz Zarządzanie przechowywaniem danych historycznych w tabelach czasowych z wersjami systemowymi.
OFF
Nie wykonuj czasowych zasad przechowywania historycznego.
< > data_retention_policy ::=
Applies to: Azure SQL Edge only.
DATA_RETENTION { ON | WYŁ. }
ON
Włącza czyszczenie zasad przechowywania danych na podstawie bazy danych.
OFF
Wyłącza czyszczenie zasad przechowywania danych na podstawie bazy danych.
<database_mirroring>
Applies to: SQL Server
Aby uzyskać opisy argumentów, zobacz ALTER DATABASE Database Mirroring.
< > date_correlation_optimization_option ::=
Applies to: SQL Server
Steruje opcją date_correlation_optimization.
DATE_CORRELATION_OPTIMIZATION { ON | WYŁ. }
ON
SQL Server maintains correlation statistics where a FOREIGN KEY constraint links any two tables in the database and the tables have datetime columns.
OFF
Statystyki korelacji nie są zachowywane.
Aby ustawić DATE_CORRELATION_OPTIMIZATION na WŁ., nie musi istnieć żadne aktywne połączenia z bazą danych, z wyjątkiem połączenia, które wykonuje instrukcję ALTER DATABASE. Następnie obsługiwanych jest wiele połączeń.
The current setting of this option can be determined by examining the is_date_correlation_on
column in the sys.databases catalog view.
< > db_encryption_option ::=
Steruje stanem szyfrowania bazy danych.
SZYFROWANIE { WŁĄCZONE | OFF | WSTRZYMAJ | WZNÓW }
ON
Ustawia bazę danych do szyfrowania.
OFF
Ustawia bazę danych na nieszyfrowaną.
SUSPEND
Applies to: SQL Server (Starting with SQL Server 2019 (15.x))
Może służyć do wstrzymania skanowania szyfrowania po włączeniu lub wyłączeniu przezroczystego szyfrowania danych lub po zmianie klucza szyfrowania.
RESUME
Applies to: SQL Server (Starting with SQL Server 2019 (15.x))
Może służyć do wznowienia wcześniej wstrzymanego skanowania szyfrowania.
Aby uzyskać więcej informacji na temat szyfrowania bazy danych, zobacz transparent data encryption (TDE)i Transparent Data Encryption for Azure SQL Database, Azure SQL Managed Instance i Azure Synapse Analytics.
Po włączeniu szyfrowania na poziomie bazy danych wszystkie grupy plików są szyfrowane. Wszystkie nowe grupy plików dziedziczą zaszyfrowaną właściwość. Jeśli jakiekolwiek grupy plików w bazie danych są ustawione na WARTOŚĆ TYLKO DO ODCZYTU, operacja szyfrowania bazy danych zakończy się niepowodzeniem.
You can see the encryption state of the database and the state of the encryption scan by using the sys.dm_database_encryption_keys dynamic management view.
< > db_state_option ::=
Applies to: SQL Server
Steruje stanem bazy danych.
OFFLINE
Baza danych jest zamknięta, czysta i oznaczona jako offline. Nie można zmodyfikować bazy danych, gdy jest ona w trybie offline.
ONLINE
Baza danych jest otwarta i dostępna do użycia.
EMERGENCY
Baza danych jest oznaczona READ_ONLY, rejestrowanie jest wyłączone, a dostęp jest ograniczony do członków stałej roli serwera sysadmin. Usługa EMERGENCY jest używana głównie do celów rozwiązywania problemów. Na przykład baza danych oznaczona jako podejrzana z powodu uszkodzonego pliku dziennika może być ustawiona na stan AWARYJNY. To ustawienie może umożliwić administratorowi systemu dostęp tylko do odczytu do bazy danych. Tylko członkowie stałej roli serwera sysadmin mogą ustawić bazę danych na stan AWARYJNY.
Wymaga uprawnienia ALTER DATABASE
dla jednostki bazy danych, zmiany bazy danych w trybie offline lub stanu awaryjnego, a poziom serwera ALTER ANY DATABASE
uprawnienia do przenoszenia bazy danych z trybu offline do trybu online.
You can determine this option's status by examining the state
and state_desc
columns in the sys.databases catalog view. You can also determine the status by examining the Status
property of the DATABASEPROPERTYEX function. For more information, see Database States.
Baza danych oznaczona jako PRZYWRACANIE nie może być ustawiona na WARTOŚĆ OFFLINE, ONLINE lub EMERGENCY. Baza danych może być w stanie PRZYWRACANIE podczas aktywnej operacji przywracania lub gdy operacja przywracania bazy danych lub pliku dziennika kończy się niepowodzeniem z powodu uszkodzonego pliku kopii zapasowej.
< > db_update_option ::=
Określa, czy aktualizacje są dozwolone w bazie danych.
READ_ONLY
Użytkownicy mogą odczytywać dane z bazy danych, ale nie modyfikować ich.
Note
Aby zwiększyć wydajność zapytań, zaktualizuj statystyki przed ustawieniem bazy danych na READ_ONLY. Jeśli dodatkowe statystyki są potrzebne po ustawieniu bazy danych na READ_ONLY, aparat bazy danych tworzy statystyki w
tempdb
systemowej bazie danych. For more information about statistics for a read-only database, see Statistics.READ_WRITE
Baza danych jest dostępna dla operacji odczytu i zapisu.
Aby zmienić ten stan, musisz mieć wyłączny dostęp do bazy danych. Aby uzyskać więcej informacji, zobacz klauzulę SINGLE_USER.
Note
W federacyjnych bazach danych usługi Azure SQL Database SET { READ_ONLY | READ_WRITE }
jest wyłączona.
< > db_user_access_option ::=
Kontroluje dostęp użytkownika do bazy danych.
SINGLE_USER
Applies to: SQL Server
Określa, że tylko jeden użytkownik naraz może uzyskać dostęp do bazy danych. Jeśli określisz SINGLE_USER, a inny użytkownik łączy się z bazą danych, instrukcja ALTER DATABASE zostanie zablokowana, dopóki wszyscy użytkownicy nie odłączą się od określonej bazy danych. Aby zastąpić to zachowanie, zobacz klauzulę WITH <zakończenie>.
Baza danych pozostaje w trybie SINGLE_USER, nawet jeśli użytkownik, który ustawił opcję, wy wylogował się. W tym momencie inny użytkownik, ale tylko jeden, może nawiązać połączenie z bazą danych.
Przed ustawieniem bazy danych na wartość SINGLE_USER sprawdź, czy opcja AUTO_UPDATE_STATISTICS_ASYNC jest ustawiona na WARTOŚĆ WYŁĄCZONE. Po ustawieniu opcji WŁĄCZONE wątek w tle używany do aktualizowania statystyk pobiera połączenie z bazą danych i nie można uzyskać dostępu do bazy danych w trybie pojedynczego użytkownika. To view the status of this option, query the is_auto_update_stats_async_on
column in the sys.databases catalog view. Jeśli opcja jest ustawiona na WŁ., wykonaj następujące zadania:
Ustaw wartość AUTO_UPDATE_STATISTICS_ASYNC na WYŁ.
Check for active asynchronous statistics jobs by querying the sys.dm_exec_background_job_queue dynamic management view.
Jeśli istnieją aktywne zadania, zezwól na ukończenie zadań lub ręczne zakończenie ich przy użyciu KILL STATS JOB.
RESTRICTED_USER
Umożliwia łączenie się z bazą danych tylko członkom stałej roli bazy danych db_owner
i dbcreator
oraz sysadmin
stałych ról serwera. RESTRICTED_USER nie ogranicza ich liczby. Rozłącz wszystkie połączenia z bazą danych przy użyciu przedziału czasu określonego przez klauzulę zakończenia instrukcji ALTER DATABASE. Po przejściu bazy danych do stanu RESTRICTED_USER próby nawiązania połączenia przez niekwalifikowanych użytkowników zostaną odrzucone.
MULTI_USER
Wszyscy użytkownicy, którzy mają odpowiednie uprawnienia do nawiązywania połączenia z bazą danych, są dozwolone. You can determine this option's status by examining the user_access
column in the sys.databases catalog view. You can also determine the status by examining the UserAccess
property of the DATABASEPROPERTYEX function.
< > delayed_durability_option ::=
Applies to: SQL Server (Starting with SQL Server 2014 (12.x))
Określa, czy transakcje zatwierdzają w pełni trwałe, czy opóźnione.
DISABLED
Wszystkie transakcje po
SET DISABLED
są w pełni trwałe. Wszelkie opcje trwałości ustawione w niepodzielnej instrukcji bloku lub zatwierdzenia są ignorowane.ALLOWED
Wszystkie transakcje po
SET ALLOWED
są w pełni trwałe lub opóźnione, w zależności od opcji trwałości ustawionej w instrukcji bloku atomowego lub zatwierdzenia.FORCED
Wszystkie transakcje po
SET FORCED
są opóźnione. Wszelkie opcje trwałości ustawione w niepodzielnej instrukcji bloku lub zatwierdzenia są ignorowane.
< > external_access_option ::=
Applies to: SQL Server
Określa, czy baza danych może być uzyskiwana przez zasoby zewnętrzne, takie jak obiekty z innej bazy danych.
DB_CHAINING { ON | WYŁ. }
ON
Baza danych może być źródłem lub elementem docelowym łańcucha własności między bazami danych.
OFF
Baza danych nie może uczestniczyć w łańcuchu własności między bazami danych.
Important
Wystąpienie programu SQL Server rozpoznaje to ustawienie, gdy opcja serwera łańcucha własności między bazami danych wynosi 0 (OFF). Gdy łańcuch własności między bazami danych wynosi 1 (WŁ.), wszystkie bazy danych użytkowników mogą uczestniczyć w łańcuchach własności między bazami danych, niezależnie od wartości tej opcji. This option is set by using sp_configure.
Aby ustawić tę opcję, wymaga CONTROL SERVER
uprawnienia do bazy danych.
Nie można ustawić opcji DB_CHAINING w systemowych bazach danych master
, model
i tempdb
.
You can determine this option's status by examining the is_db_chaining_on
column in the sys.databases catalog view.
GODNE ZAUFANIA { W DNIU | WYŁ. }
ON
Moduły bazy danych (na przykład funkcje zdefiniowane przez użytkownika lub procedury składowane), które używają kontekstu personifikacji, mogą uzyskiwać dostęp do zasobów spoza bazy danych.
OFF
Moduły bazy danych w kontekście personifikacji nie mogą uzyskiwać dostępu do zasobów spoza bazy danych.
WARTOŚĆ TRUSTWORTHY jest ustawiona na WARTOŚĆ OFF za każdym razem, gdy baza danych jest dołączona.
Domyślnie wszystkie systemowe bazy danych z wyjątkiem bazy danych msdb
mają wartość TRUSTWORTHY ustawioną na WARTOŚĆ OFF. Nie można zmienić wartości dla baz danych model
i tempdb
. Zalecamy, aby dla bazy danych master
nigdy nie ustawić opcji GODNE ZAUFANIA.
Aby ustawić tę opcję, wymaga CONTROL SERVER
uprawnienia do bazy danych.
You can determine this option's status by examining the is_trustworthy_on
column in the sys.databases catalog view.
DEFAULT_FULLTEXT_LANGUAGE
Applies to: SQL Server (Starting with SQL Server 2012 (11.x))
Określa domyślną wartość języka dla kolumn indeksowanych pełnotekstowo.
Important
Ta opcja jest dozwolona tylko wtedy, gdy właściwość CONTAINMENT została ustawiona na WARTOŚĆ PARTIAL. Jeśli właściwość CONTAINMENT jest ustawiona na NONE, występują błędy.
DEFAULT_LANGUAGE
Applies to: SQL Server (Starting with SQL Server 2012 (11.x))
Określa język domyślny dla wszystkich nowo utworzonych identyfikatorów logowania. Język można określić, podając identyfikator lokalny (lcid), nazwę języka lub alias języka. For a list of acceptable language names and aliases, see sys.syslanguages. Ta opcja jest dozwolona tylko wtedy, gdy właściwość CONTAINMENT została ustawiona na WARTOŚĆ PARTIAL. Jeśli właściwość CONTAINMENT jest ustawiona na NONE, występują błędy.
NESTED_TRIGGERS
Applies to: SQL Server (Starting with SQL Server 2012 (11.x))
Określa, czy wyzwalacz AFTER może być kaskadowy; oznacza to, że wykonaj akcję, która inicjuje inny wyzwalacz, który inicjuje inny wyzwalacz itd. Ta opcja jest dozwolona tylko wtedy, gdy właściwość CONTAINMENT została ustawiona na WARTOŚĆ PARTIAL. Jeśli właściwość CONTAINMENT jest ustawiona na NONE, występują błędy.
TRANSFORM_NOISE_WORDS
Applies to: SQL Server (Starting with SQL Server 2012 (11.x))
Służy do pomijania komunikatu o błędzie, jeśli wyrazy szumu lub stopwords, powodują niepowodzenie operacji logicznej w kwerendzie pełnotekstowej. Ta opcja jest dozwolona tylko wtedy, gdy właściwość CONTAINMENT została ustawiona na WARTOŚĆ PARTIAL. Jeśli właściwość CONTAINMENT jest ustawiona na NONE, występują błędy.
TWO_DIGIT_YEAR_CUTOFF
Applies to: SQL Server (Starting with SQL Server 2012 (11.x))
Określa liczbę całkowitą z zakresu od 1753 do 9999, która reprezentuje rok redukcji dla interpretowania dwóch cyfr lat jako czterocyfrowych lat. Ta opcja jest dozwolona tylko wtedy, gdy właściwość CONTAINMENT została ustawiona na WARTOŚĆ PARTIAL. Jeśli właściwość CONTAINMENT jest ustawiona na NONE, występują błędy.
< > FILESTREAM_option ::=
Applies to: SQL Server (Starting with SQL Server 2012 (11.x))
Steruje ustawieniami fileTables.
NON_TRANSACTED_ACCESS = { OFF | READ_ONLY | PEŁNY }
OFF
Dostęp nie transakcyjny do danych FileTable jest wyłączony.
READ_ONLY
Dane FILESTREAM w tabelach FileTable w tej bazie danych mogą być odczytywane przez procesy nie transakcyjne.
FULL
Włącza pełny, nie transakcyjny dostęp do danych FILESTREAM w tabelach FileTables.
DIRECTORY_NAME = <directory_name>
Nazwa katalogu zgodna z systemem Windows. Ta nazwa powinna być unikatowa wśród wszystkich nazw katalogów na poziomie bazy danych w wystąpieniu programu SQL Server. Porównanie unikatowości jest bez uwzględniania wielkości liter, niezależnie od ustawień sortowania. Tę opcję należy ustawić przed utworzeniem tabeli FileTable w tej bazie danych.
< > HADR_options ::=
Applies to: SQL Server
Zobacz ALTER DATABASE SET HADR.
< > mixed_page_allocation_option ::=
Applies to: SQL Server (Starting with SQL Server 2016 (13.x))
Określa, czy baza danych może tworzyć strony początkowe przy użyciu mieszanego zakresu dla pierwszych ośmiu stron tabeli lub indeksu.
MIXED_PAGE_ALLOCATION { OFF | WŁ. }
OFF
Baza danych zawsze tworzy strony początkowe przy użyciu jednolitych zakresów. Off jest wartością domyślną.
ON
Baza danych może tworzyć strony początkowe przy użyciu zakresów mieszanych.
To ustawienie jest zawsze włączone dla wszystkich systemowych baz danych z wyjątkiem tempdb
, gdzie zawsze jest wyłączone. Nie można zmienić ustawienia dla systemowych baz danych.
< > PARAMETERIZATION_option ::=
Steruje opcją parametryzacji. Aby uzyskać więcej informacji na temat parametryzacji, zobacz przewodnik po architekturze przetwarzania zapytań .
PARAMETRYZACJA { SIMPLE | WYMUSZONE }
SIMPLE
Zapytania są sparametryzowane na podstawie domyślnego zachowania bazy danych.
FORCED
Program SQL Server sparametryzuje wszystkie zapytania w bazie danych.
The current setting of this option can be determined by examining the is_parameterization_forced
column in the sys.databases catalog view.
< > query_store_options ::=
Applies to: SQL Server (Starting with SQL Server 2016 (13.x))
WŁ. | OFF [ ( WYMUSZONE ) ] | CLEAR [ WSZYSTKO ]
Określa, czy magazyn zapytań jest włączony w tej bazie danych, a także kontroluje usuwanie zawartości magazynu zapytań. Aby uzyskać więcej informacji, zobacz Query Store Usage Scenarios.
ON
Włącza magazyn zapytań.
Wiele nowych funkcji wydajności programu SQL Server 2022 (16.x), takich jak wskazówki dotyczące magazynu zapytań, opinie CE, stopień równoległości (DOP) i trwałość udzielania pamięci (MGF) wymaga włączenia magazynu zapytań. W przypadku baz danych, które zostały przywrócone z innych wystąpień programu SQL Server i dla baz danych uaktualnionych z uaktualnienia w miejscu do programu SQL Server 2022 (16.x), te bazy danych zachowują poprzednie ustawienia magazynu zapytań. Jeśli istnieją obawy dotyczące narzutu magazynu zapytań, administratorzy mogą korzystać z niestandardowych zasad przechwytywania za pomocą
QUERY_CAPTURE_MODE = CUSTOM
. For examples of how to enable the Query Store with custom capture policy options, see the Examples section later in this article.OFF [ ( WYMUSZONE ) ]
Wyłącza magazyn zapytań. WYMUSZONE jest opcjonalne. Wymuszone przerwanie wszystkich uruchomionych zadań w tle magazynu zapytań i pomija synchroniczne opróżnianie po wyłączeniu magazynu zapytań. Powoduje, że magazyn zapytań zostanie zamknięty tak szybko, jak to możliwe. WYMUSZONE dotyczy programu SQL Server 2016 (13.x) SP2 CU14, SQL Server 2017 (14.x) CU21, SQL Server 2019 (15.x) CU6 i nowszych kompilacji.
Note
Nie można wyłączyć magazynu zapytań w usłudze Azure SQL Database. Wykonanie
ALTER DATABASE [database] SET QUERY_STORE = OFF
zwraca ostrzeżenie'QUERY_STORE=OFF' is not supported in this version of SQL Server.
.CLEAR [ WSZYSTKO ]
Usuwa dane związane z zapytaniami z magazynu zapytań. WSZYSTKO jest opcjonalne. WSZYSTKIE usuwa dane i metadane związane z zapytaniami z magazynu zapytań.
OPERATION_MODE { READ_ONLY | READ_WRITE }
Opisuje tryb działania magazynu zapytań.
READ_WRITE
Magazyn zapytań zbiera i utrwala informacje o statystykach wykonywania i planu zapytań.
READ_ONLY
Informacje można odczytywać z magazynu zapytań, ale nie są dodawane nowe informacje. Jeśli wyczerpano maksymalną ilość wydanego miejsca magazynu zapytań, magazyn zapytań zmieni tryb działania na READ_ONLY.
CLEANUP_POLICY
Opisuje zasady przechowywania danych magazynu zapytań. STALE_QUERY_THRESHOLD_DAYS określa liczbę dni, dla których informacje dotyczące zapytania są przechowywane w magazynie zapytań. STALE_QUERY_THRESHOLD_DAYS is type bigint. Wartość domyślna to 30.
DATA_FLUSH_INTERVAL_SECONDS
Określa częstotliwość, z jaką dane zapisywane w magazynie zapytań są utrwalane na dysku. Aby zoptymalizować wydajność, dane zebrane przez magazyn zapytań są asynchronicznie zapisywane na dysku. Częstotliwość, z jaką odbywa się ten transfer asynchroniczny, jest konfigurowana przy użyciu argumentu DATA_FLUSH_INTERVAL_SECONDS. DATA_FLUSH_INTERVAL_SECONDS is type bigint. The default value is 900 (15 min).
MAX_STORAGE_SIZE_MB
Określa miejsce wystawione dla magazynu zapytań. MAX_STORAGE_SIZE_MB is type bigint. The default value is 100 MB for SQL Server (SQL Server 2016 (13.x) through SQL Server 2017 (14.x)). Starting with SQL Server 2019 (15.x), the default value is 1000 MB.
MAX_STORAGE_SIZE_MB
limit nie jest ściśle wymuszany. Rozmiar magazynu jest sprawdzany tylko wtedy, gdy magazyn zapytań zapisuje dane na dysku. Ten interwał jest ustawiany przez opcję DATA_FLUSH_INTERVAL_SECONDS
lub opcję okna dialogowego Magazyn zapytań programu Management Studio Interwał opróżniania danych. Wartość domyślna interwału to 900 sekund (lub 15 minut).
Jeśli magazyn zapytań naruszył limit MAX_STORAGE_SIZE_MB
między sprawdzaniem rozmiaru magazynu, przechodzi do trybu tylko do odczytu. Jeśli SIZE_BASED_CLEANUP_MODE
jest włączona, zostanie również wyzwolony mechanizm oczyszczania w celu wymuszenia limitu MAX_STORAGE_SIZE_MB
.
Po wyczyszczonej ilości miejsca tryb magazynu zapytań automatycznie przełącza się z powrotem do odczytu i zapisu.
Important
If you think that your workload capture needs more than 10 GB of disk space, you should probably rethink and optimize your workload to reuse query plans (for example using forced parameterization, or adjust the Query Store configurations.
Począwszy od programu SQL Server 2019 (15.x) i usługi Azure SQL Database, można ustawić QUERY_CAPTURE_MODE
na WARTOŚĆ CUSTOM, aby uzyskać dodatkową kontrolę nad zasadami przechwytywania zapytań.
INTERVAL_LENGTH_MINUTES
Określa interwał czasu, w którym dane statystyk wykonywania środowiska uruchomieniowego są agregowane do magazynu zapytań. Aby zoptymalizować użycie miejsca, statystyki wykonywania środowiska uruchomieniowego w magazynie statystyk środowiska uruchomieniowego są agregowane w stałym przedziale czasu. To stałe okno czasowe jest konfigurowane przy użyciu argumentu INTERVAL_LENGTH_MINUTES. INTERVAL_LENGTH_MINUTES is type bigint. The default value is 60.
SIZE_BASED_CLEANUP_MODE { AUTO | WYŁ. }
Określa, czy oczyszczanie jest automatycznie aktywowane, gdy łączna ilość danych zbliża się do maksymalnego rozmiaru.
AUTO
Size-based cleanup is automatically activated when size on disk reaches 90% of MAX_STORAGE_SIZE_MB. Oczyszczanie oparte na rozmiarach usuwa najpierw najmniej kosztowne i najstarsze zapytania. It stops at approximately 80% of MAX_STORAGE_SIZE_MB. Ta wartość jest wartością domyślną konfiguracji.
OFF
Czyszczenie oparte na rozmiarach nie jest automatycznie aktywowane.
SIZE_BASED_CLEANUP_MODE is type nvarchar.
QUERY_CAPTURE_MODE { ALL | AUTO | NIESTANDARDOWE | BRAK }
Wyznacza aktualnie aktywny tryb przechwytywania zapytań. Każdy tryb definiuje określone zasady przechwytywania zapytań. QUERY_CAPTURE_MODE is type nvarchar.
Note
Kursory, zapytania wewnątrz procedur składowanych i natywnie skompilowane zapytania są zawsze przechwytywane, gdy tryb przechwytywania zapytania jest ustawiony na WSZYSTKIE, AUTOMATYCZNE lub NIESTANDARDOWE.
ALL
Przechwytuje wszystkie zapytania. ALL is the default configuration value for SQL Server (SQL Server 2016 (13.x) through SQL Server 2017 (14.x)).
AUTO
Przechwyć odpowiednie zapytania na podstawie liczby wykonań i użycia zasobów. Jest to domyślna wartość konfiguracji programu SQL Server (począwszy od programu SQL Server 2019 (15.x)) i usługi Azure SQL Database.
NONE
Zatrzymaj przechwytywanie nowych zapytań. Magazyn zapytań nadal zbiera statystyki kompilacji i środowiska uruchomieniowego dla zapytań, które zostały już przechwycone. Użyj tej konfiguracji z ostrożnością, ponieważ możesz przegapić przechwytywanie ważnych zapytań.
CUSTOM
Applies to: SQL Server (Starting with SQL Server 2019 (15.x))
Allows control over the QUERY_CAPTURE_POLICY options. Niestandardowe zasady przechwytywania mogą ułatwić magazynowi zapytań przechwytywanie najważniejszych zapytań w obciążeniu. Zobacz <query_capture_policy_option_list>, aby uzyskać opcje dostosowywalne.
MAX_PLANS_PER_QUERY
Definiuje maksymalną liczbę planów obsługiwanych dla każdego zapytania. MAX_PLANS_PER_QUERY is type int. The default value is 200.
WAIT_STATS_CAPTURE_MODE { ON | WYŁ. }
Applies to: SQL Server (Starting with SQL Server 2017 (14.x)))
Określa, czy statystyki oczekiwania są przechwytywane na zapytanie.
ON
Przechwytywane są informacje statystyczne dotyczące oczekiwania na zapytanie. Ta wartość jest wartością domyślną konfiguracji.
OFF
Informacje o statystykach oczekiwania na zapytanie nie są przechwytywane.
< > query_capture_policy_option_list :: =
Applies to: SQL Server (Starting with SQL Server 2019 (15.x))
Controls the Query Store capture policy options. Z wyjątkiem STALE_CAPTURE_POLICY_THRESHOLD te opcje definiują warunki OR, które muszą wystąpić, aby zapytania były przechwytywane w zdefiniowanej wartości progu nieodświeżania zasad przechwytywania.
Począwszy od programu SQL Server 2019 (15.x), ustawienie QUERY_CAPTURE_MODE = AUTO
przechwytuje szczegóły magazynu zapytań, gdy zostanie osiągnięty dowolny z następujących progów:
- EXECUTION_COUNT = 30 wykonań = liczba wykonań
- TOTAL_COMPILE_CPU_TIME_MS = 1 sekunda = czas kompilacji w milisekundach
- TOTAL_EXECUTION_CPU_TIME_MS = 100 ms = czas wykonywania procesora CPU w milisekundach
For example:
EXECUTION_COUNT = 30,
TOTAL_COMPILE_CPU_TIME_MS = 1000,
TOTAL_EXECUTION_CPU_TIME_MS = 100
Te opcje można dostosować za pomocą QUERY_CAPTURE_MODE = CUSTOM
:
STALE_CAPTURE_POLICY_THRESHOLD = integer { DAYS | HOURS }
Definiuje okres interwału oceny, aby określić, czy zapytanie powinno zostać przechwycone. Wartość domyślna to 1 dzień i można ją ustawić z zakresu od 1 godziny do siedmiu dni.
EXECUTION_COUNT = integer
Definiuje liczbę wykonań zapytania w okresie oceny. Wartość domyślna to 30, co oznacza, że dla domyślnego progu zasad przechwytywania nieaktualnego zapytanie musi wykonać co najmniej 30 razy w ciągu jednego dnia, aby utrwało się w magazynie zapytań. EXECUTION_COUNT is type int.
TOTAL_COMPILE_CPU_TIME_MS = integer
Definiuje łączny czas kompilacji, który upłynął, używany przez zapytanie w okresie oceny. Wartość domyślna to 1000, co oznacza, że dla domyślnego progu zasad przechwytywania nieaktualnego zapytanie musi mieć łącznie co najmniej jedną sekundę czasu procesora CPU spędzonego podczas kompilacji zapytania w ciągu jednego dnia, aby utrwało się w magazynie zapytań. TOTAL_COMPILE_CPU_TIME_MS is type int.
TOTAL_EXECUTION_CPU_TIME_MS = integer
Definiuje całkowity czas wykonywania, który upłynął, używany przez zapytanie w okresie oceny. Wartość domyślna to 100, co oznacza, że dla domyślnego progu zasad przechwytywania nieaktualnego zapytanie musi mieć łącznie co najmniej 100 ms czasu procesora CPU spędzonego podczas wykonywania w ciągu jednego dnia, aby utrwało się w magazynie zapytań. TOTAL_EXECUTION_CPU_TIME_MS is type int.
< > recovery_option ::=
Applies to: SQL Server
Steruje opcjami odzyskiwania bazy danych i sprawdzaniem błędów we/wy dysku.
FULL
Zapewnia pełne odzyskiwanie po awarii nośnika przy użyciu kopii zapasowych dziennika transakcji. Jeśli plik danych jest uszkodzony, odzyskiwanie multimediów może przywrócić wszystkie zatwierdzone transakcje. For more information, see Recovery models.
BULK_LOGGED
Zapewnia odzyskiwanie po awarii nośnika. Łączy najlepszą wydajność i najmniejszą ilość miejsca w dzienniku na potrzeby niektórych operacji na dużą skalę lub zbiorczo. Aby uzyskać informacje o tym, jakie operacje można rejestrować minimalnie, zobacz Dziennik transakcji. W ramach modelu odzyskiwania BULK_LOGGED rejestrowanie tych operacji jest minimalne. For more information, see Recovery models.
SIMPLE
Dostępna jest prosta strategia tworzenia kopii zapasowych, która używa minimalnej ilości miejsca w dzienniku. Obszar dziennika może być automatycznie używany ponownie, gdy nie jest już wymagany do odzyskiwania po awarii serwera. For more information, see Recovery models.
Important
Prosty model odzyskiwania jest łatwiejszy do zarządzania niż pozostałe dwa modele, ale kosztem większej ekspozycji na utratę danych, jeśli plik danych jest uszkodzony. Wszystkie zmiany od czasu utraty najnowszej kopii zapasowej bazy danych lub różnicowej bazy danych i muszą zostać ręcznie ponownie wprowadzone.
Domyślny model odzyskiwania jest określany przez model odzyskiwania bazy danych systemu model
. For more information about selecting the appropriate recovery model, see Recovery models.
You can determine this option's status by examining the recovery_model
and recovery_model_desc
columns in the sys.databases catalog view. You can also determine the status by examining the Recovery
property of the DATABASEPROPERTYEX function.
TORN_PAGE_DETECTION { ON | WYŁ. }
ON
Niekompletne strony można wykryć przez aparat bazy danych.
OFF
Niekompletne strony nie mogą być wykrywane przez aparat bazy danych.
Important
Struktura składni TORN_PAGE_DETECTION ON | Wyłączenie zostanie usunięte w przyszłej wersji programu SQL Server. Unikaj używania tej struktury składni w nowych pracach programistycznych i zaplanuj modyfikowanie aplikacji, które obecnie używają struktury składni. Zamiast tego użyj opcji PAGE_VERIFY.
PAGE_VERIFY { CHECKSUM | TORN_PAGE_DETECTION | BRAK }
Odnajduje uszkodzone strony bazy danych spowodowane błędami ścieżki we/wy dysku. Błędy ścieżki we/wy dysku mogą być przyczyną problemów z uszkodzeniem bazy danych. Te błędy są najczęściej spowodowane awariami zasilania lub awariami sprzętu dysku, które występują w momencie zapisywania strony na dysku.
CHECKSUM
Oblicza sumę kontrolną na zawartości całej strony i przechowuje wartość w nagłówku strony, gdy strona jest zapisywana na dysku. Gdy strona jest odczytywana z dysku, suma kontrolna jest ponownie obliczana i porównywana z wartością sumy kontrolnej przechowywaną w nagłówku strony. Jeśli wartości nie są zgodne, komunikat o błędzie 824 (wskazujący błąd sumy kontrolnej) jest zgłaszany zarówno do dziennika błędów programu SQL Server, jak i dziennika zdarzeń systemu Windows. Błąd sumy kontrolnej wskazuje problem ze ścieżką we/wy. Aby ustalić główną przyczynę, wymaga zbadania sprzętu, sterowników oprogramowania układowego, systemu BIOS, sterowników filtrów (takich jak oprogramowanie antywirusowe) i innych składników ścieżki we/wy.
TORN_PAGE_DETECTION
Zapisuje określony wzorzec 2-bitowy dla każdego sektora 512 bajtów na stronie bazy danych 8 kilobajtów (KB) i przechowywany w nagłówku strony bazy danych, gdy strona jest zapisywana na dysku. Gdy strona jest odczytywana z dysku, rozdarte bity przechowywane w nagłówku strony są porównywane z rzeczywistymi informacjami o sektorze strony.
Niedopasowane wartości wskazują, że tylko część strony została zapisana na dysku. W takiej sytuacji komunikat o błędzie 824 (wskazujący błąd rozdartej strony) jest zgłaszany zarówno do dziennika błędów programu SQL Server, jak i dziennika zdarzeń systemu Windows. Rozdarte strony są zwykle wykrywane przez odzyskiwanie bazy danych, jeśli jest to naprawdę niekompletny zapis strony. Jednak inne błędy ścieżek we/wy mogą spowodować rozdartą stronę w dowolnym momencie.
NONE
Zapisy na stronie bazy danych nie generują sumy kontrolnej ani TORN_PAGE_DETECTION wartości. Program SQL Server nie weryfikuje sumy kontrolnej ani rozdartej strony podczas odczytu, nawet jeśli wartość CHECKSUM lub TORN_PAGE_DETECTION znajduje się w nagłówku strony.
Podczas korzystania z opcji PAGE_VERIFY należy wziąć pod uwagę następujące ważne kwestie:
The default is CHECKSUM.
Jeśli baza danych użytkownika lub systemu zostanie uaktualniona do programu SQL Server 2005 (9.x) lub nowszej wersji, wartość PAGE_VERIFY (NONE lub TORN_PAGE_DETECTION) nie zostanie zmieniona. Zalecamy zmianę na SUMĘ KONTROLNĄ.
Note
We wcześniejszych wersjach programu SQL Server opcja bazy danych PAGE_VERIFY jest ustawiona na WARTOŚĆ NONE dla bazy danych
tempdb
i nie można jej modyfikować. Począwszy od programu SQL Server 2008 (10.0.x), domyślną wartością bazy danychtempdb
jest funkcja CHECKSUM dla nowych instalacji programu SQL Server. Podczas uaktualniania instalacji programu SQL Server wartość domyślna pozostaje NONE. Można zmodyfikować tę opcję. Zalecamy użycie sumy KONTROLNEj dla bazy danychtempdb
.TORN_PAGE_DETECTION może używać mniejszej liczby zasobów, ale zapewnia minimalny podzbiór ochrony sumy KONTROLNEJ.
PAGE_VERIFY można ustawić bez przełączania bazy danych w tryb offline, blokowania bazy danych lub w inny sposób utrudniania współbieżności w tej bazie danych.
SUMA KONTROLNA wzajemnie się wyklucza TORN_PAGE_DETECTION. Nie można jednocześnie włączyć obu opcji.
Po wykryciu rozdartej strony lub błędu sumy kontrolnej można odzyskać, przywracając dane lub potencjalnie ponownie kompilując indeks, jeśli awaria jest ograniczona tylko do stron indeksowania. Jeśli wystąpi błąd sumy kontrolnej, aby określić typ strony bazy danych lub stron, na które ma wpływ, uruchom polecenie DBCC CHECKDB. For more information about restore options, see RESTORE Arguments. Mimo że przywracanie danych rozwiązuje problem z uszkodzeniem danych, główna przyczyna (na przykład awaria sprzętu dysku) powinna zostać zdiagnozowana i poprawiona tak szybko, jak to możliwe, aby zapobiec kontynuowaniu błędów.
Program SQL Server ponawia próbę odczytu, który kończy się niepowodzeniem z sumą kontrolną, rozdartą stroną lub innym błędem we/wy cztery razy. Jeśli odczyt zakończy się pomyślnie w dowolnej z prób ponawiania próby, komunikat zostanie zapisany w dzienniku błędów. Polecenie, które wyzwoliło odczyt, kontynuuje. Polecenie kończy się niepowodzeniem z komunikatem o błędzie 824, jeśli ponowienie próby zakończy się niepowodzeniem.
Aby uzyskać więcej informacji na temat komunikatów o błędach 823, 824 i 825, zobacz:
- Rozwiązywanie problemów z błędem MSSQLSERVER 823
- Rozwiązywanie problemów z błędem MSSQLSERVER 824
- Rozwiązywanie problemów z błędem MSSQLSERVER 825 (próba odczytu).
The current setting of this option can be determined by examining the page_verify_option
column in the sys.databases catalog view or the IsTornPageDetectionEnabled
property of the DATABASEPROPERTYEX function.
< > remote_data_archive_option ::=
Applies to: SQL Server (Starting with SQL Server 2016 (13.x))
Włącza lub wyłącza bazę danych Stretch dla bazy danych. For more info, see Stretch Database.
Important
Baza danych Stretch jest przestarzała w programie SQL Server 2022 (16.x) i usłudze Azure SQL Database. Ta funkcja zostanie usunięta w przyszłej wersji aparatu bazy danych. Unikaj używania tej funkcji w nowych pracach programistycznych i zaplanuj modyfikowanie aplikacji, które obecnie korzystają z tej funkcji.
REMOTE_DATA_ARCHIVE = { ON ( SERVER = <server_name>, { CREDENTIAL = <db_scoped_credential_name> | FEDERATED_SERVICE_ACCOUNT = WŁĄCZONE | OFF } ) | OD
ON
Włącza usługę Stretch Database dla bazy danych. Aby uzyskać więcej informacji, w tym dodatkowe wymagania wstępne, zobacz Enable Stretch Database for a database for a database.
Wymaga
db_owner
uprawnienia do włączania bazy danych Stretch dla tabeli. Wymaga uprawnieńdb_owner
iCONTROL DATABASE
w celu włączenia bazy danych Stretch.SERWER = <server_name>
Określa adres serwera platformy Azure. Dołącz
.database.windows.net
część nazwy. Na przykładMyStretchDatabaseServer.database.windows.net
.CREDENTIAL = <db_scoped_credential_name>
Określa poświadczenie o zakresie bazy danych używane przez wystąpienie programu SQL Server do nawiązania połączenia z serwerem platformy Azure. Przed uruchomieniem tego polecenia upewnij się, że poświadczenia istnieją. Aby uzyskać więcej informacji, zobacz CREATE DATABASE SCOPED CREDENTIAL.
FEDERATED_SERVICE_ACCOUNT = { ON | WYŁ. }
Możesz użyć konta usługi federacyjnej dla lokalnego programu SQL Server, aby komunikować się ze zdalnym serwerem platformy Azure, gdy wszystkie poniższe warunki są spełnione.
- Konto usługi, w ramach którego uruchomiono wystąpienie programu SQL Server, jest kontem domeny.
- Konto domeny należy do domeny, której usługa Active Directory jest federacyjna z identyfikatorem Entra firmy Microsoft.
- Zdalny serwer platformy Azure jest skonfigurowany do obsługi uwierzytelniania firmy Microsoft Entra.
- Konto usługi, na którym działa wystąpienie programu SQL Server, musi być skonfigurowane jako konto
dbmanager
lubsysadmin
na zdalnym serwerze platformy Azure.
Jeśli określisz, że konto usługi federacyjnej jest włączone, nie można również określić argumentu CREDENTIAL. Podaj argument CREDENTIAL, jeśli określisz wartość OFF.
OFF
Wyłącza bazę danych Stretch dla bazy danych. Aby uzyskać więcej informacji, zobacz Disable Stretch Database and bring back remote data.
Możesz wyłączyć bazę danych Stretch tylko wtedy, gdy baza danych nie zawiera już żadnych tabel, które są włączone dla bazy danych Stretch. Po wyłączeniu bazy danych Stretch migracja danych zostaje zatrzymana. Ponadto wyniki zapytania nie zawierają już wyników z tabel zdalnych.
Wyłączenie bazy danych Stretch nie powoduje usunięcia zdalnej bazy danych. Aby usunąć zdalną bazę danych, upuść ją przy użyciu witryny Azure Portal.
PERSISTENT_LOG_BUFFER
Applies to: SQL Server 2017 (14.x) and later.
Po określeniu tej opcji bufor dziennika transakcji jest tworzony na woluminie, który znajduje się na urządzeniu dyskowym wspieranym przez pamięć klasy magazynu (NVDIMM-N magazynu nieulotnego), znany również jako trwały bufor dziennika. Aby uzyskać więcej informacji, zobacz przyspieszanie opóźnienia zatwierdzania transakcji przy użyciu pamięci klasy magazynu i Dodawanie buforu dziennika trwałego do bazy danych.
< > service_broker_option ::=
Applies to: SQL Server
Steruje następującymi opcjami usługi Service Broker: włącza lub wyłącza dostarczanie komunikatów, ustawia nowy identyfikator usługi Service Broker lub ustawia priorytety konwersacji na WŁ. lub WYŁ.
ENABLE_BROKER
Określa, że usługa Service Broker jest włączona dla określonej bazy danych. Message delivery is started, and the is_broker_enabled
flag is set to true in the sys.databases catalog view. Baza danych przechowuje istniejący identyfikator usługi Service Broker. Nie można włączyć brokera usług, gdy baza danych jest jednostką w konfiguracji dublowania bazy danych.
Note
ENABLE_BROKER wymaga wyłącznej blokady bazy danych. Jeśli inne sesje zablokowały zasoby w bazie danych, ENABLE_BROKER czeka, aż inne sesje zwolnią blokady. Aby włączyć usługę Service Broker w bazie danych użytkownika, przed uruchomieniem instrukcji ALTER DATABASE SET ENABLE_BROKER
, na przykład przez umieszczenie bazy danych w trybie pojedynczego użytkownika, upewnij się, że żadne inne sesje nie korzystają z bazy danych. Aby włączyć usługę Service Broker w bazie danych msdb
, najpierw zatrzymaj agenta programu SQL Server, aby usługa Service Broker mogła uzyskać niezbędną blokadę.
DISABLE_BROKER
Określa, że usługa Service Broker jest wyłączona dla określonej bazy danych. Message delivery is stopped, and the is_broker_enabled
flag is set to false in the sys.databases catalog view. Baza danych przechowuje istniejący identyfikator usługi Service Broker.
NEW_BROKER
Określa, że baza danych powinna otrzymać nowy identyfikator brokera. Baza danych działa jako nowy broker usług. W związku z tym wszystkie istniejące konwersacje w bazie danych są natychmiast usuwane bez tworzenia końcowych komunikatów dialogowych. Każda trasa odwołująca się do starego identyfikatora usługi Service Broker musi zostać ponownie utworzona przy użyciu nowego identyfikatora.
ERROR_BROKER_CONVERSATIONS
Określa, że jest włączone dostarczanie komunikatów usługi Service Broker. To ustawienie zachowuje istniejący identyfikator usługi Service Broker dla bazy danych. Usługa Service Broker kończy wszystkie konwersacje w bazie danych z błędem. To ustawienie umożliwia aplikacjom regularne czyszczenie istniejących konwersacji.
HONOR_BROKER_PRIORITY { ON | WYŁ. }
ON
Operacje wysyłania uwzględniają poziomy priorytetów przypisane do konwersacji. Wiadomości z konwersacji o wysokim priorytcie są wysyłane przed wiadomościami z konwersacji, które mają przypisane poziomy o niskim priorytcie.
OFF
Operacje wysyłania są uruchamiane tak, jakby wszystkie konwersacje miały domyślny poziom priorytetu.
Zmiany opcji HONOR_BROKER_PRIORITY zostaną zastosowane natychmiast dla nowych okien dialogowych lub okien dialogowych, które nie mają komunikatów oczekujących na wysłanie. Okna dialogowe z komunikatami, które mają być wysyłane, gdy funkcja ALTER DATABASE jest uruchamiana, nie pobierają nowego ustawienia do momentu wysłania niektórych komunikatów dla okna dialogowego. Czas, po jakim wszystkie okna dialogowe zaczną korzystać z nowego ustawienia, mogą się znacznie różnić.
The current setting of this property is reported in the is_broker_priority_honored
column in the sys.databases catalog view.
< > snapshot_option ::=
Oblicza poziom izolacji transakcji.
ALLOW_SNAPSHOT_ISOLATION { ON | WYŁ. }
ON
Włącza opcję Migawka na poziomie bazy danych. Po jej włączeniu instrukcje DML zaczynają generować wersje wierszy nawet wtedy, gdy żadna transakcja nie używa izolacji migawki. Po włączeniu tej opcji transakcje mogą określać poziom izolacji transakcji MIGAWKI. Gdy transakcja jest uruchamiana na poziomie izolacji migawki, wszystkie instrukcje widzą migawkę danych, ponieważ istnieją na początku transakcji. Jeśli transakcja uruchomiona na poziomie izolacji MIGAWKi uzyskuje dostęp do danych w wielu bazach danych, ALLOW_SNAPSHOT_ISOLATION musi być ustawiona na wartość WŁ. we wszystkich bazach danych lub każda instrukcja w transakcji musi używać wskazówek blokowania dla dowolnego odwołania w klauzuli FROM do tabeli w bazie danych, w której ALLOW_SNAPSHOT_ISOLATION jest wyłączona.
OFF
Wyłącza opcję Migawka na poziomie bazy danych. Transakcje nie mogą określać poziomu izolacji transakcji SNAPSHOT.
Po ustawieniu ALLOW_SNAPSHOT_ISOLATION na nowy stan (od WŁ. do WYŁ. lub OD WŁ. do WŁ.), funkcja ALTER DATABASE nie zwraca kontroli do obiektu wywołującego, dopóki wszystkie istniejące transakcje w bazie danych nie zostaną zatwierdzone. Jeśli baza danych jest już w stanie określonym w instrukcji ALTER DATABASE, kontrolka jest natychmiast zwracana do wywołującego. If the ALTER DATABASE statement doesn't return quickly, use sys.dm_tran_active_snapshot_database_transactions to determine whether there are long-running transactions. Jeśli instrukcja ALTER DATABASE zostanie anulowana, baza danych pozostaje w stanie, w którym została uruchomiona. The sys.databases catalog view indicates the state of snapshot-isolation transactions in the database. Jeśli snapshot_isolation_state_desc
= IN_TRANSITION_TO_ON, polecenie ALTER DATABASE ... ALLOW_SNAPSHOT_ISOLATION OFF
wstrzymuje sześć sekund i ponawia próbę wykonania operacji.
Nie można zmienić stanu ALLOW_SNAPSHOT_ISOLATION, jeśli baza danych jest w trybie OFFLINE.
Jeśli ustawisz ALLOW_SNAPSHOT_ISOLATION w bazie danych READ_ONLY, ustawienie będzie zachowywane, jeśli baza danych zostanie później ustawiona na READ_WRITE.
Możesz zmienić ustawienia ALLOW_SNAPSHOT_ISOLATION dla baz danych master
, model
, msdb
i tempdb
. To ustawienie jest zachowywane za każdym razem, gdy wystąpienie aparatu bazy danych zostanie zatrzymane i ponownie uruchomione, jeśli zmienisz ustawienie dla tempdb
. Jeśli zmienisz ustawienie dla model
, to ustawienie stanie się ustawieniem domyślnym dla wszystkich nowych baz danych, które są tworzone, z wyjątkiem tempdb
.
Opcja jest domyślnie włączona dla baz danych master
i msdb
.
The current setting of this option can be determined by examining the snapshot_isolation_state
column in the sys.databases catalog view.
READ_COMMITTED_SNAPSHOT { ON | WYŁ. }
ON
Włącza opcję migawki Read-Committed na poziomie bazy danych. Po jej włączeniu instrukcje DML zaczynają generować wersje wierszy nawet wtedy, gdy żadna transakcja nie używa izolacji migawki. Po włączeniu tej opcji transakcje określające poziom izolacji zatwierdzonej odczytu używają przechowywania wersji wierszy zamiast blokowania. Wszystkie instrukcje widzą migawkę danych, ponieważ istnieją na początku instrukcji, gdy transakcja jest uruchamiana na poziomie izolacji READ COMMITTED.
OFF
Wyłącza opcję migawki Read-Committed na poziomie bazy danych. Transakcje określające poziom izolacji READ COMMITTED używają blokady.
Aby ustawić READ_COMMITTED_SNAPSHOT włączone lub wyłączone, nie musi istnieć żadne aktywne połączenia z bazą danych, z wyjątkiem połączenia z uruchomionym poleceniem ALTER DATABASE. Jednak baza danych nie musi być w trybie pojedynczego użytkownika. Nie można zmienić stanu tej opcji, gdy baza danych jest w trybie OFFLINE.
Jeśli ustawisz READ_COMMITTED_SNAPSHOT w bazie danych READ_ONLY, ustawienie będzie zachowywane, gdy baza danych zostanie później ustawiona na READ_WRITE.
READ_COMMITTED_SNAPSHOT nie można włączyć dla baz danych systemu master
, tempdb
lub msdb
. Jeśli zmienisz ustawienie dla model
, to ustawienie stanie się domyślne dla wszystkich nowych baz danych utworzonych, z wyjątkiem tempdb
.
The current setting of this option can be determined by examining the is_read_committed_snapshot_on
column in the sys.databases catalog view.
Warning
Po utworzeniu tabeli z TRWAŁOŚCI = SCHEMA_ONLY, a READ_COMMITTED_SNAPSHOT zostanie następnie zmieniona przy użyciu ALTER DATABASE, dane w tabeli zostaną utracone.
MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT { ON | WYŁ. }
Applies to: SQL Server (Starting with SQL Server 2014 (12.x))
ON
Gdy poziom izolacji transakcji jest ustawiony na dowolny poziom izolacji niższy niż SNAPSHOT, wszystkie interpretowane operacje Transact-SQL w tabelach zoptymalizowanych pod kątem pamięci są uruchamiane w ramach izolacji migawki. Przykłady poziomów izolacji niższych niż migawka to READ COMMITTED lub READ UNCOMMITTED. Te operacje są uruchamiane, czy poziom izolacji transakcji jest ustawiany jawnie na poziomie sesji, czy jest używany niejawnie.
OFF
Nie podnosi poziomu izolacji transakcji dla interpretowanych operacji Transact-SQL w tabelach zoptymalizowanych pod kątem pamięci.
Nie można zmienić stanu MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT, jeśli baza danych jest w trybie OFFLINE.
Opcja domyślna to WYŁĄCZONE.
The current setting of this option can be determined by examining the is_memory_optimized_elevate_to_snapshot_on
column in the sys.databases catalog view.
< > sql_option ::=
Steruje opcjami zgodności ANSI na poziomie bazy danych.
ANSI_NULL_DEFAULT { ON | WYŁ. }
Określa wartość domyślną NULL lub NOT NULL kolumny lub typu zdefiniowanego przez użytkownika CLR, dla którego wartość null nie jest jawnie zdefiniowana w instrukcjach CREATE TABLE lub ALTER TABLE. Kolumny zdefiniowane z ograniczeniami są zgodne z regułami ograniczeń, niezależnie od tego, jakie może być to ustawienie.
ON
Wartość domyślna niezdefiniowanej kolumny to NULL.
OFF
Wartość domyślna dla niezdefiniowanej kolumny to NOT NULL.
Ustawienia na poziomie połączenia ustawione przy użyciu instrukcji SET zastępują domyślne ustawienie na poziomie bazy danych dla ANSI_NULL_DEFAULT. Klienci ODBC i OLE DB domyślnie wystawiają ustawienie instrukcji SET na poziomie połączenia ANSI_NULL_DEFAULT włączone dla sesji. Klienci uruchamiają instrukcję podczas nawiązywania połączenia z wystąpieniem programu SQL Server. For more information, see SET ANSI_NULL_DFLT_ON.
W przypadku zgodności ze standardem ANSI ustawienie opcji bazy danych ANSI_NULL_DEFAULT na WŁ. powoduje zmianę domyślnej wartości null bazy danych.
You can determine this option's status by examining the is_ansi_null_default_on
column in the sys.databases catalog view. You can also determine the status by examining the IsAnsiNullDefault
property of the DATABASEPROPERTYEX function.
ANSI_NULLS { ON | WYŁ. }
ON
Wszystkie porównania z wartością null mają wartość UNKNOWN.
OFF
Porównania wartości innych niż Unicode z wartością null mają wartość TRUE, jeśli obie wartości mają wartość NULL.
Important
W przyszłej wersji programu SQL Server ANSI_NULLS zawsze będzie włączona, a wszystkie aplikacje, które jawnie ustawią opcję WYŁ., spowodują wystąpienie błędu. Unikaj używania tej funkcji w nowych pracach programistycznych i zaplanuj modyfikowanie aplikacji, które obecnie korzystają z tej funkcji.
Ustawienia na poziomie połączenia ustawione przy użyciu instrukcji SET zastępują domyślne ustawienie bazy danych dla ANSI_NULLS. Klienci ODBC i OLE DB domyślnie wystawiają ustawienie instrukcji SET na poziomie połączenia ANSI_NULLS włączone dla sesji. Klienci uruchamiają instrukcję podczas nawiązywania połączenia z wystąpieniem programu SQL Server. For more information, see SET ANSI_NULLS.
Important
USTAW ANSI_NULLS należy również ustawić wartość WŁĄCZONE podczas tworzenia lub wprowadzania zmian w indeksach w obliczonych kolumnach lub indeksowanych widokach.
You can determine this option's status by examining the is_ansi_nulls_on
column in the sys.databases catalog view. You can also determine the status by examining the IsAnsiNullsEnabled
property of the DATABASEPROPERTYEX function.
ANSI_PADDING { ON | WYŁ. }
ON
Ciągi są dopełniane tą samą długością przed konwersją. Also padded to the same length before inserting to a varchar or nvarchar data type.
OFF
Inserts trailing blanks in character values into varchar or nvarchar columns. Also leaves trailing zeros in binary values that are inserted into varbinary columns. Wartości nie są dopełniane do długości kolumny.
Po określeniu opcji WYŁ. to ustawienie ma wpływ tylko na definicję nowych kolumn.
Important
W przyszłej wersji programu SQL Server ANSI_PADDING zawsze będzie włączona, a wszystkie aplikacje, które jawnie ustawią opcję WYŁ., spowodują wystąpienie błędu. Unikaj używania tej funkcji w nowych pracach programistycznych i zaplanuj modyfikowanie aplikacji, które obecnie korzystają z tej funkcji. Zalecamy, aby zawsze ustawiać ANSI_PADDING na WŁ. ANSI_PADDING musi być włączony podczas tworzenia lub manipulowania indeksami w kolumnach obliczeniowych lub indeksowanych widokach.
char(n) and binary(n) columns that allow for nulls are padded to the column length when ANSI_PADDING is set to ON. Końcowe wartości puste i zera są przycinane, gdy ANSI_PADDING jest wyłączona. char(n) and binary(n) columns that don't allow nulls are always padded to the length of the column.
Ustawienia na poziomie połączenia ustawione przy użyciu instrukcji SET zastępują domyślne ustawienie na poziomie bazy danych dla ANSI_PADDING. Klienci ODBC i OLE DB domyślnie wystawiają ustawienie instrukcji SET na poziomie połączenia ANSI_PADDING włączone dla sesji. Klienci uruchamiają instrukcję podczas nawiązywania połączenia z wystąpieniem programu SQL Server. For more information, see SET ANSI_PADDING.
You can determine this option's status by examining the is_ansi_padding_on
column in the sys.databases catalog view. You can also determine the status by examining the IsAnsiPaddingEnabled
property of the DATABASEPROPERTYEX function.
ANSI_WARNINGS { ON | WYŁ. }
ON
Błędy lub ostrzeżenia są wystawiane, gdy wystąpią warunki, takie jak dzielenie przez zero. Błędy i ostrzeżenia są również wystawiane, gdy wartości null są wyświetlane w funkcjach agregujących.
OFF
Nie są wywoływane żadne ostrzeżenia, a wartości null są zwracane, gdy wystąpią warunki, takie jak dzielenie przez zero.
Important
Ustaw ANSI_WARNINGS należy ustawić wartość WŁĄCZONE podczas tworzenia lub wprowadzania zmian w indeksach w kolumnach obliczeniowych lub widokach indeksowanych.
Ustawienia na poziomie połączenia ustawione przy użyciu instrukcji SET zastępują domyślne ustawienie bazy danych dla ANSI_WARNINGS. Klienci ODBC i OLE DB domyślnie wystawiają ustawienie instrukcji SET na poziomie połączenia ANSI_WARNINGS włączone dla sesji. Klienci uruchamiają instrukcję podczas nawiązywania połączenia z wystąpieniem programu SQL Server. For more information, see SET ANSI_WARNINGS.
You can determine this option's status by examining the is_ansi_warnings_on
column in the sys.databases catalog view. You can also determine the status by examining the IsAnsiWarningsEnabled
property of the DATABASEPROPERTYEX function.
ARITHABORT { ON | WYŁ. }
ON
Zapytanie kończy się, gdy podczas wykonywania zapytania występuje błąd przepełnienia lub dzielenia przez zero.
OFF
Gdy wystąpi jeden z tych błędów, zostanie wyświetlony komunikat ostrzegawczy. Zapytanie, wsadowe lub transakcje nadal przetwarza się tak, jakby nie wystąpił błąd, nawet jeśli zostanie wyświetlone ostrzeżenie.
Important
USTAWIENIE ARITHABORT musi być ustawione na WARTOŚĆ WŁĄCZONE podczas tworzenia lub wprowadzania zmian w indeksach dla obliczonych kolumn lub indeksowanych widoków.
You can determine this option's status by examining the is_arithabort_on
column in the sys.databases catalog view. You can also determine the status by examining the IsArithmeticAbortEnabled
property of the DATABASEPROPERTYEX function.
COMPATIBILITY_LEVEL = { 170 | 160 | 150 | 140 | 130 | 120 | 110 | 100 }
Aby uzyskać więcej informacji, zobacz
CONCAT_NULL_YIELDS_NULL { ON | WYŁ. }
ON
Wynikiem operacji łączenia jest wartość NULL, gdy jeden z operandów ma wartość NULL. Na przykład łączenie ciągu znaków "To jest", a wartość NULL zwraca wartość NULL zamiast wartości "To jest".
OFF
Wartość null jest traktowana jako pusty ciąg znaków.
Important
CONCAT_NULL_YIELDS_NULL należy ustawić wartość WŁĄCZONE podczas tworzenia lub wprowadzania zmian w indeksach w kolumnach obliczeniowych lub indeksowanych widokach.
W nadchodzących wersjach programu SQL Server CONCAT_NULL_YIELDS_NULL zawsze będzie włączona, a wszystkie aplikacje, które jawnie ustawiły opcję WYŁ., wyzwolą błąd. Unikaj używania tej funkcji w nowych pracach programistycznych i zaplanuj modyfikowanie aplikacji, które obecnie korzystają z tej funkcji.
Ustawienia na poziomie połączenia ustawione przy użyciu instrukcji SET zastępują domyślne ustawienie bazy danych dla CONCAT_NULL_YIELDS_NULL. Domyślnie klienci ODBC i OLE DB wystawiają ustawienie instrukcji SET na poziomie połączenia CONCAT_NULL_YIELDS_NULL na WŁ. dla sesji podczas nawiązywania połączenia z wystąpieniem programu SQL Server. For more information, see SET CONCAT_NULL_YIELDS_NULL.
You can determine this option's status by examining the is_concat_null_yields_null_on
column in the sys.databases catalog view. You can also determine the status by examining the IsNullConcat
property of the DATABASEPROPERTYEX function.
NUMERIC_ROUNDABORT { ON | WYŁ. }
ON
Błąd jest generowany, gdy w wyrażeniu występuje utrata precyzji.
OFF
Utrata dokładności nie generuje komunikatu o błędzie, a wynik jest zaokrąglany do dokładności kolumny lub zmiennej przechowującej wynik.
Important
NUMERIC_ROUNDABORT należy ustawić wartość OFF podczas tworzenia lub wprowadzania zmian w indeksach w kolumnach obliczeniowych lub indeksowanych widokach.
You can determine the status of this option in the is_numeric_roundabort_on
column in the sys.databases catalog view. You can also determine the status by examining the IsNumericRoundAbortEnabled
property of the DATABASEPROPERTYEX function.
QUOTED_IDENTIFIER { ON | WYŁ. }
ON
Podwójnego cudzysłowu można używać do ujęć identyfikatorów rozdzielanych.
Wszystkie ciągi rozdzielone podwójnym cudzysłowem są interpretowane jako identyfikatory obiektów. Identyfikatory cytowane nie muszą być zgodne z regułami Transact-SQL dla identyfikatorów. Mogą to być słowa kluczowe i mogą zawierać znaki, które nie są dozwolone w identyfikatorach Transact-SQL. Jeśli podwójny cudzysłów (
"
) jest częścią identyfikatora, może być reprezentowany przez dwa podwójne cudzysłowy (""
).OFF
Identyfikatory nie mogą być w cudzysłowie i muszą być zgodne ze wszystkimi regułami Transact-SQL dla identyfikatorów. Literały mogą być rozdzielane znakami pojedynczego lub podwójnego cudzysłowu.
Program SQL Server umożliwia również rozdzielenie identyfikatorów nawiasami kwadratowymi ([
i ]
). Identyfikatory w nawiasach mogą być zawsze używane, niezależnie od ustawienia QUOTED_IDENTIFIER. For more information, see Database identifiers.
Po utworzeniu tabeli opcja IDENTYFIKATOR CYTOWANY jest zawsze przechowywana jako WŁ. w metadanych tabeli. Opcja jest przechowywana nawet wtedy, gdy opcja jest ustawiona na WARTOŚĆ OFF podczas tworzenia tabeli.
Ustawienia na poziomie połączenia ustawione przy użyciu instrukcji SET zastępują domyślne ustawienie bazy danych dla QUOTED_IDENTIFIER. Klienci ODBC i OLE DB wystawiają ustawienie instrukcji SET na poziomie połączenia QUOTED_IDENTIFIER domyślnie włączone. Klienci uruchamiają instrukcję podczas nawiązywania połączenia z wystąpieniem programu SQL Server. For more information, see SET QUOTED_IDENTIFIER.
You can determine this option's status by examining the is_quoted_identifier_on
column in the sys.databases catalog view. You can also determine the status by examining the IsQuotedIdentifiersEnabled
property of the DATABASEPROPERTYEX function.
RECURSIVE_TRIGGERS { ON | WYŁ. }
ON
Rekursywne wypalanie wyzwalaczy AFTER jest dozwolone.
OFF
You can determine this option's status by examining the
is_recursive_triggers_on
column in the sys.databases catalog view. You can also determine the status by examining theIsRecursiveTriggersEnabled
property of the DATABASEPROPERTYEX function.
Note
Nie można zapobiegać rekursji bezpośredniej tylko wtedy, gdy RECURSIVE_TRIGGERS jest ustawiona na wartość OFF. Aby wyłączyć rekursję pośrednią, należy również ustawić opcję serwera wyzwalaczy zagnieżdżonych na 0.
You can determine this option's status by examining the is_recursive_triggers_on
column in the sys.databases catalog view or the IsRecursiveTriggersEnabled
property of the DATABASEPROPERTYEX function.
< > suspend_for_snapshot_backup ::=
Applies to: SQL Server (Starting with SQL Server 2022 (16.x))
Zawiesza bazy danych na potrzeby tworzenia kopii zapasowej migawek. Może zdefiniować grupę co najmniej jednej bazy danych. Może wyznaczyć tryb tylko do kopiowania.
SET SUSPEND_FOR_SNAPSHOT_BACKUP = { ON | OFF }
Zawiesza lub zawiesza bazy danych. Default OFF.
MODE = COPY_ONLY
Optional. Używa trybu COPY_ONLY.
< > target_recovery_time_option ::=
Applies to: SQL Server (Starting with SQL Server 2012 (11.x))
Określa częstotliwość pośrednich punktów kontrolnych dla poszczególnych baz danych. Starting with SQL Server 2016 (13.x) the default value for new databases is 1 minute, which indicates the database uses indirect checkpoints. W przypadku starszych wersji wartość domyślna to 0, co oznacza, że baza danych używa automatycznych punktów kontrolnych, których częstotliwość zależy od ustawienia interwału odzyskiwania wystąpienia serwera. Firma Microsoft zaleca 1 minutę dla większości systemów.
TARGET_RECOVERY_TIME = target_recovery_time { SECONDS | MINUTES }
target_recovery_time
Określa maksymalną granicę czasu odzyskiwania określonej bazy danych w przypadku awarii. target_recovery_time is type int.
SECONDS
Indicates that target_recovery_time is expressed as the number of seconds.
MINUTES
Indicates that target_recovery_time is expressed as the number of minutes.
For more information about indirect checkpoints, see Database checkpoints.
OPTIMIZED_LOCKING { ON | WYŁ. }
Applies to: SQL Server (Starting with SQL Server 2025 (17.x) Preview)
Enables optimized locking. Zoptymalizowane blokowanie jest domyślnie wyłączone.
Aby ustawić OPTIMIZED_LOCKING włączone lub wyłączone, nie musi istnieć żadne aktywne połączenia z bazą danych, z wyjątkiem połączenia z uruchomionym poleceniem ALTER DATABASE. Jednak baza danych nie musi być w trybie pojedynczego użytkownika. Nie można zmienić stanu tej opcji, chyba że baza danych jest w trybie ONLINE.
Z kończeniem <> ::=
Określa, kiedy wycofać niekompletne transakcje, gdy baza danych zostanie przeniesiona z jednego stanu do innego. Jeśli klauzula zakończenia zostanie pominięta, instrukcja ALTER DATABASE czeka na czas nieokreślony, jeśli w bazie danych istnieje blokada. Można określić tylko jedną klauzulę zakończenia i jest zgodna z klauzulami SET.
Note
Nie wszystkie opcje bazy danych używają klauzuli WITH <zakończenie>. For more information, see the table under Setting options of the "Remarks" section of this article.
ROLLBACK AFTER integer [SECONDS] | ROLLBACK IMMEDIATE
Określa, czy należy wycofać się po określonej liczbie sekund, czy natychmiast.
NO_WAIT
Określa, że żądanie kończy się niepowodzeniem, jeśli żądany stan bazy danych lub zmiana opcji nie może zakończyć się natychmiast. Ukończenie natychmiast oznacza, że nie trzeba czekać na transakcje do zatwierdzenia lub wycofania na własną rękę.
Set options
To retrieve current settings for database options, use the sys.databases catalog view or DATABASEPROPERTYEX
Po ustawieniu opcji bazy danych nowe ustawienie zostanie zastosowane natychmiast.
Możesz zmienić wartości domyślne dla dowolnej z opcji bazy danych dla wszystkich nowo utworzonych baz danych. W tym celu zmień odpowiednią opcję bazy danych w bazie danych model
.
Nie wszystkie opcje bazy danych używają klauzuli< zakończenia WITH >lub można określić w połączeniu z innymi opcjami. W poniższej tabeli wymieniono te opcje oraz ich opcje i stan zakończenia.
Options category | Można określić z innymi opcjami | Może używać klauzuli <zakończenia with> |
---|---|---|
<db_state_option> | Yes | Yes |
<db_user_access_option> | Yes | Yes |
<db_update_option> | Yes | Yes |
<delayed_durability_option> | Yes | Yes |
<external_access_option> | Yes | No |
<cursor_option> | Yes | No |
<auto_option> | Yes | No |
<sql_option> | Yes | No |
<recovery_option> | Yes | No |
<target_recovery_time_option> | No | Yes |
<database_mirroring_option> | No | No |
ALLOW_SNAPSHOT_ISOLATION | No | No |
READ_COMMITTED_SNAPSHOT | No | Yes |
MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT | Yes | Yes |
<service_broker_option> | Yes | No |
DATE_CORRELATION_OPTIMIZATION | Yes | Yes |
<parameterization_option> | Yes | Yes |
<change_tracking_option> | Yes | Yes |
<db_encryption_option> | Yes | No |
<accelerated_database_recovery> | No | Yes |
<optimized_locking> | No | Yes |
Pamięć podręczna planu dla wystąpienia programu SQL Server jest czyszczone, ustawiając jedną z następujących opcji:
OFFLINE
ONLINE
MODIFY_NAME
COLLATE
READ_ONLY
READ_WRITE
MODYFIKOWANIE DOMYŚLNEJ GRUPY PLIKÓW
MODYFIKOWANIE READ_WRITE FILEGROUP
MODYFIKOWANIE READ_ONLY FILEGROUP
Pamięć podręczna planu jest również opróżniona w następujących scenariuszach.
- Baza danych ma opcję bazy danych AUTO_CLOSE ustawioną na WŁ. Jeśli żadne połączenie użytkownika nie odwołuje się do bazy danych ani nie korzysta z bazy danych, zadanie w tle próbuje zamknąć i zamknąć bazę danych automatycznie.
- Uruchamiasz kilka zapytań względem bazy danych, która ma opcje domyślne. Następnie baza danych zostanie porzucona.
- Migawka bazy danych źródłowej bazy danych została porzucona.
- Pomyślnie ponownie skompilujesz dziennik transakcji dla bazy danych.
- Przywracasz kopię zapasową bazy danych.
- Odłączasz bazę danych.
Wyczyszczenie pamięci podręcznej planu powoduje ponowne skompilowanie wszystkich kolejnych planów wykonywania i może spowodować nagłe, tymczasowe obniżenie wydajności zapytań. Dla każdego wyczyszczonego magazynu pamięci podręcznej w pamięci podręcznej planu dziennik błędów programu SQL Server zawiera następujący komunikat informacyjny: 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
. Ten komunikat jest rejestrowany co pięć minut, o ile pamięć podręczna jest opróżniona w tym przedziale czasu.
Examples
A. Ustawianie opcji w bazie danych
W poniższym przykładzie ustawiono opcje weryfikacji modelu odzyskiwania i strony danych dla przykładowej bazy danych AdventureWorks2022
.
USE master;
GO
ALTER DATABASE [database_name]
SET RECOVERY FULL PAGE_VERIFY CHECKSUM;
GO
B. Ustaw bazę danych na READ_ONLY
Zmiana stanu bazy danych lub grupy plików na READ_ONLY lub READ_WRITE wymaga wyłącznego dostępu do bazy danych. Poniższy przykład ustawia bazę danych na tryb SINGLE_USER
w celu uzyskania wyłącznego dostępu. Następnie przykład ustawia stan bazy danych AdventureWorks2022
na READ_ONLY
i zwraca dostęp do bazy danych wszystkim użytkownikom.
Note
W tym przykładzie użyto opcji zakończenia WITH ROLLBACK IMMEDIATE
w pierwszej instrukcji ALTER DATABASE
. Wszystkie niekompletne transakcje zostaną wycofane, a wszystkie inne połączenia z bazą danych AdventureWorks2022
zostaną natychmiast rozłączone.
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. Włączanie izolacji migawek w bazie danych
W poniższym przykładzie jest włączona opcja struktury izolacji migawek dla bazy danych AdventureWorks2022
.
USE [database_name];
USE master;
GO
ALTER DATABASE [database_name]
SET ALLOW_SNAPSHOT_ISOLATION ON;
GO
-- Check the state of the snapshot_isolation_framework
-- in the database.
SELECT name, snapshot_isolation_state,
snapshot_isolation_state_desc AS description
FROM sys.databases
WHERE name = N'[database_name]';
GO
Zestaw wyników pokazuje, że platforma izolacji migawek jest włączona.
name | snapshot_isolation_state | description |
---|---|---|
[database_name] | 1 | ON |
D. Włączanie, modyfikowanie lub wyłączanie śledzenia zmian
Poniższy przykład umożliwia śledzenie zmian dla bazy danych AdventureWorks2022
i ustawia okres przechowywania na 2
dni.
ALTER DATABASE [database_name]
SET CHANGE_TRACKING = ON
(AUTO_CLEANUP = ON, CHANGE_RETENTION = 2 DAYS);
W poniższym przykładzie pokazano, jak zmienić okres przechowywania na 3
dni.
ALTER DATABASE [database_name]
SET CHANGE_TRACKING (CHANGE_RETENTION = 3 DAYS);
W poniższym przykładzie pokazano, jak wyłączyć śledzenie zmian dla bazy danych AdventureWorks2022
.
ALTER DATABASE [database_name]
SET CHANGE_TRACKING = OFF;
E. Włączanie magazynu zapytań
Applies to: SQL Server (Starting with SQL Server 2016 (13.x))
Poniższy przykład umożliwia magazyn zapytań i konfiguruje jego parametry.
ALTER DATABASE [database_name]
SET QUERY_STORE = ON
(
OPERATION_MODE = READ_WRITE,
CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = 90 ),
DATA_FLUSH_INTERVAL_SECONDS = 900,
QUERY_CAPTURE_MODE = AUTO,
MAX_STORAGE_SIZE_MB = 1024,
INTERVAL_LENGTH_MINUTES = 60
);
F. Włączanie magazynu zapytań ze statystykami oczekiwania
Applies to: SQL Server (Starting with SQL Server 2017 (14.x))
Poniższy przykład umożliwia magazyn zapytań i konfiguruje jego parametry.
ALTER DATABASE [database_name]
SET QUERY_STORE = ON
(
OPERATION_MODE = READ_WRITE,
CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = 90 ),
DATA_FLUSH_INTERVAL_SECONDS = 900,
MAX_STORAGE_SIZE_MB = 1024,
INTERVAL_LENGTH_MINUTES = 60,
SIZE_BASED_CLEANUP_MODE = AUTO,
MAX_PLANS_PER_QUERY = 200,
WAIT_STATS_CAPTURE_MODE = ON,
);
G. Włączanie magazynu zapytań przy użyciu niestandardowych opcji zasad przechwytywania
Applies to: SQL Server (Starting with SQL Server 2019 (15.x))
Poniższy przykład umożliwia magazyn zapytań i konfiguruje jego parametry.
ALTER DATABASE [database_name]
SET QUERY_STORE = ON
(
OPERATION_MODE = READ_WRITE,
CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = 90 ),
DATA_FLUSH_INTERVAL_SECONDS = 900,
MAX_STORAGE_SIZE_MB = 1024,
INTERVAL_LENGTH_MINUTES = 60,
SIZE_BASED_CLEANUP_MODE = AUTO,
MAX_PLANS_PER_QUERY = 200,
WAIT_STATS_CAPTURE_MODE = ON,
QUERY_CAPTURE_MODE = CUSTOM,
QUERY_CAPTURE_POLICY = (
STALE_CAPTURE_POLICY_THRESHOLD = 24 HOURS,
EXECUTION_COUNT = 30,
TOTAL_COMPILE_CPU_TIME_MS = 1000,
TOTAL_EXECUTION_CPU_TIME_MS = 100
)
);
Related content
- Statistics
- DATABASEPROPERTYEX (Transact-SQL)
- sys.databases
- sys.data_spaces
- sys.database_automatic_tuning_options
- sys.database_automatic_tuning_mode
poziomu zgodności z usługą ALTER DATABASE - dublowania bazy danych ALTER DATABASE
- ALTER DATABASE SET HADR
- CREATE DATABASE
- włączanie i wyłączanie śledzenia zmian (SQL Server)
- DROP DATABASE (Transact-SQL)
- USTAWIĆ POZIOM IZOLACJI TRANSAKCJI (Transact-SQL)
- sp_configure
- Najlepsze rozwiązania dotyczące monitorowania obciążeń za pomocą magazynu zapytań
* SQL Database *
usługi
Baza danych SQL
Poziomy zgodności to
Note
Many database set options can be configured for the current session by using SET Statements and are often configured by applications when they connect. Opcje zestawu na poziomie sesji zastępują wartości ALTER DATABASE SET
. Opcje bazy danych opisane w poniższych sekcjach to wartości, które można ustawić dla sesji, które nie zapewniają jawnie innych wartości opcji zestawu.
Syntax
ALTER DATABASE { database_name | Current }
SET
{
<option_spec> [ ,...n ] [ WITH <termination> ]
}
;
<option_spec> ::=
{
<auto_option>
| <automatic_tuning_option>
| <change_tracking_option>
| <cursor_option>
| <db_encryption_option>
| <db_update_option>
| <db_user_access_option>
| <delayed_durability_option>
| <parameterization_option>
| <query_store_options>
| <snapshot_option>
| <sql_option>
| <target_recovery_time_option>
| <termination>
| <temporal_history_retention>
}
;
<auto_option> ::=
{
AUTO_CREATE_STATISTICS { OFF | ON [ ( INCREMENTAL = { ON | OFF } ) ] }
| AUTO_SHRINK { ON | OFF }
| AUTO_UPDATE_STATISTICS { ON | OFF }
| AUTO_UPDATE_STATISTICS_ASYNC { ON | OFF }
}
<automatic_tuning_option> ::=
{
AUTOMATIC_TUNING = { AUTO | INHERIT | CUSTOM }
| AUTOMATIC_TUNING ( CREATE_INDEX = { DEFAULT | ON | OFF } )
| AUTOMATIC_TUNING ( DROP_INDEX = { DEFAULT | ON | OFF } )
| AUTOMATIC_TUNING ( FORCE_LAST_GOOD_PLAN = { DEFAULT | ON | OFF } )
}
<change_tracking_option> ::=
{
CHANGE_TRACKING
{
= OFF
| = ON [ ( <change_tracking_option_list > [,...n] ) ]
| ( <change_tracking_option_list> [,...n] )
}
}
<change_tracking_option_list> ::=
{
AUTO_CLEANUP = { ON | OFF }
| CHANGE_RETENTION = retention_period { DAYS | HOURS | MINUTES }
}
<cursor_option> ::=
{
CURSOR_CLOSE_ON_COMMIT { ON | OFF }
}
<db_encryption_option> ::=
ENCRYPTION { ON | OFF }
<db_update_option> ::=
{ READ_ONLY | READ_WRITE }
<db_user_access_option> ::=
{ RESTRICTED_USER | MULTI_USER }
<delayed_durability_option> ::= DELAYED_DURABILITY = { DISABLED | ALLOWED | FORCED }
<parameterization_option> ::=
PARAMETERIZATION { SIMPLE | FORCED }
<query_store_options> ::=
{
QUERY_STORE
{
= OFF
| = ON [ ( <query_store_option_list> [,... n] ) ]
| ( < query_store_option_list> [,... n] )
| CLEAR [ ALL ]
}
}
<query_store_option_list> ::=
{
OPERATION_MODE = { READ_WRITE | READ_ONLY }
| CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = number )
| DATA_FLUSH_INTERVAL_SECONDS = number
| MAX_STORAGE_SIZE_MB = number
| INTERVAL_LENGTH_MINUTES = number
| SIZE_BASED_CLEANUP_MODE = { AUTO | OFF }
| QUERY_CAPTURE_MODE = { ALL | AUTO | CUSTOM | NONE }
| MAX_PLANS_PER_QUERY = number
| WAIT_STATS_CAPTURE_MODE = { ON | OFF }
| QUERY_CAPTURE_POLICY = ( <query_capture_policy_option_list> [,...n] )
}
<query_capture_policy_option_list> :: =
{
STALE_CAPTURE_POLICY_THRESHOLD = number { DAYS | HOURS }
| EXECUTION_COUNT = number
| TOTAL_COMPILE_CPU_TIME_MS = number
| TOTAL_EXECUTION_CPU_TIME_MS = number
}
<snapshot_option> ::=
{
ALLOW_SNAPSHOT_ISOLATION { ON | OFF }
| READ_COMMITTED_SNAPSHOT { ON | OFF }
| MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT { ON | OFF }
}
<sql_option> ::=
{
ANSI_NULL_DEFAULT { ON | OFF }
| ANSI_NULLS { ON | OFF }
| ANSI_PADDING { ON | OFF }
| ANSI_WARNINGS { ON | OFF }
| ARITHABORT { ON | OFF }
| COMPATIBILITY_LEVEL = { 160 | 150 | 140 | 130 | 120 | 110 | 100 }
| CONCAT_NULL_YIELDS_NULL { ON | OFF }
| NUMERIC_ROUNDABORT { ON | OFF }
| QUOTED_IDENTIFIER { ON | OFF }
| RECURSIVE_TRIGGERS { ON | OFF }
}
<termination>::=
{
ROLLBACK AFTER integer [ SECONDS ]
| ROLLBACK IMMEDIATE
| NO_WAIT
}
<temporal_history_retention>::=TEMPORAL_HISTORY_RETENTION { ON | OFF }
Arguments
database_name
Nazwa bazy danych, która ma zostać zmodyfikowana.
CURRENT
CURRENT
uruchamia akcję w bieżącej bazie danych.CURRENT
nie jest obsługiwana dla wszystkich opcji we wszystkich kontekstach. JeśliCURRENT
się nie powiedzie, podaj nazwę bazy danych.
< > auto_option ::=
Steruje opcjami automatycznymi.
AUTO_CREATE_STATISTICS { ON | WYŁ. }
ON
Optymalizator zapytań tworzy statystyki dotyczące pojedynczych kolumn w predykatach zapytań, w razie potrzeby, aby poprawić plany zapytań i wydajność zapytań. Te statystyki jednokolumna są tworzone podczas kompilowania zapytań przez optymalizator zapytań. Statystyki z jedną kolumną są tworzone tylko w kolumnach, które nie są jeszcze pierwszą kolumną istniejącego obiektu statystyk.
Wartość domyślna to WŁĄCZONE. Zalecamy użycie domyślnego ustawienia dla większości baz danych.
OFF
Optymalizator zapytań nie tworzy statystyk dotyczących pojedynczych kolumn w predykatach zapytań podczas kompilowania zapytań. Ustawienie tej opcji na wartość OFF może spowodować nieoptymalne plany zapytań i obniżoną wydajność zapytań.
You can determine this option's status by examining the is_auto_create_stats_on
column in the sys.databases catalog view. You can also determine the status by examining the IsAutoCreateStatistics
property of the DATABASEPROPERTYEX function.
For more information, see the "Statistics options" section in Statistics.
INCREMENTAL = ON | OD
Ustaw wartość AUTO_CREATE_STATISTICS na WŁ., a następnie ustaw wartość INCREMENTAL na WŁ. To ustawienie tworzy automatycznie utworzone statystyki jako przyrostowe zawsze, gdy są obsługiwane statystyki przyrostowe. Wartość domyślna to OFF. For more information, see CREATE STATISTICS.
AUTO_SHRINK { ON | WYŁ. }
ON
Pliki bazy danych są kandydatami do okresowego zmniejszania. Jeśli nie masz określonego wymagania, nie należy ustawiać opcji AUTO_SHRINK bazy danych na WŁ. Aby uzyskać więcej informacji, zobacz Zmniejszanie bazy danych.
Zarówno plik danych, jak i pliki dziennika mogą być automatycznie zmniejszane. AUTO_SHRINK zmniejsza rozmiar dziennika transakcji tylko w przypadku ustawienia bazy danych na model odzyskiwania SIMPLE lub kopii zapasowej dziennika. W przypadku ustawienia wyłączone pliki bazy danych nie są automatycznie zmniejszane podczas okresowych testów dla nieużywanego miejsca.
Opcja AUTO_SHRINK powoduje, że pliki są zmniejszane, gdy ponad 25 procent pliku zawiera nieużywane miejsce. Opcja powoduje zmniejszenie pliku do jednego z dwóch rozmiarów. Zmniejsza się w zależności od tego, co jest większe:
- Rozmiar, w którym 25 procent pliku jest nieużywane miejsce
- Rozmiar pliku podczas jego tworzenia
Nie można zmniejszyć bazy danych tylko do odczytu.
OFF
Pliki bazy danych nie są automatycznie zmniejszane podczas okresowych testów dla nieużywanego miejsca.
You can determine this option's status by examining the is_auto_shrink_on
column in the sys.databases catalog view. You can also determine the status by examining the IsAutoShrink
property of the DATABASEPROPERTYEX function.
Note
Opcja AUTO_SHRINK nie jest dostępna w zawartej bazie danych.
AUTO_UPDATE_STATISTICS { ON | WYŁ. }
ON
Określa, że optymalizator zapytań aktualizuje statystyki, gdy są używane przez zapytanie i kiedy mogą być nieaktualne. Statystyki stają się nieaktualne po wstawieniu, aktualizacji, usunięciu lub scalaniu operacji zmiany rozkładu danych w tabeli lub widoku indeksowanym. Optymalizator zapytań określa, kiedy statystyki mogą być nieaktualne, zliczając liczbę modyfikacji danych od ostatniej aktualizacji statystyk i porównując liczbę modyfikacji do progu. Próg jest oparty na liczbie wierszy w tabeli lub w widoku indeksowanym.
Optymalizator zapytań sprawdza nieaktualne statystyki przed skompilowanie zapytania i uruchomienie buforowanego planu zapytania. Optymalizator zapytań używa kolumn, tabel i indeksowanych widoków w predykacie zapytania, aby określić, które statystyki mogą być nieaktualne. Optymalizator zapytań określa te informacje przed skompilowanie zapytania. Przed uruchomieniem buforowanego planu zapytania aparat bazy danych sprawdza, czy plan zapytania odwołuje się up-to-date statistics.
Opcja AUTO_UPDATE_STATISTICS dotyczy statystyk utworzonych dla indeksów, pojedynczych kolumn w predykatach zapytań i statystyk tworzonych przy użyciu instrukcji CREATE STATISTICS. Ta opcja dotyczy również przefiltrowanych statystyk.
Wartość domyślna to WŁĄCZONE. Zalecamy użycie domyślnego ustawienia dla większości baz danych.
Użyj opcji AUTO_UPDATE_STATISTICS_ASYNC, aby określić, czy statystyki są aktualizowane synchronicznie, czy asynchronicznie.
OFF
Określa, że optymalizator zapytań nie aktualizuje statystyk podczas ich użycia przez zapytanie. Optymalizator zapytań nie aktualizuje również statystyk, gdy mogą być nieaktualne. Ustawienie tej opcji na wartość OFF może spowodować nieoptymalne plany zapytań i obniżoną wydajność zapytań.
You can determine this option's status by examining the
is_auto_update_stats_on
column in the sys.databases catalog view. You can also determine the status by examining theIsAutoUpdateStatistics
property of the DATABASEPROPERTYEX function.For more information, see the "Statistics options" section in Statistics.
AUTO_UPDATE_STATISTICS_ASYNC { ON | WYŁ. }
ON
Określa, że aktualizacje statystyk dla opcji AUTO_UPDATE_STATISTICS są asynchroniczne. Optymalizator zapytań nie czeka na ukończenie aktualizacji statystyk przed skompilowanie zapytań.
Ustawienie tej opcji na WARTOŚĆ WŁĄCZONE nie ma wpływu, chyba że AUTO_UPDATE_STATISTICS jest ustawiona na WARTOŚĆ WŁĄCZONE.
Domyślnie opcja AUTO_UPDATE_STATISTICS_ASYNC jest ustawiona na WYŁĄCZONE, a optymalizator zapytań aktualizuje statystyki synchronicznie.
OFF
Określa, że aktualizacje statystyk dla opcji AUTO_UPDATE_STATISTICS są synchroniczne. Optymalizator zapytań czeka na ukończenie aktualizacji statystyk przed skompilowanie zapytań.
Ustawienie tej opcji na WYŁ. nie ma wpływu, chyba że AUTO_UPDATE_STATISTICS jest ustawiona na WARTOŚĆ WŁĄCZONE.
You can determine this option's status by examining the is_auto_update_stats_async_on
column in the sys.databases catalog view.
For more information that describes when to use synchronous or asynchronous statistics updates, see the "Statistics options" section in Statistics.
< > automatic_tuning_option ::=
Controls automatic options for Automatic tuning. Opcje następujących ustawień można wyświetlić w witrynie Azure Portal lub za pośrednictwem języka T-SQL w widoku sys.database_automatic_tuning_options
.
AUTOMATIC_TUNING = { AUTO | DZIEDZICZ | CUSTOM }
AUTO
Ustawienie wartości automatycznego dostrajania na wartość AUTO powoduje zastosowanie domyślnych ustawień konfiguracji platformy Azure na potrzeby automatycznego dostrajania. W witrynie Azure Portal odzwierciedla to opcję "Dziedzicz z: wartości domyślne platformy Azure".
INHERIT
Użycie wartości INHERIT dziedziczy domyślną konfigurację z serwera nadrzędnego. W witrynie Azure Portal odzwierciedla to opcję "Dziedzicz z: serwer". Jest to szczególnie przydatne, jeśli chcesz dostosować konfigurację automatycznego dostrajania na serwerze nadrzędnym i mieć wszystkie bazy danych na takim serwerze DZIEDZICZĄ te ustawienia niestandardowe. Aby dziedziczenie działało, trzy poszczególne opcje dostrajania FORCE_LAST_GOOD_PLAN, CREATE_INDEX i DROP_INDEX muszą być ustawione na WARTOŚĆ DOMYŚLNA w bazach danych.
CUSTOM
Przy użyciu wartości CUSTOM należy skonfigurować każdą z opcji automatycznego dostrajania dostępnych w bazach danych. W witrynie Azure Portal odzwierciedla to opcję "Dziedzicz z: Nie dziedzicz".
CREATE_INDEX = { DEFAULT | WŁ. | WYŁ. }
Enables or disables automatic index management CREATE_INDEX
option of Automatic tuning. Stan tej opcji można wyświetlić w witrynie Azure Portal lub za pośrednictwem języka T-SQL w widoku sys.database_automatic_tuning_options
.
DEFAULT
Dziedziczy ustawienia domyślne z serwera. W takim przypadku opcje włączania lub wyłączania poszczególnych funkcji automatycznego dostrajania są definiowane na poziomie serwera.
ON
Po włączeniu brakujące indeksy są generowane automatycznie w bazie danych. Po utworzeniu indeksu są weryfikowane wzrosty wydajności obciążenia. Gdy taki utworzony indeks nie zapewnia już korzyści z wydajności obciążenia, zostanie on automatycznie przywrócony. Utworzone automatycznie indeksy są oflagowane jako indeksowane przez system.
OFF
Nie generuje automatycznie brakujących indeksów w bazie danych.
DROP_INDEX = { DEFAULT | WŁ. | WYŁ. }
Enables or disables automatic index management DROP_INDEX
option of Automatic tuning. Stan tej opcji można wyświetlić w witrynie Azure Portal lub za pośrednictwem języka T-SQL w widoku sys.database_automatic_tuning_options
.
DEFAULT
Dziedziczy ustawienia domyślne z serwera. W takim przypadku opcje włączania lub wyłączania poszczególnych funkcji automatycznego dostrajania są definiowane na poziomie serwera.
ON
Automatycznie odrzuca zduplikowane lub nie są już przydatne indeksy do obciążenia wydajności.
OFF
Nie usuwa automatycznie brakujących indeksów w bazie danych.
FORCE_LAST_GOOD_PLAN = { DEFAULT | WŁ. | WYŁ. }
Enables or disables automatic plan correction FORCE_LAST_GOOD_PLAN
option of Automatic tuning. Stan tej opcji można wyświetlić w witrynie Azure Portal lub za pośrednictwem języka T-SQL w widoku sys.database_automatic_tuning_options
.
DEFAULT
Dziedziczy ustawienia domyślne z serwera. W takim przypadku opcje włączania lub wyłączania poszczególnych funkcji automatycznego dostrajania są definiowane na poziomie serwera. Jest to wartość domyślna. Wartość domyślna dla nowych serwerów Azure SQL jest włączona, co oznacza, że domyślnie nowe bazy danych dziedziczą ustawienie WŁĄCZONE.
ON
Aparat bazy danych automatycznie wymusza ostatni znany dobry plan na Transact-SQL zapytaniach, w których nowy plan zapytania powoduje regresję wydajności. Aparat bazy danych stale monitoruje wydajność zapytań Transact-SQL zapytania przy użyciu wymuszonego planu. Jeśli wystąpi wzrost wydajności, aparat bazy danych nadal korzysta z ostatniego znanego dobrego planu. Jeśli nie zostanie wykryty wzrost wydajności, aparat bazy danych utworzy nowy plan zapytania. The statement fails if the Query Store isn't enabled, or isn't in Read-Write mode.
OFF
The Database Engine reports potential query performance regressions caused by query plan changes in sys.dm_db_tuning_recommendations view. Jednak te zalecenia nie są stosowane automatycznie. Użytkownicy mogą monitorować aktywne zalecenia i rozwiązywać zidentyfikowane problemy, stosując Transact-SQL skrypty wyświetlane w widoku.
< > change_tracking_option ::=
Steruje opcjami śledzenia zmian. Możesz włączyć śledzenie zmian, ustawić opcje, opcje zmiany i wyłączyć śledzenie zmian. For examples, see the Examples section later in this article.
ON
Włącza śledzenie zmian dla bazy danych. Po włączeniu śledzenia zmian można również ustawić opcje AUTOMATYCZNEGO OCZYSZCZANIA i PRZECHOWYWANIA ZMIAN.
AUTO_CLEANUP = { ON | WYŁ. }
ON
Informacje o śledzeniu zmian są automatycznie usuwane po określonym okresie przechowywania.
OFF
Dane śledzenia zmian nie są usuwane z bazy danych.
CHANGE_RETENTION = retention_period { DAYS | HOURS | MINUTES }
Określa minimalny okres przechowywania informacji o śledzeniu zmian w bazie danych. Dane są usuwane tylko wtedy, gdy wartość AUTO_CLEANUP jest włączona.
retention_period is an integer that specifies the numerical component of the retention period.
The default retention period is 2 days. Minimalny okres przechowywania wynosi 1 minutę. The default retention type is DAYS.
OFF
Wyłącza śledzenie zmian dla bazy danych. Wyłącz śledzenie zmian we wszystkich tabelach przed wyłączeniem śledzenia zmian w bazie danych.
< > cursor_option ::=
Steruje opcjami kursora.
CURSOR_CLOSE_ON_COMMIT { ON | WYŁ. }
ON
Wszystkie kursory otwierane po zatwierdzeniu lub wycofaniu transakcji zostaną zamknięte.
OFF
Kursory pozostają otwarte po zatwierdzeniu transakcji; wycofywanie transakcji zamyka wszystkie kursory z wyjątkiem tych kursorów zdefiniowanych jako INSENSITIVE lub STATIC.
Ustawienia na poziomie połączenia ustawione przy użyciu instrukcji SET zastępują domyślne ustawienie bazy danych dla CURSOR_CLOSE_ON_COMMIT. Klienci ODBC i OLE DB domyślnie wystawiają ustawienie instrukcji SET na poziomie połączenia CURSOR_CLOSE_ON_COMMIT wyłączone dla sesji. Klienci uruchamiają instrukcję podczas nawiązywania połączenia z wystąpieniem programu SQL Server. For more information, see SET CURSOR_CLOSE_ON_COMMIT.
You can determine this option's status by examining the is_cursor_close_on_commit_on
column in the sys.databases catalog view or the IsCloseCursorsOnCommitEnabled
property of the DATABASEPROPERTYEX function. Kursor jest niejawnie cofnięty tylko po rozłączeniu. For more information, see DECLARE CURSOR.
< > db_encryption_option ::=
Steruje stanem szyfrowania bazy danych.
SZYFROWANIE { WŁĄCZONE | WYŁ. }
Ustawia bazę danych do szyfrowania (WŁ.) lub niezaszyfrowanej (OFF). Aby uzyskać więcej informacji na temat szyfrowania bazy danych, zobacz transparent data encryption (TDE)i Transparent Data Encryption for Azure SQL Database, Azure SQL Managed Instance i Azure Synapse Analytics.
Po włączeniu szyfrowania na poziomie bazy danych wszystkie grupy plików są szyfrowane. Wszystkie nowe grupy plików dziedziczą zaszyfrowaną właściwość. Jeśli jakiekolwiek grupy plików w bazie danych są ustawione na WARTOŚĆ TYLKO DO ODCZYTU, operacja szyfrowania bazy danych zakończy się niepowodzeniem.
You can see the encryption state of the database by using the sys.dm_database_encryption_keys dynamic management view.
< > db_update_option ::=
Określa, czy aktualizacje są dozwolone w bazie danych.
READ_ONLY
Użytkownicy mogą odczytywać dane z bazy danych, ale nie modyfikować ich.
Note
Aby zwiększyć wydajność zapytań, zaktualizuj statystyki przed ustawieniem bazy danych na READ_ONLY. Jeśli dodatkowe statystyki są potrzebne po ustawieniu bazy danych na READ_ONLY, aparat bazy danych tworzy statystyki w
tempdb
. For more information about statistics for a read-only database, see Statistics.READ_WRITE
Baza danych jest dostępna dla operacji odczytu i zapisu.
Aby zmienić ten stan, musisz mieć wyłączny dostęp do bazy danych. Aby uzyskać więcej informacji, zobacz klauzulę SINGLE_USER.
Note
W federacyjnych bazach danych usługi Azure SQL Database SET { READ_ONLY | READ_WRITE }
jest wyłączona.
< > db_user_access_option ::=
Kontroluje dostęp użytkownika do bazy danych.
RESTRICTED_USER
Umożliwia łączenie się z bazą danych tylko członkom stałej roli bazy danych
db_owner
idbcreator
orazsysadmin
stałymi rolami serwera, ale nie ogranicza ich liczby. Wszystkie połączenia z bazą danych są rozłączane w przedziale czasu określonym przez klauzulę zakończenia instrukcji ALTER DATABASE. Po przejściu bazy danych do stanu RESTRICTED_USER próby nawiązania połączenia przez niekwalifikowanych użytkowników zostaną odrzucone. W usłudze Azure SQL Database należy wykonać polecenie z poziomu bazy danych użytkownika. W bazie danychmaster
może wystąpić komunikat o błędzieMsg 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
Wszyscy użytkownicy, którzy mają odpowiednie uprawnienia do nawiązywania połączenia z bazą danych, są dozwolone. You can determine this option's status by examining the
user_access
column in the sys.databases catalog view or theUserAccess
property of the DATABASEPROPERTYEX function. W usłudze Azure SQL Database należy wykonać polecenie z poziomu bazy danych użytkownika. W bazie danychmaster
może wystąpić komunikat o błędzieMsg 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 ::=
Określa, czy transakcje zatwierdzają w pełni trwałe, czy opóźnione.
DISABLED
Wszystkie transakcje po
SET DISABLED
są w pełni trwałe. Wszelkie opcje trwałości ustawione w niepodzielnej instrukcji bloku lub zatwierdzenia są ignorowane.ALLOWED
Wszystkie transakcje po
SET ALLOWED
są w pełni trwałe lub opóźnione, w zależności od opcji trwałości ustawionej w instrukcji bloku atomowego lub zatwierdzenia.FORCED
Wszystkie transakcje po
SET FORCED
są opóźnione. Wszelkie opcje trwałości ustawione w niepodzielnej instrukcji bloku lub zatwierdzenia są ignorowane.
< > PARAMETERIZATION_option ::=
Steruje opcją parametryzacji.
PARAMETRYZACJA { SIMPLE | WYMUSZONE }
SIMPLE
Zapytania są sparametryzowane na podstawie domyślnego zachowania bazy danych.
FORCED
Program SQL Server sparametryzuje wszystkie zapytania w bazie danych.
The current setting of this option can be determined by examining the is_parameterization_forced
column in the sys.databases catalog view.
< > query_store_options ::=
WŁ. | OFF | CLEAR [ WSZYSTKO ]
Określa, czy magazyn zapytań jest włączony w tej bazie danych, a także kontroluje usuwanie zawartości magazynu zapytań.
ON
Włącza magazyn zapytań. WARTOŚĆ DOMYŚLNa TO ON.
OFF
Wyłącza magazyn zapytań.
Note
Nie można wyłączyć magazynu zapytań w pojedynczej bazie danych i puli elastycznej usługi Azure SQL Database. Wykonanie
ALTER DATABASE [database] SET QUERY_STORE = OFF
zwraca ostrzeżenie'QUERY_STORE=OFF' is not supported in this version of SQL Server.
.CLEAR
Usuń zawartość magazynu zapytań.
OPERATION_MODE
Opisuje tryb działania magazynu zapytań. Prawidłowe wartości to READ_ONLY i READ_WRITE. W trybie READ_WRITE magazyn zapytań zbiera i utrzymuje informacje o statystykach wykonywania i planu zapytań. W trybie READ_ONLY informacje można odczytywać z magazynu zapytań, ale nie są dodawane nowe informacje. Jeśli wyczerpano maksymalną przydzieloną przestrzeń magazynu zapytań, magazyn zapytań zmieni tryb działania na READ_ONLY.
CLEANUP_POLICY
Opisuje zasady przechowywania danych magazynu zapytań. STALE_QUERY_THRESHOLD_DAYS określa liczbę dni, dla których informacje dotyczące zapytania są przechowywane w magazynie zapytań. STALE_QUERY_THRESHOLD_DAYS is type bigint. Wartość domyślna to 30. For SQL Database Basic edition, default is 7 days.
DATA_FLUSH_INTERVAL_SECONDS
Określa częstotliwość, z jaką dane zapisywane w magazynie zapytań są utrwalane na dysku. Aby zoptymalizować wydajność, dane zebrane przez magazyn zapytań są asynchronicznie zapisywane na dysku. Częstotliwość, z jaką odbywa się ten transfer asynchroniczny, jest konfigurowana przy użyciu argumentu DATA_FLUSH_INTERVAL_SECONDS. DATA_FLUSH_INTERVAL_SECONDS is type bigint. The default value is 900 (15 min).
MAX_STORAGE_SIZE_MB
Określa miejsce przydzielone do magazynu zapytań. MAX_STORAGE_SIZE_MB is type bigint.
Note
In Azure SQL Database, the default MAX_STORAGE_SIZE_MB
value differs by service tier, as follows: Premium, Business Critical, and Hyperscale: 1,024 MB; Standard and General Purpose: 100 MB; Basic: 10 MB The maximum allowed MAX_STORAGE_SIZE_MB
value is 10,240 MB.
Note
MAX_STORAGE_SIZE_MB
limit nie jest ściśle wymuszany. Rozmiar magazynu jest sprawdzany tylko wtedy, gdy magazyn zapytań zapisuje dane na dysku. Ten interwał jest ustawiany przez opcję DATA_FLUSH_INTERVAL_SECONDS
lub opcję okna dialogowego Magazyn zapytań programu Management Studio Interwał opróżniania danych. Wartość domyślna interwału to 900 sekund (lub 15 minut).
Jeśli magazyn zapytań naruszył limit MAX_STORAGE_SIZE_MB
między sprawdzaniem rozmiaru magazynu, przechodzi do trybu tylko do odczytu. Jeśli SIZE_BASED_CLEANUP_MODE
jest włączona, zostanie również wyzwolony mechanizm oczyszczania w celu wymuszenia limitu MAX_STORAGE_SIZE_MB
.
Po wyczyszczonej ilości miejsca tryb magazynu zapytań automatycznie przełącza się z powrotem do odczytu i zapisu.
Important
If you think that your workload capture needs more than 10 GB of disk space, you should probably rethink and optimize your workload to reuse query plans (for example using forced parameterization, or adjust the Query Store configurations.
Począwszy od programu SQL Server 2019 (15.x) i usługi Azure SQL Database, można ustawić QUERY_CAPTURE_MODE
na WARTOŚĆ CUSTOM, aby uzyskać dodatkową kontrolę nad zasadami przechwytywania zapytań.
INTERVAL_LENGTH_MINUTES
Określa interwał czasu, w którym dane statystyk wykonywania środowiska uruchomieniowego są agregowane do magazynu zapytań. Aby zoptymalizować użycie miejsca, statystyki wykonywania środowiska uruchomieniowego w magazynie statystyk środowiska uruchomieniowego są agregowane w stałym przedziale czasu. To stałe okno czasowe jest konfigurowane przy użyciu argumentu INTERVAL_LENGTH_MINUTES. INTERVAL_LENGTH_MINUTES is type bigint. The default value is 60.
SIZE_BASED_CLEANUP_MODE = { AUTO | WYŁ. }
Określa, czy czyszczenie jest automatycznie aktywowane, gdy łączna ilość danych zbliża się do maksymalnego rozmiaru.
OFF
Czyszczenie oparte na rozmiarach nie jest automatycznie aktywowane.
AUTO
Size-based cleanup is automatically activated when size on disk reaches 90% of max_storage_size_mb. Oczyszczanie oparte na rozmiarach usuwa najpierw najmniej kosztowne i najstarsze zapytania. It stops at approximately 80% of max_storage_size_mb. Jest to domyślna wartość konfiguracji.
SIZE_BASED_CLEANUP_MODE is type nvarchar.
QUERY_CAPTURE_MODE { ALL | AUTO | NIESTANDARDOWE | BRAK }
Wyznacza aktualnie aktywny tryb przechwytywania zapytań. Każdy tryb definiuje określone zasady przechwytywania zapytań.
Note
Kursory, zapytania wewnątrz procedur składowanych i natywnie skompilowane zapytania są zawsze przechwytywane, gdy tryb przechwytywania zapytania jest ustawiony na WSZYSTKIE, AUTOMATYCZNE lub NIESTANDARDOWE.
ALL
Przechwytuje wszystkie zapytania.
AUTO
Przechwyć odpowiednie zapytania na podstawie liczby wykonań i użycia zasobów. Jest to domyślna wartość konfiguracji usługi Azure SQL Database.
NONE
Zatrzymaj przechwytywanie nowych zapytań. Magazyn zapytań nadal zbiera statystyki kompilacji i środowiska uruchomieniowego dla zapytań, które zostały już przechwycone. Użyj tej konfiguracji z ostrożnością, ponieważ możesz przegapić przechwytywanie ważnych zapytań.
CUSTOM
Umożliwia kontrolę nad opcjami QUERY_CAPTURE_POLICY.
QUERY_CAPTURE_MODE is type nvarchar.
MAX_PLANS_PER_QUERY
Definiuje maksymalną liczbę planów obsługiwanych dla każdego zapytania. MAX_PLANS_PER_QUERY is type int. The default value is 200.
WAIT_STATS_CAPTURE_MODE { ON | WYŁ. }
Określa, czy statystyki oczekiwania są przechwytywane na zapytanie.
ON
Przechwytywane są informacje statystyczne dotyczące oczekiwania na zapytanie. Ta wartość jest wartością domyślną konfiguracji.
OFF
Informacje o statystykach oczekiwania na zapytanie nie są przechwytywane.
< > query_capture_policy_option_list :: =
Steruje opcjami zasad przechwytywania magazynu zapytań. Z wyjątkiem STALE_CAPTURE_POLICY_THRESHOLD te opcje definiują warunki OR, które muszą wystąpić, aby zapytania były przechwytywane w zdefiniowanej wartości progu nieodświeżania zasad przechwytywania.
STALE_CAPTURE_POLICY_THRESHOLD = integer { DAYS | HOURS }
Definiuje okres interwału oceny, aby określić, czy zapytanie powinno zostać przechwycone. Wartość domyślna to 1 dzień i można ją ustawić z zakresu od 1 godziny do siedmiu dni. number is type int.
EXECUTION_COUNT = integer
Definiuje liczbę wykonań zapytania w okresie oceny. Wartość domyślna to 30, co oznacza, że dla domyślnego progu zasad przechwytywania nieaktualnego zapytanie musi wykonać co najmniej 30 razy w ciągu jednego dnia, aby utrwało się w magazynie zapytań. EXECUTION_COUNT is type int.
TOTAL_COMPILE_CPU_TIME_MS = integer
Definiuje łączny czas kompilacji, który upłynął, używany przez zapytanie w okresie oceny. Wartość domyślna to 1000, co oznacza, że dla domyślnego progu zasad przechwytywania nieaktualnego zapytanie musi mieć łącznie co najmniej jedną sekundę czasu procesora CPU spędzonego podczas kompilacji zapytania w ciągu jednego dnia, aby utrwało się w magazynie zapytań. TOTAL_COMPILE_CPU_TIME_MS is type int.
TOTAL_EXECUTION_CPU_TIME_MS = integer
Definiuje całkowity czas wykonywania, który upłynął, używany przez zapytanie w okresie oceny. Wartość domyślna to 100, co oznacza, że dla domyślnego progu zasad przechwytywania nieaktualnego zapytanie musi mieć łącznie co najmniej 100 ms czasu procesora CPU spędzonego podczas wykonywania w ciągu jednego dnia, aby utrwało się w magazynie zapytań. TOTAL_EXECUTION_CPU_TIME_MS is type int.
< > snapshot_option ::=
Określa poziom izolacji transakcji.
ALLOW_SNAPSHOT_ISOLATION { ON | WYŁ. }
ON
Włącza opcję Migawka na poziomie bazy danych. Po jej włączeniu instrukcje DML zaczynają generować wersje wierszy nawet wtedy, gdy żadna transakcja nie używa izolacji migawki. Po włączeniu tej opcji transakcje mogą określać poziom izolacji transakcji MIGAWKI. Gdy transakcja jest uruchamiana na poziomie izolacji migawki, wszystkie instrukcje widzą migawkę danych, ponieważ istnieją na początku transakcji. Jeśli transakcja uruchomiona na poziomie izolacji MIGAWKi uzyskuje dostęp do danych w wielu bazach danych, ALLOW_SNAPSHOT_ISOLATION musi być ustawiona na wartość WŁ. we wszystkich bazach danych lub każda instrukcja w transakcji musi używać wskazówek blokowania dla dowolnego odwołania w klauzuli FROM do tabeli w bazie danych, w której ALLOW_SNAPSHOT_ISOLATION jest wyłączona.
OFF
Wyłącza opcję Migawka na poziomie bazy danych. Transakcje nie mogą określać poziomu izolacji transakcji SNAPSHOT.
Po ustawieniu ALLOW_SNAPSHOT_ISOLATION na nowy stan (od WŁ. do WYŁ. lub OD WŁ. do WŁ.), funkcja ALTER DATABASE nie zwraca kontroli do obiektu wywołującego, dopóki wszystkie istniejące transakcje w bazie danych nie zostaną zatwierdzone. Jeśli baza danych jest już w stanie określonym w instrukcji ALTER DATABASE, kontrolka jest natychmiast zwracana do wywołującego. If the ALTER DATABASE statement doesn't return quickly, use sys.dm_tran_active_snapshot_database_transactions to determine whether there are long-running transactions. Jeśli instrukcja ALTER DATABASE zostanie anulowana, baza danych pozostaje w stanie, w którym została uruchomiona. The sys.databases catalog view indicates the state of snapshot-isolation transactions in the database. Jeśli snapshot_isolation_state_desc = IN_TRANSITION_TO_ON
, instrukcja ALTER DATABASE .... ALLOW_SNAPSHOT_ISOLATION OFF
wstrzymuje sześć sekund i ponawia próbę wykonania operacji.
Nie można zmienić stanu ALLOW_SNAPSHOT_ISOLATION, jeśli baza danych jest w trybie OFFLINE.
Jeśli ustawisz ALLOW_SNAPSHOT_ISOLATION w bazie danych READ_ONLY, ustawienie będzie zachowywane, jeśli baza danych zostanie później ustawiona na READ_WRITE.
The current setting of this option can be determined by examining the snapshot_isolation_state
column in the sys.databases catalog view.
READ_COMMITTED_SNAPSHOT { ON | WYŁ. }
ON
Włącza opcję migawki Read-Committed na poziomie bazy danych. Po jej włączeniu instrukcje DML zaczynają generować wersje wierszy nawet wtedy, gdy żadna transakcja nie używa izolacji migawki. Po włączeniu tej opcji transakcje określające poziom izolacji READ COMMITTED używają przechowywania wersji wierszy zamiast blokowania. Wszystkie instrukcje widzą migawkę danych, ponieważ istnieją na początku instrukcji, gdy transakcja jest uruchamiana na poziomie izolacji READ COMMITTED.
OFF
Wyłącza opcję migawki Read-Committed na poziomie bazy danych. Transakcje określające poziom izolacji READ COMMITTED używają blokady.
Aby ustawić READ_COMMITTED_SNAPSHOT włączone lub wyłączone, nie musi istnieć żadne aktywne połączenia z bazą danych, z wyjątkiem połączenia z uruchomionym poleceniem ALTER DATABASE. Jednak baza danych nie musi być w trybie pojedynczego użytkownika. Nie można zmienić stanu tej opcji, gdy baza danych jest w trybie OFFLINE.
Jeśli ustawisz READ_COMMITTED_SNAPSHOT w bazie danych READ_ONLY, ustawienie będzie zachowywane, gdy baza danych zostanie później ustawiona na READ_WRITE.
READ_COMMITTED_SNAPSHOT nie można włączyć dla baz danych systemu master
, tempdb
lub msdb
. Jeśli zmienisz ustawienie dla model
, to ustawienie stanie się domyślne dla wszystkich nowych baz danych utworzonych, z wyjątkiem tempdb
.
The current setting of this option can be determined by examining the is_read_committed_snapshot_on
column in the sys.databases catalog view.
Warning
When a table is created with DURABILITY = SCHEMA_ONLY
, and READ_COMMITTED_SNAPSHOT is subsequently changed using ALTER DATABASE
, data in the table is lost.
Tip
W usłudze Azure SQL Database polecenie ALTER DATABASE
, aby ustawić READ_COMMITTED_SNAPSHOT włączone lub wyłączone dla bazy danych, należy wykonać w bazie danych master
.
MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT { ON | WYŁ. }
ON
Gdy poziom izolacji transakcji jest ustawiony na dowolny poziom izolacji niższy niż SNAPSHOT, wszystkie interpretowane operacje Transact-SQL w tabelach zoptymalizowanych pod kątem pamięci są uruchamiane w ramach izolacji migawki. Przykłady poziomów izolacji niższych niż migawka to READ COMMITTED lub READ UNCOMMITTED. Te operacje są uruchamiane, czy poziom izolacji transakcji jest ustawiany jawnie na poziomie sesji, czy jest używany niejawnie.
OFF
Nie podnosi poziomu izolacji transakcji dla interpretowanych operacji Transact-SQL w tabelach zoptymalizowanych pod kątem pamięci.
Nie można zmienić stanu MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT, jeśli baza danych jest w trybie OFFLINE.
Wartość domyślna to OFF.
The current setting of this option can be determined by examining the is_memory_optimized_elevate_to_snapshot_on
column in the sys.databases catalog view.
< > sql_option ::=
Steruje opcjami zgodności ANSI na poziomie bazy danych.
ANSI_NULL_DEFAULT { ON | WYŁ. }
Określa wartość domyślną NULL lub NOT NULL kolumny lub typu zdefiniowanego przez użytkownika CLR, dla którego wartość null nie jest jawnie zdefiniowana w instrukcjach CREATE TABLE lub ALTER TABLE. Kolumny zdefiniowane z ograniczeniami są zgodne z regułami ograniczeń, niezależnie od tego, jakie może być to ustawienie.
ON
Wartość domyślna to NULL.
OFF
Wartość domyślna to NOT NULL.
Ustawienia na poziomie połączenia ustawione przy użyciu instrukcji SET zastępują domyślne ustawienie na poziomie bazy danych dla ANSI_NULL_DEFAULT. Klienci ODBC i OLE DB domyślnie wystawiają ustawienie instrukcji SET na poziomie połączenia ANSI_NULL_DEFAULT włączone dla sesji. Klienci uruchamiają instrukcję podczas nawiązywania połączenia z wystąpieniem programu SQL Server. For more information, see SET ANSI_NULL_DFLT_ON.
W przypadku zgodności ze standardem ANSI ustawienie opcji bazy danych ANSI_NULL_DEFAULT na WŁ. powoduje zmianę domyślnej wartości null bazy danych.
You can determine this option's status by examining the is_ansi_null_default_on
column in the sys.databases catalog view. You can also determine the status by examining the IsAnsiNullDefault
property of the DATABASEPROPERTYEX function.
ANSI_NULLS { ON | WYŁ. }
ON
Wszystkie porównania z wartością null mają wartość UNKNOWN.
OFF
Porównania wartości innych niż Unicode z wartością null mają wartość TRUE, jeśli obie wartości mają wartość NULL.
Important
W przyszłej wersji programu SQL Server ANSI_NULLS zawsze będzie włączona, a wszystkie aplikacje, które jawnie ustawią opcję WYŁ., spowodują wystąpienie błędu. Unikaj używania tej funkcji w nowych pracach programistycznych i zaplanuj modyfikowanie aplikacji, które obecnie korzystają z tej funkcji.
Ustawienia na poziomie połączenia ustawione przy użyciu instrukcji SET zastępują domyślne ustawienie bazy danych dla ANSI_NULLS. Klienci ODBC i OLE DB domyślnie wystawiają ustawienie instrukcji SET na poziomie połączenia ANSI_NULLS włączone dla sesji. Klienci uruchamiają instrukcję podczas nawiązywania połączenia z wystąpieniem programu SQL Server. For more information, see SET ANSI_NULLS.
Note
USTAW ANSI_NULLS należy również ustawić wartość WŁĄCZONE podczas tworzenia lub wprowadzania zmian w indeksach w obliczonych kolumnach lub indeksowanych widokach.
You can determine this option's status by examining the is_ansi_nulls_on
column in the sys.databases catalog view. You can also determine the status by examining the IsAnsiNullsEnabled
property of the DATABASEPROPERTYEX function.
ANSI_PADDING { ON | WYŁ. }
ON
Ciągi są dopełniane tą samą długością przed konwersją. Also padded to the same length before inserting to a varchar or nvarchar data type.
OFF
Inserts trailing blanks in character values into varchar or nvarchar columns. Also leaves trailing zeros in binary values that are inserted into varbinary columns. Wartości nie są dopełniane do długości kolumny.
Po określeniu opcji WYŁ. to ustawienie ma wpływ tylko na definicję nowych kolumn.
Important
W przyszłej wersji programu SQL Server ANSI_PADDING zawsze będzie włączona, a wszystkie aplikacje, które jawnie ustawią opcję WYŁ., spowodują wystąpienie błędu. Unikaj używania tej funkcji w nowych pracach programistycznych i zaplanuj modyfikowanie aplikacji, które obecnie korzystają z tej funkcji. Zalecamy, aby zawsze ustawiać ANSI_PADDING na WŁ. ANSI_PADDING musi być włączony podczas tworzenia lub manipulowania indeksami w kolumnach obliczeniowych lub indeksowanych widokach.
char(n) and binary(n) columns that allow for nulls are padded to the column length when ANSI_PADDING is set to ON. Końcowe wartości puste i zera są przycinane, gdy ANSI_PADDING jest wyłączona. char(n) and binary(n) columns that don't allow nulls are always padded to the length of the column.
Ustawienia na poziomie połączenia ustawione przy użyciu instrukcji SET zastępują domyślne ustawienie na poziomie bazy danych dla ANSI_PADDING. Klienci ODBC i OLE DB domyślnie wystawiają ustawienie instrukcji SET na poziomie połączenia ANSI_PADDING włączone dla sesji. Klienci uruchamiają instrukcję podczas nawiązywania połączenia z wystąpieniem programu SQL Server. For more information, see SET ANSI_PADDING.
You can determine this option's status by examining the is_ansi_padding_on
column in the sys.databases catalog view. You can also determine the status by examining the IsAnsiPaddingEnabled
property of the DATABASEPROPERTYEX function.
ANSI_WARNINGS { ON | WYŁ. }
ON
Błędy lub ostrzeżenia są wystawiane, gdy wystąpią warunki, takie jak dzielenie przez zero. Błędy i ostrzeżenia są również wystawiane, gdy wartości null są wyświetlane w funkcjach agregujących.
OFF
Nie są wywoływane żadne ostrzeżenia, a wartości null są zwracane, gdy wystąpią warunki, takie jak dzielenie przez zero.
Note
Ustaw ANSI_WARNINGS należy ustawić wartość WŁĄCZONE podczas tworzenia lub wprowadzania zmian w indeksach w kolumnach obliczeniowych lub widokach indeksowanych.
Ustawienia na poziomie połączenia ustawione przy użyciu instrukcji SET zastępują domyślne ustawienie bazy danych dla ANSI_WARNINGS. Klienci ODBC i OLE DB domyślnie wystawiają ustawienie instrukcji SET na poziomie połączenia ANSI_WARNINGS włączone dla sesji. Klienci uruchamiają instrukcję podczas nawiązywania połączenia z wystąpieniem programu SQL Server. For more information, see SET ANSI_WARNINGS.
You can determine this option's status by examining the is_ansi_warnings_on
column in the sys.databases catalog view. You can also determine the status by examining the IsAnsiWarningsEnabled
property of the DATABASEPROPERTYEX function.
ARITHABORT { ON | WYŁ. }
ON
Zapytanie kończy się, gdy podczas wykonywania zapytania występuje błąd przepełnienia lub dzielenia przez zero.
OFF
Gdy wystąpi jeden z tych błędów, zostanie wyświetlony komunikat ostrzegawczy. Zapytanie, wsadowe lub transakcje nadal przetwarza się tak, jakby nie wystąpił błąd, nawet jeśli zostanie wyświetlone ostrzeżenie.
Note
USTAWIENIE ARITHABORT musi być ustawione na WARTOŚĆ WŁĄCZONE podczas tworzenia lub wprowadzania zmian w indeksach dla obliczonych kolumn lub indeksowanych widoków.
You can determine this option's status by examining the is_arithabort_on
column in the sys.databases catalog view. You can also determine the status by examining the IsArithmeticAbortEnabled
property of the DATABASEPROPERTYEX function.
COMPATIBILITY_LEVEL = { 170 | 160 | 150 | 140 | 130 | 120 | 110 | 100 }
Aby uzyskać więcej informacji, zobacz
CONCAT_NULL_YIELDS_NULL { ON | WYŁ. }
ON
Wynikiem operacji łączenia jest wartość NULL, gdy jeden z operandów ma wartość NULL. Na przykład łączenie ciągu znaków "To jest" i wartość NULL powoduje wartość NULL, zamiast wartości "To jest".
OFF
Wartość null jest traktowana jako pusty ciąg znaków.
Note
CONCAT_NULL_YIELDS_NULL należy ustawić wartość WŁĄCZONE podczas tworzenia lub wprowadzania zmian w indeksach w kolumnach obliczeniowych lub indeksowanych widokach.
W przyszłej wersji programu SQL Server CONCAT_NULL_YIELDS_NULL zawsze będzie włączona, a wszystkie aplikacje, które jawnie ustawią opcję WYŁ., spowodują wystąpienie błędu. Unikaj używania tej funkcji w nowych pracach programistycznych i zaplanuj modyfikowanie aplikacji, które obecnie korzystają z tej funkcji.
Ustawienia na poziomie połączenia ustawione przy użyciu instrukcji SET zastępują domyślne ustawienie bazy danych dla CONCAT_NULL_YIELDS_NULL. Domyślnie klienci ODBC i OLE DB wystawiają ustawienie instrukcji SET na poziomie połączenia CONCAT_NULL_YIELDS_NULL na WŁ. dla sesji podczas nawiązywania połączenia z wystąpieniem programu SQL Server. For more information, see SET CONCAT_NULL_YIELDS_NULL.
You can determine this option's status by examining the is_concat_null_yields_null_on
column in the sys.databases catalog view. You can also determine the status by examining the IsNullConcat
property of the DATABASEPROPERTYEX function.
NUMERIC_ROUNDABORT { ON | WYŁ. }
ON
Błąd jest generowany, gdy w wyrażeniu występuje utrata precyzji.
OFF
Utrata dokładności nie generuje komunikatu o błędzie, a wynik jest zaokrąglany do dokładności kolumny lub zmiennej przechowującej wynik.
Important
NUMERIC_ROUNDABORT należy ustawić wartość OFF podczas tworzenia lub wprowadzania zmian w indeksach w kolumnach obliczeniowych lub indeksowanych widokach.
You can determine the status for this option in the is_numeric_roundabort_on
column in the sys.databases catalog view. You can also determine the status by examining the IsNumericRoundAbortEnabled
property of the DATABASEPROPERTYEX function.
QUOTED_IDENTIFIER { ON | WYŁ. }
ON
Podwójnego cudzysłowu można używać do ujęć identyfikatorów rozdzielanych.
Wszystkie ciągi rozdzielone podwójnym cudzysłowem są interpretowane jako identyfikatory obiektów. Identyfikatory cytowane nie muszą być zgodne z regułami Transact-SQL dla identyfikatorów. Mogą to być słowa kluczowe i mogą zawierać znaki, które nie są dozwolone w identyfikatorach Transact-SQL. Jeśli podwójny cudzysłów (
"
) jest częścią identyfikatora, może być reprezentowany przez dwa podwójne cudzysłowy (""
).OFF
Identyfikatory nie mogą być w cudzysłowie i muszą być zgodne ze wszystkimi regułami Transact-SQL dla identyfikatorów. Literały mogą być rozdzielane znakami pojedynczego lub podwójnego cudzysłowu.
Program SQL Server umożliwia również rozdzielenie identyfikatorów nawiasami kwadratowymi ([
i ]
). Identyfikatory w nawiasach mogą być zawsze używane, niezależnie od ustawienia QUOTED_IDENTIFIER. For more information, see Database identifiers.
Po utworzeniu tabeli opcja IDENTYFIKATOR CYTOWANY jest zawsze przechowywana jako WŁ. w metadanych tabeli. Opcja jest przechowywana nawet wtedy, gdy opcja jest ustawiona na WARTOŚĆ OFF podczas tworzenia tabeli.
Ustawienia na poziomie połączenia ustawione przy użyciu instrukcji SET zastępują domyślne ustawienie bazy danych dla QUOTED_IDENTIFIER. Klienci ODBC i OLE DB wystawiają ustawienie instrukcji SET na poziomie połączenia QUOTED_IDENTIFIER domyślnie włączone. Klienci uruchamiają instrukcję podczas nawiązywania połączenia z wystąpieniem programu SQL Server. For more information, see SET QUOTED_IDENTIFIER.
You can determine this option's status by examining the is_quoted_identifier_on
column in the sys.databases catalog view. You can also determine the status by examining the IsQuotedIdentifiersEnabled
property of the DATABASEPROPERTYEX function.
RECURSIVE_TRIGGERS { ON | WYŁ. }
ON
Rekursywne wypalanie wyzwalaczy AFTER jest dozwolone.
OFF
You can determine this option's status by examining the
is_recursive_triggers_on
column in the sys.databases catalog view. You can also determine the status by examining theIsRecursiveTriggersEnabled
property of the DATABASEPROPERTYEX function.
Note
Nie można zapobiegać rekursji bezpośredniej tylko wtedy, gdy RECURSIVE_TRIGGERS jest ustawiona na wartość OFF. Aby wyłączyć rekursję pośrednią, należy również ustawić opcję serwera wyzwalaczy zagnieżdżonych na 0.
You can determine this option's status by examining the is_recursive_triggers_on
column in the sys.databases catalog view or the IsRecursiveTriggersEnabled
property of the DATABASEPROPERTYEX function.
< > target_recovery_time_option ::=
Określa częstotliwość pośrednich punktów kontrolnych dla poszczególnych baz danych. Starting with SQL Server 2016 (13.x) the default value for new databases is 1 minute, which indicates the database uses indirect checkpoints. W przypadku starszych wersji wartość domyślna to 0, co oznacza, że baza danych używa automatycznych punktów kontrolnych, których częstotliwość zależy od ustawienia interwału odzyskiwania wystąpienia serwera. Firma Microsoft zaleca 1 minutę dla większości systemów.
TARGET_RECOVERY_TIME = target_recovery_time { SECONDS | MINUTES }
target_recovery_time
Określa maksymalną granicę czasu odzyskiwania określonej bazy danych w przypadku awarii. target_recovery_time is type int.
SECONDS
Indicates that target_recovery_time is expressed as the number of seconds.
MINUTES
Indicates that target_recovery_time is expressed as the number of minutes.
For more information about indirect checkpoints, see Database checkpoints.
Z kończeniem <> ::=
Określa, kiedy wycofać niekompletne transakcje, gdy baza danych zostanie przeniesiona z jednego stanu do innego. Jeśli klauzula zakończenia zostanie pominięta, instrukcja ALTER DATABASE czeka na czas nieokreślony, jeśli w bazie danych istnieje blokada. Można określić tylko jedną klauzulę zakończenia i jest zgodna z klauzulami SET.
Note
Nie wszystkie opcje bazy danych używają klauzuli WITH <zakończenie>. For more information, see the table under Setting options of the "Remarks" section of this article.
ROLLBACK AFTER integer [SECONDS] | ROLLBACK IMMEDIATE
Określa, czy należy wycofać się po określonej liczbie sekund, czy natychmiast.
NO_WAIT
Określa, że żądanie kończy się niepowodzeniem, jeśli żądany stan bazy danych lub zmiana opcji nie może zakończyć się natychmiast. Ukończenie natychmiast oznacza, że nie trzeba czekać na transakcje do zatwierdzenia lub wycofania na własną rękę.
< > temporal_history_retention ::=
TEMPORAL_HISTORY_RETENTION { ON | WYŁ. }
Domyślnie włączone, ale także automatycznie ustaw wartość OFF po operacji przywracania do punktu w czasie. Aby uzyskać więcej informacji, w tym sposób włączania tego ustawienia, zobacz Jak skonfigurować zasady przechowywania.
ON
Default. Włącza zasady przechowywania tabel czasowych. Aby uzyskać więcej informacji, zobacz Zarządzanie przechowywaniem danych historycznych w tabelach czasowych z wersjami systemowymi.
OFF
Nie wykonuj czasowych zasad przechowywania historycznego.
Set options
To retrieve current settings for database options, use the sys.databases catalog view or DATABASEPROPERTYEX
Po ustawieniu opcji bazy danych nowe ustawienie zostanie zastosowane natychmiast.
Możesz zmienić wartości domyślne dla dowolnej z opcji bazy danych dla wszystkich nowo utworzonych baz danych. W tym celu zmień odpowiednią opcję bazy danych w bazie danych model
.
Nie wszystkie opcje bazy danych używają klauzuli< zakończenia WITH >lub można określić w połączeniu z innymi opcjami. W poniższej tabeli wymieniono te opcje oraz ich opcje i stan zakończenia.
Options category | Można określić z innymi opcjami | Może używać klauzuli <zakończenia with> |
---|---|---|
<auto_option> | Yes | No |
<change_tracking_option> | Yes | Yes |
<cursor_option> | Yes | No |
<db_encryption_option> | Yes | No |
<db_update_option> | Yes | Yes |
<db_user_access_option> | Yes | Yes |
<delayed_durability_option> | Yes | Yes |
<parameterization_option> | Yes | Yes |
ALLOW_SNAPSHOT_ISOLATION | No | No |
READ_COMMITTED_SNAPSHOT | No | Yes |
MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT | Yes | Yes |
DATE_CORRELATION_OPTIMIZATION | Yes | Yes |
<sql_option> | Yes | No |
<target_recovery_time_option> | No | Yes |
Examples
A. Ustaw bazę danych na READ_ONLY
Zmiana stanu bazy danych lub grupy plików na READ_ONLY lub READ_WRITE wymaga wyłącznego dostępu do bazy danych i może potrwać kilka sekund. Poniższy przykład ustawia bazę danych na tryb RESTRICTED_USER
w celu ograniczenia dostępu. Następnie przykład ustawia stan bazy danych AdventureWorks2022
na READ_ONLY
i zwraca dostęp do bazy danych wszystkim użytkownikom.
--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
Aby ustawić bazę danych z powrotem na tryb odczytu i zapisu:
--Connect to [database_name];
GO
ALTER DATABASE [database_name]
SET READ_WRITE
GO
To verify:
SELECT [name], user_access_desc, is_read_only FROM sys.databases
WHERE [name] = 'database_name'
GO
B. Włączanie izolacji migawek w bazie danych
W poniższym przykładzie jest włączona opcja struktury izolacji migawek dla bazy danych AdventureWorks2022
.
--Connect to [database_name]
GO
ALTER DATABASE [database_name]
SET ALLOW_SNAPSHOT_ISOLATION ON;
GO
Sprawdź stan snapshot_isolation_framework
w bazie danych.
--Connect to [database_name]
SELECT name, snapshot_isolation_state,
snapshot_isolation_state_desc AS description
FROM sys.databases
WHERE name = N'database_name';
GO
Zestaw wyników pokazuje, że platforma izolacji migawek jest włączona.
name | snapshot_isolation_state | description |
---|---|---|
[database_name] | 1 | ON |
C. Włączanie, modyfikowanie lub wyłączanie śledzenia zmian
Poniższy przykład umożliwia śledzenie zmian dla bazy danych AdventureWorks2022
i ustawia okres przechowywania na 2
dni.
--Connect to [database_name]
ALTER DATABASE [database_name]
SET CHANGE_TRACKING = ON
(AUTO_CLEANUP = ON, CHANGE_RETENTION = 2 DAYS);
W poniższym przykładzie pokazano, jak zmienić okres przechowywania na 3 dni.
--Connect to [database_name]
ALTER DATABASE [database_name]
SET CHANGE_TRACKING (CHANGE_RETENTION = 3 DAYS);
W poniższym przykładzie pokazano, jak wyłączyć śledzenie zmian dla bazy danych AdventureWorks2022
.
--Connect to [database_name]
ALTER DATABASE [database_name]
SET CHANGE_TRACKING = OFF;
D. Włączanie magazynu zapytań
Poniższy przykład umożliwia magazyn zapytań i konfiguruje parametry magazynu zapytań.
--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. Włączanie magazynu zapytań ze statystykami oczekiwania
Poniższy przykład umożliwia magazyn zapytań i konfiguruje jego parametry.
--Connect to [database_name]
ALTER DATABASE [database_name]
SET QUERY_STORE = ON
(
OPERATION_MODE = READ_WRITE,
CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = 90 ),
DATA_FLUSH_INTERVAL_SECONDS = 900,
MAX_STORAGE_SIZE_MB = 1024,
INTERVAL_LENGTH_MINUTES = 60,
SIZE_BASED_CLEANUP_MODE = AUTO,
MAX_PLANS_PER_QUERY = 200,
WAIT_STATS_CAPTURE_MODE = ON
);
F. Włączanie magazynu zapytań przy użyciu niestandardowych opcji zasad przechwytywania
Poniższy przykład umożliwia magazyn zapytań i konfiguruje jego parametry.
--Connect to [database_name]
ALTER DATABASE [database_name]
SET QUERY_STORE = ON
(
OPERATION_MODE = READ_WRITE,
CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = 90 ),
DATA_FLUSH_INTERVAL_SECONDS = 900,
MAX_STORAGE_SIZE_MB = 1024,
INTERVAL_LENGTH_MINUTES = 60,
SIZE_BASED_CLEANUP_MODE = AUTO,
MAX_PLANS_PER_QUERY = 200,
WAIT_STATS_CAPTURE_MODE = ON,
QUERY_CAPTURE_MODE = CUSTOM,
QUERY_CAPTURE_POLICY = (
STALE_CAPTURE_POLICY_THRESHOLD = 24 HOURS,
EXECUTION_COUNT = 30,
TOTAL_COMPILE_CPU_TIME_MS = 1000,
TOTAL_EXECUTION_CPU_TIME_MS = 100
)
);
Related content
- Statistics
- DATABASEPROPERTYEX (Transact-SQL)
- sys.databases
- sys.data_spaces
- sys.database_automatic_tuning_options
- sys.database_automatic_tuning_mode
poziomu zgodności z usługą ALTER DATABASE - dublowania bazy danych ALTER DATABASE
- CREATE DATABASE
- włączanie i wyłączanie śledzenia zmian (SQL Server)
- DROP DATABASE (Transact-SQL)
- USTAWIĆ POZIOM IZOLACJI TRANSAKCJI (Transact-SQL)
- sp_configure
- Najlepsze rozwiązania dotyczące monitorowania obciążeń za pomocą magazynu zapytań
- wskazówki dotyczące magazynu zapytań
* SQL Managed Instance *
Azure SQL Managed Instance
Poziomy zgodności to
Note
Many database set options can be configured for the current session by using SET Statements and are often configured by applications when they connect. Opcje zestawu na poziomie sesji zastępują wartości ALTER DATABASE SET
. Opcje bazy danych opisane w poniższych sekcjach to wartości, które można ustawić dla sesji, które nie zapewniają jawnie innych wartości opcji zestawu.
Syntax
ALTER DATABASE { database_name | Current }
SET
{
<optionspec> [ ,...n ]
}
;
<optionspec> ::=
{
<auto_option>
| <change_tracking_option>
| <cursor_option>
| <db_encryption_option>
| <delayed_durability_option>
| <parameterization_option>
| <query_store_options>
| <snapshot_option>
| <sql_option>
| <target_recovery_time_option>
| <termination>
| <temporal_history_retention>
}
;
<auto_option> ::=
{
AUTO_CREATE_STATISTICS { OFF | ON [ ( INCREMENTAL = { ON | OFF } ) ] }
| AUTO_SHRINK { ON | OFF }
| AUTO_UPDATE_STATISTICS { ON | OFF }
| AUTO_UPDATE_STATISTICS_ASYNC { ON | OFF }
}
<automatic_tuning_option> ::=
{
AUTOMATIC_TUNING ( FORCE_LAST_GOOD_PLAN = { DEFAULT | ON | OFF } )
}
<change_tracking_option> ::=
{
CHANGE_TRACKING
{
= OFF
| = ON [ ( <change_tracking_option_list > [,...n] ) ]
| ( <change_tracking_option_list> [,...n] )
}
}
<change_tracking_option_list> ::=
{
AUTO_CLEANUP = { ON | OFF }
| CHANGE_RETENTION = retention_period { DAYS | HOURS | MINUTES }
}
<cursor_option> ::=
{
CURSOR_CLOSE_ON_COMMIT { ON | OFF }
}
<db_encryption_option> ::=
ENCRYPTION { ON | OFF }
<delayed_durability_option> ::=DELAYED_DURABILITY = { DISABLED | ALLOWED | FORCED }
<parameterization_option> ::=
PARAMETERIZATION { SIMPLE | FORCED }
<query_store_options> ::=
{
QUERY_STORE
{
= OFF
| = ON [ ( <query_store_option_list> [,... n] ) ]
| ( < query_store_option_list> [,... n] )
| CLEAR [ ALL ]
}
}
<query_store_option_list> ::=
{
OPERATION_MODE = { READ_WRITE | READ_ONLY }
| CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = number )
| DATA_FLUSH_INTERVAL_SECONDS = number
| MAX_STORAGE_SIZE_MB = number
| INTERVAL_LENGTH_MINUTES = number
| SIZE_BASED_CLEANUP_MODE = { AUTO | OFF }
| QUERY_CAPTURE_MODE = { ALL | AUTO | CUSTOM | NONE }
| MAX_PLANS_PER_QUERY = number
| WAIT_STATS_CAPTURE_MODE = { ON | OFF }
| QUERY_CAPTURE_POLICY = ( <query_capture_policy_option_list> [,...n] )
}
<query_capture_policy_option_list> :: =
{
STALE_CAPTURE_POLICY_THRESHOLD = number { DAYS | HOURS }
| EXECUTION_COUNT = number
| TOTAL_COMPILE_CPU_TIME_MS = number
| TOTAL_EXECUTION_CPU_TIME_MS = number
}
<snapshot_option> ::=
{
ALLOW_SNAPSHOT_ISOLATION { ON | OFF }
| READ_COMMITTED_SNAPSHOT { ON | OFF }
| MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT { ON | OFF }
}
<sql_option> ::=
{
ANSI_NULL_DEFAULT { ON | OFF }
| ANSI_NULLS { ON | OFF }
| ANSI_PADDING { ON | OFF }
| ANSI_WARNINGS { ON | OFF }
| ARITHABORT { ON | OFF }
| COMPATIBILITY_LEVEL = { 170 | 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 }
Arguments
database_name
Nazwa bazy danych, która ma zostać zmodyfikowana.
CURRENT
CURRENT
uruchamia akcję w bieżącej bazie danych.
CURRENT
nie jest obsługiwana dla wszystkich opcji we wszystkich kontekstach. Jeśli CURRENT
się nie powiedzie, podaj nazwę bazy danych.
< > auto_option ::=
Steruje opcjami automatycznymi.
AUTO_CREATE_STATISTICS { ON | WYŁ. }
ON
Optymalizator zapytań tworzy statystyki dotyczące pojedynczych kolumn w predykatach zapytań, w razie potrzeby, aby poprawić plany zapytań i wydajność zapytań. Te statystyki jednokolumna są tworzone podczas kompilowania zapytań przez optymalizator zapytań. Statystyki z jedną kolumną są tworzone tylko w kolumnach, które nie są jeszcze pierwszą kolumną istniejącego obiektu statystyk.
Wartość domyślna to WŁĄCZONE. Zalecamy użycie domyślnego ustawienia dla większości baz danych.
OFF
Optymalizator zapytań nie tworzy statystyk dotyczących pojedynczych kolumn w predykatach zapytań podczas kompilowania zapytań. Ustawienie tej opcji na wartość OFF może spowodować nieoptymalne plany zapytań i obniżoną wydajność zapytań.
You can determine this option's status by examining the
is_auto_create_stats_on
column in the sys.databases catalog view. You can also determine the status by examining theIsAutoCreateStatistics
property of the DATABASEPROPERTYEX function.For more information, see the "Statistics options" section in Statistics.
INCREMENTAL = ON | OD
Ustaw wartość AUTO_CREATE_STATISTICS na WŁ., a następnie ustaw wartość INCREMENTAL na WŁ. To ustawienie tworzy automatycznie utworzone statystyki jako przyrostowe zawsze, gdy są obsługiwane statystyki przyrostowe. Wartość domyślna to OFF. For more information, see CREATE STATISTICS.
AUTO_SHRINK { ON | WYŁ. }
ON
Pliki bazy danych są kandydatami do okresowego zmniejszania. Jeśli nie masz określonego wymagania, nie należy ustawiać opcji AUTO_SHRINK bazy danych na WŁ. Aby uzyskać więcej informacji, zobacz Zmniejszanie bazy danych.
Zarówno plik danych, jak i pliki dziennika mogą być automatycznie zmniejszane. AUTO_SHRINK zmniejsza rozmiar dziennika transakcji tylko w przypadku ustawienia bazy danych na model odzyskiwania SIMPLE lub kopii zapasowej dziennika. W przypadku ustawienia wyłączone pliki bazy danych nie są automatycznie zmniejszane podczas okresowych testów dla nieużywanego miejsca.
Opcja AUTO_SHRINK powoduje, że pliki są zmniejszane, gdy ponad 25 procent pliku zawiera nieużywane miejsce. Opcja powoduje zmniejszenie pliku do jednego z dwóch rozmiarów. Zmniejsza się w zależności od tego, co jest większe:
- Rozmiar, w którym 25 procent pliku jest nieużywane miejsce
- Rozmiar pliku podczas jego tworzenia
Nie można zmniejszyć bazy danych tylko do odczytu.
OFF
Pliki bazy danych nie są automatycznie zmniejszane podczas okresowych testów dla nieużywanego miejsca.
You can determine this option's status by examining the is_auto_shrink_on
column in the sys.databases catalog view. You can also determine the status by examining the IsAutoShrink
property of the DATABASEPROPERTYEX function.
Note
Opcja AUTO_SHRINK nie jest dostępna w zawartej bazie danych.
AUTO_UPDATE_STATISTICS { ON | WYŁ. }
ON
Określa, że optymalizator zapytań aktualizuje statystyki, gdy są używane przez zapytanie i kiedy mogą być nieaktualne. Statystyki stają się nieaktualne po wstawieniu, aktualizacji, usunięciu lub scalaniu operacji zmiany rozkładu danych w tabeli lub widoku indeksowanym. Optymalizator zapytań określa, kiedy statystyki mogą być nieaktualne, zliczając liczbę modyfikacji danych od ostatniej aktualizacji statystyk i porównując liczbę modyfikacji do progu. Próg jest oparty na liczbie wierszy w tabeli lub w widoku indeksowanym.
Optymalizator zapytań sprawdza nieaktualne statystyki przed skompilowanie zapytania i uruchomienie buforowanego planu zapytania. Optymalizator zapytań używa kolumn, tabel i indeksowanych widoków w predykacie zapytania, aby określić, które statystyki mogą być nieaktualne. Optymalizator zapytań określa te informacje przed skompilowanie zapytania. Przed uruchomieniem buforowanego planu zapytania aparat bazy danych sprawdza, czy plan zapytania odwołuje się up-to-date statistics.
Opcja AUTO_UPDATE_STATISTICS dotyczy statystyk utworzonych dla indeksów, pojedynczych kolumn w predykatach zapytań i statystyk tworzonych przy użyciu instrukcji CREATE STATISTICS. Ta opcja dotyczy również przefiltrowanych statystyk.
Wartość domyślna to WŁĄCZONE. Zalecamy użycie domyślnego ustawienia dla większości baz danych.
Użyj opcji AUTO_UPDATE_STATISTICS_ASYNC, aby określić, czy statystyki są aktualizowane synchronicznie, czy asynchronicznie.
OFF
Określa, że optymalizator zapytań nie aktualizuje statystyk podczas ich użycia przez zapytanie. Optymalizator zapytań nie aktualizuje również statystyk, gdy mogą być nieaktualne. Ustawienie tej opcji na wartość OFF może spowodować nieoptymalne plany zapytań i obniżoną wydajność zapytań.
You can determine this option's status by examining the is_auto_update_stats_on
column in the sys.databases catalog view. You can also determine the status by examining the IsAutoUpdateStatistics
property of the DATABASEPROPERTYEX function.
For more information, see the section "Using the database-wide statistics options" in Statistics.
AUTO_UPDATE_STATISTICS_ASYNC { ON | WYŁ. }
ON
Określa, że aktualizacje statystyk dla opcji AUTO_UPDATE_STATISTICS są asynchroniczne. Optymalizator zapytań nie czeka na ukończenie aktualizacji statystyk przed skompilowanie zapytań.
Ustawienie tej opcji na WARTOŚĆ WŁĄCZONE nie ma wpływu, chyba że AUTO_UPDATE_STATISTICS jest ustawiona na WARTOŚĆ WŁĄCZONE.
Domyślnie opcja AUTO_UPDATE_STATISTICS_ASYNC jest ustawiona na WYŁĄCZONE, a optymalizator zapytań aktualizuje statystyki synchronicznie.
OFF
Określa, że aktualizacje statystyk dla opcji AUTO_UPDATE_STATISTICS są synchroniczne. Optymalizator zapytań czeka na ukończenie aktualizacji statystyk przed skompilowanie zapytań.
Ustawienie tej opcji na WYŁ. nie ma wpływu, chyba że AUTO_UPDATE_STATISTICS jest ustawiona na WARTOŚĆ WŁĄCZONE.
You can determine this option's status by examining the is_auto_update_stats_async_on
column in the sys.databases catalog view.
For more information that describes when to use synchronous or asynchronous statistics updates, see the section "Using the database-wide statistics options" in Statistics.
< > automatic_tuning_option ::=
Controls automatic options for Automatic tuning.
FORCE_LAST_GOOD_PLAN = { DEFAULT | WŁ. | WYŁ. }
Enables or disables FORCE_LAST_GOOD_PLAN
Automatic tuning option.
DEFAULT
Wartość domyślna usługi Azure SQL Managed Instance to ON.
ON
Aparat bazy danych automatycznie wymusza ostatni znany dobry plan na Transact-SQL zapytaniach, w których nowy plan zapytania powoduje regresję wydajności. Aparat bazy danych stale monitoruje wydajność zapytań Transact-SQL zapytania przy użyciu wymuszonego planu. Jeśli wystąpi wzrost wydajności, aparat bazy danych nadal korzysta z ostatniego znanego dobrego planu. Jeśli nie zostanie wykryty wzrost wydajności, aparat bazy danych utworzy nowy plan zapytania. The statement fails if the Query Store isn't enabled, or isn't in Read-Write mode. Jest to wartość domyślna.
OFF
The Database Engine reports potential query performance regressions caused by query plan changes in sys.dm_db_tuning_recommendations view. Jednak te zalecenia nie są stosowane automatycznie. Użytkownicy mogą monitorować aktywne zalecenia i rozwiązywać zidentyfikowane problemy, stosując Transact-SQL skrypty wyświetlane w widoku.
< > change_tracking_option ::=
Steruje opcjami śledzenia zmian. Możesz włączyć śledzenie zmian, ustawić opcje, opcje zmiany i wyłączyć śledzenie zmian. For examples, see the Examples section later in this article.
ON
Włącza śledzenie zmian dla bazy danych. Po włączeniu śledzenia zmian można również ustawić opcje AUTOMATYCZNEGO OCZYSZCZANIA i PRZECHOWYWANIA ZMIAN.
AUTO_CLEANUP = { ON | WYŁ. }
ON
Informacje o śledzeniu zmian są automatycznie usuwane po określonym okresie przechowywania.
OFF
Dane śledzenia zmian nie są usuwane z bazy danych.
CHANGE_RETENTION = retention_period { DAYS | HOURS | MINUTES }
Określa minimalny okres przechowywania informacji o śledzeniu zmian w bazie danych. Dane są usuwane tylko wtedy, gdy wartość AUTO_CLEANUP jest włączona.
retention_period is an integer that specifies the numerical component of the retention period.
The default retention period is 2 days. Minimalny okres przechowywania wynosi 1 minutę. The default retention type is DAYS.
OFF
Wyłącza śledzenie zmian dla bazy danych. Wyłącz śledzenie zmian we wszystkich tabelach przed wyłączeniem śledzenia zmian w bazie danych.
< > cursor_option ::=
Steruje opcjami kursora.
CURSOR_CLOSE_ON_COMMIT { ON | WYŁ. }
ON
Wszystkie kursory otwierane po zatwierdzeniu lub wycofaniu transakcji zostaną zamknięte.
OFF
Kursory pozostają otwarte po zatwierdzeniu transakcji; wycofywanie transakcji zamyka wszystkie kursory z wyjątkiem tych zdefiniowanych jako INSENSITIVE lub STATIC.
Ustawienia na poziomie połączenia ustawione przy użyciu instrukcji SET zastępują domyślne ustawienie bazy danych dla CURSOR_CLOSE_ON_COMMIT. Klienci ODBC i OLE DB domyślnie wystawiają ustawienie instrukcji SET na poziomie połączenia CURSOR_CLOSE_ON_COMMIT wyłączone dla sesji. Klienci uruchamiają instrukcję podczas nawiązywania połączenia z wystąpieniem programu SQL Server. For more information, see SET CURSOR_CLOSE_ON_COMMIT.
You can determine this option's status by examining the is_cursor_close_on_commit_on
column in the sys.databases catalog view or the IsCloseCursorsOnCommitEnabled property of the DATABASEPROPERTYEX function. Kursor jest niejawnie cofnięty tylko po rozłączeniu. For more information, see DECLARE CURSOR.
< > db_encryption_option ::=
Steruje stanem szyfrowania bazy danych.
SZYFROWANIE { WŁĄCZONE | WYŁ. }
Ustawia bazę danych do szyfrowania (WŁ.) lub niezaszyfrowanej (OFF). Aby uzyskać więcej informacji na temat szyfrowania bazy danych, zobacz transparent data encryption (TDE)i Transparent Data Encryption for Azure SQL Database, Azure SQL Managed Instance i Azure Synapse Analytics.
Po włączeniu szyfrowania na poziomie bazy danych wszystkie grupy plików są szyfrowane. Wszystkie nowe grupy plików dziedziczą zaszyfrowaną właściwość. Jeśli jakiekolwiek grupy plików w bazie danych są ustawione na WARTOŚĆ TYLKO DO ODCZYTU, operacja szyfrowania bazy danych zakończy się niepowodzeniem.
You can see the encryption state of the database by using the sys.dm_database_encryption_keys dynamic management view.
< > delayed_durability_option ::=
Określa, czy transakcje zatwierdzają w pełni trwałe, czy opóźnione.
DISABLED
Wszystkie transakcje po
SET DISABLED
są w pełni trwałe. Wszelkie opcje trwałości ustawione w niepodzielnej instrukcji bloku lub zatwierdzenia są ignorowane.ALLOWED
Wszystkie transakcje po
SET ALLOWED
są w pełni trwałe lub opóźnione, w zależności od opcji trwałości ustawionej w instrukcji bloku atomowego lub zatwierdzenia.FORCED
Wszystkie transakcje po
SET FORCED
są opóźnione. Wszelkie opcje trwałości ustawione w niepodzielnej instrukcji bloku lub zatwierdzenia są ignorowane.
< > PARAMETERIZATION_option ::=
Steruje opcją parametryzacji.
PARAMETRYZACJA { SIMPLE | WYMUSZONE }
SIMPLE
Zapytania są sparametryzowane na podstawie domyślnego zachowania bazy danych.
FORCED
Program SQL Server sparametryzuje wszystkie zapytania w bazie danych.
The current setting of this option can be determined by examining the is_parameterization_forced
column in the sys.databases catalog view.
< > query_store_options ::=
WŁ. | OFF | CLEAR [ WSZYSTKO ]
Określa, czy magazyn zapytań jest włączony w tej bazie danych, a także kontroluje usuwanie zawartości magazynu zapytań.
ON
Włącza magazyn zapytań.
OFF
Wyłącza magazyn zapytań. Jest to wartość domyślna.
CLEAR
Usuń zawartość magazynu zapytań.
OPERATION_MODE
Opisuje tryb działania magazynu zapytań. Prawidłowe wartości to READ_ONLY i READ_WRITE. W trybie READ_WRITE magazyn zapytań zbiera i utrzymuje informacje o statystykach wykonywania i planu zapytań. W trybie READ_ONLY informacje można odczytywać z magazynu zapytań, ale nie są dodawane nowe informacje. Jeśli wyczerpano maksymalną przydzieloną przestrzeń magazynu zapytań, magazyn zapytań zmieni tryb działania na READ_ONLY.
CLEANUP_POLICY
Opisuje zasady przechowywania danych magazynu zapytań. STALE_QUERY_THRESHOLD_DAYS określa liczbę dni, dla których informacje dotyczące zapytania są przechowywane w magazynie zapytań. STALE_QUERY_THRESHOLD_DAYS is type bigint. Wartość domyślna to 30. For SQL Database Basic edition, default is 7 days.
DATA_FLUSH_INTERVAL_SECONDS
Określa częstotliwość, z jaką dane zapisywane w magazynie zapytań są utrwalane na dysku. Aby zoptymalizować wydajność, dane zebrane przez magazyn zapytań są asynchronicznie zapisywane na dysku. Częstotliwość, z jaką odbywa się ten transfer asynchroniczny, jest konfigurowana przy użyciu argumentu DATA_FLUSH_INTERVAL_SECONDS. DATA_FLUSH_INTERVAL_SECONDS is type bigint. The default value is 900 (15 min).
MAX_STORAGE_SIZE_MB
Określa miejsce przydzielone do magazynu zapytań. MAX_STORAGE_SIZE_MB is type bigint. The default value is 100 MB.
MAX_STORAGE_SIZE_MB
limit nie jest ściśle wymuszany. Rozmiar magazynu jest sprawdzany tylko wtedy, gdy magazyn zapytań zapisuje dane na dysku. Ten interwał jest ustawiany przez opcję DATA_FLUSH_INTERVAL_SECONDS
lub opcję okna dialogowego Magazyn zapytań programu Management Studio Interwał opróżniania danych. Wartość domyślna interwału to 900 sekund (lub 15 minut).
Jeśli magazyn zapytań naruszył limit MAX_STORAGE_SIZE_MB
między sprawdzaniem rozmiaru magazynu, przechodzi do trybu tylko do odczytu. Jeśli SIZE_BASED_CLEANUP_MODE
jest włączona, zostanie również wyzwolony mechanizm oczyszczania w celu wymuszenia limitu MAX_STORAGE_SIZE_MB
.
Po wyczyszczonej ilości miejsca tryb magazynu zapytań automatycznie przełącza się z powrotem do odczytu i zapisu.
Important
- If you think that your workload capture needs more than 10 GB of disk space, you should probably rethink and optimize your workload to reuse query plans (for example using forced parameterization, or adjust the Query Store configurations.
- Począwszy od programu SQL Server 2019 (15.x) i usługi Azure SQL Database, można ustawić
QUERY_CAPTURE_MODE
na WARTOŚĆ CUSTOM, aby uzyskać dodatkową kontrolę nad zasadami przechwytywania zapytań. -
MAX_STORAGE_SIZE_MB
ustawienie limitu wynosi 10 240 MB w usłudze Azure SQL Managed Instance.
INTERVAL_LENGTH_MINUTES
Określa interwał czasu, w którym dane statystyk wykonywania środowiska uruchomieniowego są agregowane do magazynu zapytań. Aby zoptymalizować użycie miejsca, statystyki wykonywania środowiska uruchomieniowego w magazynie statystyk środowiska uruchomieniowego są agregowane w stałym przedziale czasu. To stałe okno czasowe jest konfigurowane przy użyciu argumentu INTERVAL_LENGTH_MINUTES. INTERVAL_LENGTH_MINUTES is type bigint. The default value is 60.
SIZE_BASED_CLEANUP_MODE = { AUTO | WYŁ. }
Określa, czy czyszczenie jest automatycznie aktywowane, gdy łączna ilość danych zbliża się do maksymalnego rozmiaru.
OFF
Czyszczenie oparte na rozmiarach nie jest automatycznie aktywowane.
AUTO
Size-based cleanup is automatically activated when size on disk reaches 90% of max_storage_size_mb. Oczyszczanie oparte na rozmiarach usuwa najpierw najmniej kosztowne i najstarsze zapytania. It stops at approximately 80% of max_storage_size_mb. Jest to domyślna wartość konfiguracji.
SIZE_BASED_CLEANUP_MODE is type nvarchar.
QUERY_CAPTURE_MODE { ALL | AUTO | NIESTANDARDOWE | BRAK }
Wyznacza aktualnie aktywny tryb przechwytywania zapytań.
ALL
Wszystkie zapytania są przechwytywane.
AUTO
Przechwyć odpowiednie zapytania na podstawie liczby wykonań i użycia zasobów. Jest to domyślna wartość konfiguracji usługi Azure SQL Database.
NONE
Zatrzymaj przechwytywanie nowych zapytań. Magazyn zapytań nadal zbiera statystyki kompilacji i środowiska uruchomieniowego dla zapytań, które zostały już przechwycone. Użyj tej konfiguracji z ostrożnością, ponieważ możesz przegapić przechwytywanie ważnych zapytań.
QUERY_CAPTURE_MODE is type nvarchar.
MAX_PLANS_PER_QUERY
Liczba całkowita reprezentująca maksymalną liczbę planów obsługiwanych dla każdego zapytania. MAX_PLANS_PER_QUERY is type int. The default value is 200.
WAIT_STATS_CAPTURE_MODE { ON | WYŁ. }
Określa, czy statystyki oczekiwania są przechwytywane na zapytanie.
ON
Przechwytywane są informacje statystyczne dotyczące oczekiwania na zapytanie. Ta wartość jest wartością domyślną konfiguracji.
OFF
Informacje o statystykach oczekiwania na zapytanie nie są przechwytywane.
< > query_capture_policy_option_list :: =
Steruje opcjami zasad przechwytywania magazynu zapytań. Z wyjątkiem STALE_CAPTURE_POLICY_THRESHOLD te opcje definiują warunki OR, które muszą wystąpić, aby zapytania były przechwytywane w zdefiniowanej wartości progu nieodświeżania zasad przechwytywania.
STALE_CAPTURE_POLICY_THRESHOLD = integer { DAYS | HOURS }
Definiuje okres interwału oceny, aby określić, czy zapytanie powinno zostać przechwycone. Wartość domyślna to 1 dzień i można ją ustawić z zakresu od 1 godziny do siedmiu dni.
EXECUTION_COUNT = integer
Definiuje liczbę wykonań zapytania w okresie oceny. Wartość domyślna to 30, co oznacza, że dla domyślnego progu zasad przechwytywania nieaktualnego zapytanie musi wykonać co najmniej 30 razy w ciągu jednego dnia, aby utrwało się w magazynie zapytań. EXECUTION_COUNT is type int.
TOTAL_COMPILE_CPU_TIME_MS = integer
Definiuje łączny czas kompilacji, który upłynął, używany przez zapytanie w okresie oceny. Wartość domyślna to 1000, co oznacza, że dla domyślnego progu zasad przechwytywania nieaktualnego zapytanie musi mieć łącznie co najmniej jedną sekundę czasu procesora CPU spędzonego podczas kompilacji zapytania w ciągu jednego dnia, aby utrwało się w magazynie zapytań. TOTAL_COMPILE_CPU_TIME_MS is type int.
TOTAL_EXECUTION_CPU_TIME_MS = integer
Definiuje całkowity czas wykonywania, który upłynął, używany przez zapytanie w okresie oceny. Wartość domyślna to 100, co oznacza, że dla domyślnego progu zasad przechwytywania nieaktualnego zapytanie musi mieć łącznie co najmniej 100 ms czasu procesora CPU spędzonego podczas wykonywania w ciągu jednego dnia, aby utrwało się w magazynie zapytań. TOTAL_EXECUTION_CPU_TIME_MS is type int.
< > snapshot_option ::=
Określa poziom izolacji transakcji.
ALLOW_SNAPSHOT_ISOLATION { ON | WYŁ. }
ON
Włącza opcję Migawka na poziomie bazy danych. Po jej włączeniu instrukcje DML zaczynają generować wersje wierszy nawet wtedy, gdy żadna transakcja nie używa izolacji migawki. Po włączeniu tej opcji transakcje mogą określać poziom izolacji transakcji MIGAWKI. Gdy transakcja jest uruchamiana na poziomie izolacji migawki, wszystkie instrukcje widzą migawkę danych, ponieważ istnieją na początku transakcji. Jeśli transakcja uruchomiona na poziomie izolacji MIGAWKi uzyskuje dostęp do danych w wielu bazach danych, ALLOW_SNAPSHOT_ISOLATION musi być ustawiona na wartość WŁ. we wszystkich bazach danych lub każda instrukcja w transakcji musi używać wskazówek blokowania dla dowolnego odwołania w klauzuli FROM do tabeli w bazie danych, w której ALLOW_SNAPSHOT_ISOLATION jest wyłączona.
OFF
Wyłącza opcję Migawka na poziomie bazy danych. Transakcje nie mogą określać poziomu izolacji transakcji SNAPSHOT.
Po ustawieniu ALLOW_SNAPSHOT_ISOLATION na nowy stan (od WŁ. do WYŁ. lub OD WŁ. do WŁ.), funkcja ALTER DATABASE nie zwraca kontroli do obiektu wywołującego, dopóki wszystkie istniejące transakcje w bazie danych nie zostaną zatwierdzone. Jeśli baza danych jest już w stanie określonym w instrukcji ALTER DATABASE, kontrolka jest natychmiast zwracana do wywołującego. If the ALTER DATABASE statement doesn't return quickly, use sys.dm_tran_active_snapshot_database_transactions to determine whether there are long-running transactions. Jeśli instrukcja ALTER DATABASE zostanie anulowana, baza danych pozostaje w stanie, w którym została uruchomiona. The sys.databases catalog view indicates the state of snapshot-isolation transactions in the database. Jeśli snapshot_isolation_state_desc = IN_TRANSITION_TO_ON
, instrukcja ALTER DATABASE ... ALLOW_SNAPSHOT_ISOLATION OFF
wstrzymuje sześć sekund i ponawia próbę wykonania operacji.
Nie można zmienić stanu ALLOW_SNAPSHOT_ISOLATION, jeśli baza danych jest w trybie OFFLINE.
Możesz zmienić ustawienia ALLOW_SNAPSHOT_ISOLATION dla baz danych master
, model
, msdb
i tempdb
. To ustawienie jest zachowywane za każdym razem, gdy wystąpienie aparatu bazy danych zostanie zatrzymane i ponownie uruchomione, jeśli zmienisz ustawienie dla tempdb
. Jeśli zmienisz ustawienie dla systemu model
bazy danych, to ustawienie stanie się domyślne dla wszystkich nowych baz danych, z wyjątkiem tempdb
.
Opcja jest domyślnie włączona dla baz danych master
i msdb
.
The current setting of this option can be determined by examining the snapshot_isolation_state
column in the sys.databases catalog view.
READ_COMMITTED_SNAPSHOT { ON | WYŁ. }
ON
Włącza opcję migawki Read-Committed na poziomie bazy danych. Po jej włączeniu instrukcje DML zaczynają generować wersje wierszy nawet wtedy, gdy żadna transakcja nie używa izolacji migawki. Po włączeniu tej opcji transakcje określające poziom izolacji READ COMMITTED używają przechowywania wersji wierszy zamiast blokowania. Wszystkie instrukcje widzą migawkę danych, ponieważ istnieją na początku instrukcji, gdy transakcja jest uruchamiana na poziomie izolacji READ COMMITTED.
OFF
Wyłącza opcję migawki Read-Committed na poziomie bazy danych. Transakcje określające poziom izolacji READ COMMITTED używają blokady.
Aby ustawić READ_COMMITTED_SNAPSHOT na WŁ. lub WYŁĄCZONE, nie musi istnieć żadne aktywne połączenia z bazą danych, z wyjątkiem połączenia z uruchomionym poleceniem ALTER DATABASE. Jednak baza danych nie musi być w trybie pojedynczego użytkownika. Nie można zmienić stanu tej opcji, gdy baza danych jest w trybie OFFLINE.
READ_COMMITTED_SNAPSHOT nie można włączyć dla baz danych systemu master
, tempdb
lub msdb
. Jeśli zmienisz ustawienie dla systemu model
bazy danych, to ustawienie stanie się domyślne dla wszystkich nowych baz danych utworzonych, z wyjątkiem tempdb
.
The current setting of this option can be determined by examining the is_read_committed_snapshot_on
column in the sys.databases catalog view.
Warning
Po utworzeniu tabeli z TRWAŁOŚCI = SCHEMA_ONLY, a READ_COMMITTED_SNAPSHOT zostanie następnie zmieniona przy użyciu ALTER DATABASE, dane w tabeli zostaną utracone.
MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT { ON | WYŁ. }
ON
Gdy poziom izolacji transakcji jest ustawiony na dowolny poziom izolacji niższy niż SNAPSHOT, wszystkie interpretowane operacje Transact-SQL w tabelach zoptymalizowanych pod kątem pamięci są uruchamiane w ramach izolacji migawki. Przykłady poziomów izolacji niższych niż migawka to READ COMMITTED lub READ UNCOMMITTED. Te operacje są uruchamiane, czy poziom izolacji transakcji jest ustawiany jawnie na poziomie sesji, czy jest używany niejawnie.
OFF
Nie podnosi poziomu izolacji transakcji dla interpretowanych operacji Transact-SQL w tabelach zoptymalizowanych pod kątem pamięci.
Nie można zmienić stanu MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT, jeśli baza danych jest w trybie OFFLINE.
Wartość domyślna to OFF.
The current setting of this option can be determined by examining the is_memory_optimized_elevate_to_snapshot_on
column in the sys.databases catalog view.
< > sql_option ::=
Steruje opcjami zgodności ANSI na poziomie bazy danych.
ANSI_NULL_DEFAULT { ON | WYŁ. }
Określa wartość domyślną NULL lub NOT NULL kolumny lub typu zdefiniowanego przez użytkownika CLR, dla którego wartość null nie jest jawnie zdefiniowana w instrukcjach CREATE TABLE lub ALTER TABLE. Kolumny zdefiniowane z ograniczeniami są zgodne z regułami ograniczeń, niezależnie od tego, jakie może być to ustawienie.
ON
Wartość domyślna to NULL.
OFF
Wartość domyślna to NOT NULL.
Ustawienia na poziomie połączenia ustawione przy użyciu instrukcji SET zastępują domyślne ustawienie na poziomie bazy danych dla ANSI_NULL_DEFAULT. Klienci ODBC i OLE DB domyślnie wystawiają ustawienie instrukcji SET na poziomie połączenia ANSI_NULL_DEFAULT włączone dla sesji. Klienci uruchamiają instrukcję podczas nawiązywania połączenia z wystąpieniem programu SQL Server. For more information, see SET ANSI_NULL_DFLT_ON.
W przypadku zgodności ze standardem ANSI ustawienie opcji bazy danych ANSI_NULL_DEFAULT na WŁ. powoduje zmianę domyślnej wartości null bazy danych.
You can determine this option's status by examining the is_ansi_null_default_on
column in the sys.databases catalog view. You can also determine the status by examining the IsAnsiNullDefault
property of the DATABASEPROPERTYEX function.
ANSI_NULLS { ON | WYŁ. }
ON
Wszystkie porównania z wartością null mają wartość UNKNOWN.
OFF
Porównania wartości innych niż Unicode z wartością null mają wartość TRUE, jeśli obie wartości mają wartość NULL.
Important
W przyszłej wersji programu SQL Server ANSI_NULLS zawsze będzie włączona, a wszystkie aplikacje, które jawnie ustawią opcję WYŁ., spowodują wystąpienie błędu. Unikaj używania tej funkcji w nowych pracach programistycznych i zaplanuj modyfikowanie aplikacji, które obecnie korzystają z tej funkcji.
Ustawienia na poziomie połączenia ustawione przy użyciu instrukcji SET zastępują domyślne ustawienie bazy danych dla ANSI_NULLS. Klienci ODBC i OLE DB domyślnie wystawiają ustawienie instrukcji SET na poziomie połączenia ANSI_NULLS włączone dla sesji. Klienci uruchamiają instrukcję podczas nawiązywania połączenia z wystąpieniem programu SQL Server. For more information, see SET ANSI_NULLS.
Important
USTAW ANSI_NULLS należy również ustawić wartość WŁĄCZONE podczas tworzenia lub wprowadzania zmian w indeksach w obliczonych kolumnach lub indeksowanych widokach.
You can determine this option's status by examining the is_ansi_nulls_on
column in the sys.databases catalog view. You can also determine the status by examining the IsAnsiNullsEnabled
property of the DATABASEPROPERTYEX function.
ANSI_PADDING { ON | WYŁ. }
ON
Ciągi są dopełniane tą samą długością przed konwersją. Also padded to the same length before inserting to a varchar or nvarchar data type.
OFF
Inserts trailing blanks in character values into varchar or nvarchar columns. Also leaves trailing zeros in binary values that are inserted into varbinary columns. Wartości nie są dopełniane do długości kolumny.
Po określeniu opcji WYŁ. to ustawienie ma wpływ tylko na definicję nowych kolumn.
Important
W przyszłej wersji programu SQL Server ANSI_PADDING zawsze będzie włączona, a wszystkie aplikacje, które jawnie ustawią opcję WYŁ., spowodują wystąpienie błędu. Unikaj używania tej funkcji w nowych pracach programistycznych i zaplanuj modyfikowanie aplikacji, które obecnie korzystają z tej funkcji. Zalecamy, aby zawsze ustawiać ANSI_PADDING na WŁ. ANSI_PADDING musi być włączony podczas tworzenia lub manipulowania indeksami w kolumnach obliczeniowych lub indeksowanych widokach.
char(n) and binary(n) columns that allow for nulls are padded to the column length when ANSI_PADDING is set to ON. Końcowe wartości puste i zera są przycinane, gdy ANSI_PADDING jest wyłączona. char(n) and binary(n) columns that don't allow nulls are always padded to the length of the column.
Ustawienia na poziomie połączenia ustawione przy użyciu instrukcji SET zastępują domyślne ustawienie na poziomie bazy danych dla ANSI_PADDING. Klienci ODBC i OLE DB domyślnie wystawiają ustawienie instrukcji SET na poziomie połączenia ANSI_PADDING włączone dla sesji. Klienci uruchamiają instrukcję podczas nawiązywania połączenia z wystąpieniem programu SQL Server. For more information, see SET ANSI_PADDING.
You can determine this option's status by examining the is_ansi_padding_on
column in the sys.databases catalog view. You can also determine the status by examining the IsAnsiPaddingEnabled
property of the DATABASEPROPERTYEX function.
ANSI_WARNINGS { ON | WYŁ. }
ON
Błędy lub ostrzeżenia są wystawiane, gdy wystąpią warunki, takie jak dzielenie przez zero. Błędy i ostrzeżenia są również wystawiane, gdy wartości null są wyświetlane w funkcjach agregujących.
OFF
Nie są wywoływane żadne ostrzeżenia, a wartości null są zwracane, gdy wystąpią warunki, takie jak dzielenie przez zero.
Important
Ustaw ANSI_WARNINGS należy ustawić wartość WŁĄCZONE podczas tworzenia lub wprowadzania zmian w indeksach w kolumnach obliczeniowych lub widokach indeksowanych.
Ustawienia na poziomie połączenia ustawione przy użyciu instrukcji SET zastępują domyślne ustawienie bazy danych dla ANSI_WARNINGS. Klienci ODBC i OLE DB domyślnie wystawiają ustawienie instrukcji SET na poziomie połączenia ANSI_WARNINGS włączone dla sesji. Klienci uruchamiają instrukcję podczas nawiązywania połączenia z wystąpieniem programu SQL Server. For more information, see SET ANSI_WARNINGS.
You can determine this option's status by examining the is_ansi_warnings_on
column in the sys.databases catalog view. You can also determine the status by examining the IsAnsiWarningsEnabled
property of the DATABASEPROPERTYEX function.
ARITHABORT { ON | WYŁ. }
ON
Zapytanie kończy się, gdy podczas wykonywania zapytania występuje błąd przepełnienia lub dzielenia przez zero.
OFF
Gdy wystąpi jeden z tych błędów, zostanie wyświetlony komunikat ostrzegawczy. Zapytanie, wsadowe lub transakcje nadal przetwarza się tak, jakby nie wystąpił błąd, nawet jeśli zostanie wyświetlone ostrzeżenie.
Important
SET ARITHABORT
Należy włączyć (WŁ.) podczas tworzenia lub wprowadzania zmian w indeksach w kolumnach obliczeniowych lub indeksowanych widokach.
You can determine this option's status by examining the is_arithabort_on
column in the sys.databases catalog view. You can also determine the status by examining the IsArithmeticAbortEnabled
property of the DATABASEPROPERTYEX function.
COMPATIBILITY_LEVEL = { 170 | 160 | 150 | 140 | 130 | 120 | 110 | 100 }
Aby uzyskać więcej informacji, zobacz
CONCAT_NULL_YIELDS_NULL { ON | WYŁ. }
ON
Wynikiem operacji łączenia jest wartość NULL, gdy jeden z operandów ma wartość NULL. Na przykład łączenie ciągu znaków "To jest" i wartość NULL powoduje wartość NULL, zamiast wartości "To jest".
OFF
Wartość null jest traktowana jako pusty ciąg znaków.
Important
CONCAT_NULL_YIELDS_NULL należy ustawić wartość WŁĄCZONE podczas tworzenia lub wprowadzania zmian w indeksach w kolumnach obliczeniowych lub indeksowanych widokach.
W przyszłej wersji programu SQL Server CONCAT_NULL_YIELDS_NULL zawsze będzie włączona, a wszystkie aplikacje, które jawnie ustawią opcję WYŁ., spowodują wystąpienie błędu. Unikaj używania tej funkcji w nowych pracach programistycznych i zaplanuj modyfikowanie aplikacji, które obecnie korzystają z tej funkcji.
Ustawienia na poziomie połączenia ustawione przy użyciu instrukcji SET zastępują domyślne ustawienie bazy danych dla CONCAT_NULL_YIELDS_NULL. Domyślnie klienci ODBC i OLE DB wystawiają ustawienie instrukcji SET na poziomie połączenia CONCAT_NULL_YIELDS_NULL na WŁ. dla sesji podczas nawiązywania połączenia z wystąpieniem programu SQL Server. For more information, see SET CONCAT_NULL_YIELDS_NULL.
You can determine this option's status by examining the is_concat_null_yields_null_on
column in the sys.databases catalog view. You can also determine the status by examining the IsNullConcat
property of the DATABASEPROPERTYEX function.
NUMERIC_ROUNDABORT { ON | WYŁ. }
ON
Błąd jest generowany, gdy w wyrażeniu występuje utrata precyzji.
OFF
Utrata dokładności nie generuje komunikatu o błędzie, a wynik jest zaokrąglany do dokładności kolumny lub zmiennej przechowującej wynik.
Important
NUMERIC_ROUNDABORT należy ustawić wartość OFF podczas tworzenia lub wprowadzania zmian w indeksach w kolumnach obliczeniowych lub indeksowanych widokach.
You can determine the status of this option in the is_numeric_roundabort_on
column in the sys.databases catalog view. You can also determine the status by examining the IsNumericRoundAbortEnabled
property of the DATABASEPROPERTYEX function.
QUOTED_IDENTIFIER { ON | WYŁ. }
ON
Podwójnego cudzysłowu można używać do ujęć identyfikatorów rozdzielanych.
Wszystkie ciągi rozdzielone podwójnym cudzysłowem są interpretowane jako identyfikatory obiektów. Identyfikatory cytowane nie muszą być zgodne z regułami Transact-SQL dla identyfikatorów. Mogą to być słowa kluczowe i mogą zawierać znaki, które nie są dozwolone w identyfikatorach Transact-SQL. Jeśli podwójny cudzysłów (
"
) jest częścią identyfikatora, może być reprezentowany przez dwa podwójne cudzysłowy (""
).OFF
Identyfikatory nie mogą być w cudzysłowie i muszą być zgodne ze wszystkimi regułami Transact-SQL dla identyfikatorów. Literały mogą być rozdzielane znakami pojedynczego lub podwójnego cudzysłowu.
Program SQL Server umożliwia również rozdzielenie identyfikatorów nawiasami kwadratowymi ([
i ]
). Identyfikatory w nawiasach mogą być zawsze używane, niezależnie od ustawienia QUOTED_IDENTIFIER. For more information, see Database identifiers.
Po utworzeniu tabeli opcja IDENTYFIKATOR CYTOWANY jest zawsze przechowywana jako WŁ. w metadanych tabeli. Opcja jest przechowywana nawet wtedy, gdy opcja jest ustawiona na WARTOŚĆ OFF podczas tworzenia tabeli.
Ustawienia na poziomie połączenia ustawione przy użyciu instrukcji SET zastępują domyślne ustawienie bazy danych dla QUOTED_IDENTIFIER. Klienci ODBC i OLE DB wystawiają ustawienie instrukcji SET na poziomie połączenia QUOTED_IDENTIFIER domyślnie włączone. Klienci uruchamiają instrukcję podczas nawiązywania połączenia z wystąpieniem programu SQL Server. For more information, see SET QUOTED_IDENTIFIER.
You can determine this option's status by examining the is_quoted_identifier_on
column in the sys.databases catalog view. You can also determine the status by examining the IsQuotedIdentifiersEnabled
property of the DATABASEPROPERTYEX function.
RECURSIVE_TRIGGERS { ON | WYŁ. }
ON
Rekursywne wypalanie wyzwalaczy AFTER jest dozwolone.
OFF
You can determine this option's status by examining the
is_recursive_triggers_on
column in the sys.databases catalog view. You can also determine the status by examining theIsRecursiveTriggersEnabled
property of the DATABASEPROPERTYEX function.Note
Nie można zapobiegać rekursji bezpośredniej tylko wtedy, gdy RECURSIVE_TRIGGERS jest ustawiona na wartość OFF. Aby wyłączyć rekursję pośrednią, należy również ustawić opcję serwera wyzwalaczy zagnieżdżonych na 0.
You can determine this option's status by examining the is_recursive_triggers_on
column in the sys.databases catalog view or the IsRecursiveTriggersEnabled
property of the DATABASEPROPERTYEX function.
< > target_recovery_time_option ::=
target_recovery_time_option isn't supported on Azure SQL Managed Instance.
Określa częstotliwość pośrednich punktów kontrolnych dla poszczególnych baz danych. Starting with SQL Server 2016 (13.x) the default value for new databases is 1 minute, which indicates database uses indirect checkpoints. W przypadku starszych wersji wartość domyślna to 0, co oznacza, że baza danych używa automatycznych punktów kontrolnych, których częstotliwość zależy od ustawienia interwału odzyskiwania wystąpienia serwera. Firma Microsoft zaleca 1 minutę dla większości systemów.
Z kończeniem <> ::=
Określa, kiedy wycofać niekompletne transakcje, gdy baza danych zostanie przeniesiona z jednego stanu do innego. Jeśli klauzula zakończenia zostanie pominięta, instrukcja ALTER DATABASE czeka na czas nieokreślony, jeśli w bazie danych istnieje blokada. Można określić tylko jedną klauzulę zakończenia i jest zgodna z klauzulami SET.
Note
Nie wszystkie opcje bazy danych używają klauzuli WITH <zakończenie>. For more information, see the table under Setting options of the "Remarks" section of this article.
ROLLBACK AFTER integer [SECONDS] | ROLLBACK IMMEDIATE
Określa, czy należy wycofać się po określonej liczbie sekund, czy natychmiast.
NO_WAIT
Określa, że żądanie kończy się niepowodzeniem, jeśli żądany stan bazy danych lub zmiana opcji nie może zakończyć się natychmiast. Ukończenie natychmiast oznacza, że nie trzeba czekać na transakcje do zatwierdzenia lub wycofania na własną rękę.
< > temporal_history_retention ::=
TEMPORAL_HISTORY_RETENTION { ON | WYŁ. }
Domyślnie włączone, ale także automatycznie ustaw wartość OFF po operacji przywracania do punktu w czasie. Aby uzyskać więcej informacji, w tym sposób włączania tego ustawienia, zobacz Jak skonfigurować zasady przechowywania.
ON
Default. Włącza zasady przechowywania tabel czasowych. Aby uzyskać więcej informacji, zobacz Zarządzanie przechowywaniem danych historycznych w tabelach czasowych z wersjami systemowymi.
OFF
Nie wykonuj czasowych zasad przechowywania historycznego.
Set options
To retrieve current settings for database options, use the sys.databases catalog view or DATABASEPROPERTYEX
Po ustawieniu opcji bazy danych nowe ustawienie zostanie zastosowane natychmiast.
Możesz zmienić wartości domyślne dla dowolnej z opcji bazy danych dla wszystkich nowo utworzonych baz danych. W tym celu zmień odpowiednią opcję bazy danych w bazie danych systemu model
.
Examples
A. Włączanie izolacji migawek w bazie danych
W poniższym przykładzie jest włączona opcja struktury izolacji migawek dla bazy danych AdventureWorks2022
.
USE master;
GO
ALTER DATABASE [database_name]
SET ALLOW_SNAPSHOT_ISOLATION ON;
GO
-- Check the state of the snapshot_isolation_framework
-- in the database.
SELECT name, snapshot_isolation_state,
snapshot_isolation_state_desc AS description
FROM sys.databases
WHERE name = N'[database_name]';
GO
Zestaw wyników pokazuje, że platforma izolacji migawek jest włączona.
name | snapshot_isolation_state | description |
---|---|---|
[database_name] | 1 | ON |
B. Włączanie, modyfikowanie lub wyłączanie śledzenia zmian
Poniższy przykład umożliwia śledzenie zmian dla bazy danych AdventureWorks2022
i ustawia okres przechowywania na 2
dni.
ALTER DATABASE [database_name]
SET CHANGE_TRACKING = ON
(AUTO_CLEANUP = ON, CHANGE_RETENTION = 2 DAYS);
W poniższym przykładzie pokazano, jak zmienić okres przechowywania na 3
dni.
ALTER DATABASE [database_name]
SET CHANGE_TRACKING (CHANGE_RETENTION = 3 DAYS);
W poniższym przykładzie pokazano, jak wyłączyć śledzenie zmian dla bazy danych AdventureWorks2022
.
ALTER DATABASE [database_name]
SET CHANGE_TRACKING = OFF;
C. Włączanie magazynu zapytań
Poniższy przykład umożliwia magazyn zapytań i konfiguruje parametry magazynu zapytań.
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. Włączanie magazynu zapytań ze statystykami oczekiwania
Poniższy przykład umożliwia magazyn zapytań i konfiguruje jego parametry.
ALTER DATABASE [database_name]
SET QUERY_STORE = ON
(
OPERATION_MODE = READ_WRITE,
CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = 90 ),
DATA_FLUSH_INTERVAL_SECONDS = 900,
MAX_STORAGE_SIZE_MB = 1024,
INTERVAL_LENGTH_MINUTES = 60,
SIZE_BASED_CLEANUP_MODE = AUTO,
MAX_PLANS_PER_QUERY = 200,
WAIT_STATS_CAPTURE_MODE = ON
);
E. Włączanie magazynu zapytań przy użyciu niestandardowych opcji zasad przechwytywania
Poniższy przykład umożliwia magazyn zapytań i konfiguruje jego parametry.
ALTER DATABASE [database_name]
SET QUERY_STORE = ON
(
OPERATION_MODE = READ_WRITE,
CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = 90 ),
DATA_FLUSH_INTERVAL_SECONDS = 900,
MAX_STORAGE_SIZE_MB = 1024,
INTERVAL_LENGTH_MINUTES = 60,
SIZE_BASED_CLEANUP_MODE = AUTO,
MAX_PLANS_PER_QUERY = 200,
WAIT_STATS_CAPTURE_MODE = ON,
QUERY_CAPTURE_MODE = CUSTOM,
QUERY_CAPTURE_POLICY = (
STALE_CAPTURE_POLICY_THRESHOLD = 24 HOURS,
EXECUTION_COUNT = 30,
TOTAL_COMPILE_CPU_TIME_MS = 1000,
TOTAL_EXECUTION_CPU_TIME_MS = 100
)
);
Related content
- Statistics
- DATABASEPROPERTYEX (Transact-SQL)
- sys.databases
- sys.data_spaces
- sys.database_automatic_tuning_options
- sys.database_automatic_tuning_mode
poziomu zgodności z usługą ALTER DATABASE - dublowania bazy danych ALTER DATABASE
- CREATE DATABASE
- włączanie i wyłączanie śledzenia zmian (SQL Server)
- DROP DATABASE (Transact-SQL)
- USTAWIĆ POZIOM IZOLACJI TRANSAKCJI (Transact-SQL)
- sp_configure
- Najlepsze rozwiązania dotyczące monitorowania obciążeń za pomocą magazynu zapytań
usługi
* Azure Synapse
Analiza *
Azure Synapse Analytics
Syntax
ALTER DATABASE { database_name }
SET
{
<optionspec> [ ,...n ]
}
;
<option_spec>::=
{
<auto_option>
| <db_encryption_option>
| <query_store_options>
| <result_set_caching>
| <snapshot_option>
}
;
<auto_option> ::=
{
AUTO_CREATE_STATISTICS { OFF | ON }
}
<db_encryption_option> ::=
{
ENCRYPTION { ON | OFF }
}
<query_store_option> ::=
{
QUERY_STORE { OFF | ON }
}
<result_set_caching_option> ::=
{
RESULT_SET_CACHING { ON | OFF }
}
<snapshot_option> ::=
{
READ_COMMITTED_SNAPSHOT { ON | OFF }
}
Arguments
database_name
Nazwa bazy danych, która ma zostać zmodyfikowana.
< > auto_option ::=
Steruje opcjami automatycznymi.
AUTO_CREATE_STATISTICS { ON | WYŁ. }
ON
Optymalizator zapytań tworzy statystyki dotyczące pojedynczych kolumn w predykatach zapytań, w razie potrzeby, aby poprawić plany zapytań i wydajność zapytań. Te statystyki jednokolumna są tworzone podczas kompilowania zapytań przez optymalizator zapytań. Statystyki z jedną kolumną są tworzone tylko w kolumnach, które nie są jeszcze pierwszą kolumną istniejącego obiektu statystyk.
Wartość domyślna to WŁĄCZONE. Zalecamy użycie domyślnego ustawienia dla większości baz danych.
OFF
Optymalizator zapytań nie tworzy statystyk dotyczących pojedynczych kolumn w predykatach zapytań podczas kompilowania zapytań. Ustawienie tej opcji na wartość OFF może spowodować nieoptymalne plany zapytań i obniżoną wydajność zapytań.
To polecenie musi być uruchamiane podczas nawiązywania połączenia z bazą danych użytkownika.
You can determine this option's status by examining the is_auto_create_stats_on
column in the sys.databases catalog view. You can also determine the status by examining the IsAutoCreateStatistics
property of the DATABASEPROPERTYEX function.
For more information, see the section "Using the database-wide statistics options" in Statistics.
< > db_encryption_option ::=
Steruje stanem szyfrowania bazy danych.
SZYFROWANIE { WŁĄCZONE | WYŁ. }
ON
Ustawia bazę danych do szyfrowania.
OFF
Ustawia bazę danych na nieszyfrowaną.
Aby uzyskać więcej informacji na temat szyfrowania bazy danych, zobacz transparent data encryption (TDE)i Transparent Data Encryption for Azure SQL Database, Azure SQL Managed Instance i Azure Synapse Analytics.
Po włączeniu szyfrowania na poziomie bazy danych wszystkie grupy plików są szyfrowane. Wszystkie nowe grupy plików dziedziczą zaszyfrowaną właściwość. Jeśli jakiekolwiek grupy plików w bazie danych są ustawione na WARTOŚĆ TYLKO DO ODCZYTU, operacja szyfrowania bazy danych zakończy się niepowodzeniem.
Stan szyfrowania bazy danych i stan skanowania szyfrowania można zobaczyć przy użyciu dynamicznego widoku zarządzania sys.dm_database_encryption_keys
.
< > query_store_option ::=
Określa, czy magazyn zapytań jest włączony w tym magazynie danych.
QUERY_STORE { ON | WYŁ. }
ON
Włącza magazyn zapytań.
OFF
Wyłącza magazyn zapytań. Off jest wartością domyślną.
Note
W przypadku usługi Azure Synapse Analytics należy wykonać ALTER DATABASE SET QUERY_STORE
z bazy danych użytkowników. Wykonywanie instrukcji z innego wystąpienia magazynu danych nie jest obsługiwane.
Note
W przypadku usługi Azure Synapse Analytics magazyn zapytań można włączyć tak jak na innych platformach, ale dodatkowe opcje konfiguracji nie są obsługiwane.
< > result_set_caching_option ::=
Applies to: Azure Synapse Analytics
Określa, czy wynik zapytania jest buforowany w bazie danych.
RESULT_SET_CACHING { ON | WYŁ. }
ON
Określa, że zestawy wyników zapytania zwracane z tej bazy danych są buforowane w bazie danych.
OFF
Określa, że zestawy wyników zapytania zwrócone z tej bazy danych nie są buforowane w bazie danych.
To polecenie musi być uruchamiane podczas nawiązywania połączenia z bazą danych master
. Zmiana tego ustawienia bazy danych jest obowiązuje natychmiast. Koszty magazynu są naliczane przez buforowanie zestawów wyników zapytań. Po wyłączeniu buforowania wyników dla bazy danych wcześniej utrwalonej pamięci podręcznej wyników zostanie natychmiast usunięta z magazynu usługi Azure Synapse.
Uruchom to polecenie, aby sprawdzić konfigurację buforowania zestawu wyników bazy danych. Jeśli buforowanie zestawu wyników jest włączone, is_result_set_caching_on
zwraca wartość 1.
SELECT name, is_result_set_caching_on FROM sys.databases
WHERE name = <'Your_Database_Name'>
Uruchom to polecenie, aby sprawdzić, czy zapytanie zostało wykonane przy użyciu buforowanego wyniku. Kolumna result_cache_hit
zwraca wartość 1 dla trafienia pamięci podręcznej, 0 w przypadku braku pamięci podręcznej i wartości ujemnych z powodów, dla których buforowanie zestawu wyników nie zostało użyte. Check sys.dm_pdw_exec_requests for details.
SELECT request_id, command, result_cache_hit FROM sys.dm_pdw_exec_requests
WHERE request_id = <'Your_Query_Request_ID'>
Note
Result set caching should not be used in conjunction with DECRYPTBYKEY. If this cryptographic function must be used, ensure you have result set caching disabled (either at session-level or database-level) at the time of execution.
Important
Operacje tworzenia pamięci podręcznej zestawu wyników i pobierania danych z pamięci podręcznej są wykonywane w węźle kontrolnym wystąpienia magazynu danych. Gdy buforowanie zestawu wyników jest włączone, uruchamianie zapytań, które zwracają duży zestaw wyników (na przykład >1 milion wierszy), może spowodować wysokie użycie procesora CPU w węźle kontrolnym i spowolnić ogólną odpowiedź na zapytanie w wystąpieniu. Te zapytania są często używane podczas eksploracji danych lub operacji ETL. Aby uniknąć przeciążenia węzła sterowania i spowodować problem z wydajnością, użytkownicy powinni wyłączyć buforowanie zestawu wyników w bazie danych przed uruchomieniem tych typów zapytań.
Aby uzyskać szczegółowe informacje na temat dostrajania wydajności za pomocą buforowania zestawu wyników, zobacz wskazówki dotyczące dostrajania wydajności.
Permissions
Aby ustawić opcję RESULT_SET_CACHING, użytkownik musi zalogować się na poziomie serwera (utworzony przez proces aprowizacji) lub być członkiem roli bazy danych dbmanager
.
< > snapshot_option ::=
Applies to: Azure Synapse Analytics
Steruje poziomem izolacji transakcji bazy danych.
READ_COMMITTED_SNAPSHOT { ON | WYŁ. }
ON
Włącza opcję READ_COMMITTED_SNAPSHOT na poziomie bazy danych.
OFF
Wyłącz opcję READ_COMMITTED_SNAPSHOT na poziomie bazy danych.
To polecenie musi być uruchamiane podczas nawiązywania połączenia z bazą danych master
. Włączenie lub wyłączenie READ_COMMITTED_SNAPSHOT dla bazy danych użytkownika powoduje zabicie wszystkich otwartych połączeń z tą bazą danych. Należy wprowadzić tę zmianę w oknie obsługi bazy danych lub poczekać, aż nie będzie aktywnego połączenia z bazą danych, z wyjątkiem połączenia z uruchomionym poleceniem ALTER DATABASE. Baza danych nie musi być w trybie pojedynczego użytkownika. Zmiana ustawienia READ_COMMITTED_SNAPSHOT na poziomie sesji nie jest obsługiwana. Aby sprawdzić to ustawienie dla bazy danych, sprawdź kolumnę is_read_committed_snapshot_on
w sys.databases
.
W bazie danych z włączoną READ_COMMITTED_SNAPSHOT zapytania mogą mieć niższą wydajność ze względu na skanowanie wersji, jeśli istnieje wiele wersji danych. Długotrwałe transakcje mogą również spowodować wzrost rozmiaru bazy danych. Ten problem występuje, jeśli istnieją zmiany danych przez te transakcje, które blokują czyszczenie wersji.
Permissions
Aby ustawić opcję READ_COMMITTED_SNAPSHOT, użytkownik musi mieć uprawnienie ALTER w bazie danych.
Examples
Sprawdzanie ustawienia statystyk dla bazy danych
SELECT name, is_auto_create_stats_on FROM sys.databases
Włączanie magazynu zapytań dla bazy danych
ALTER DATABASE [database_name]
SET QUERY_STORE = ON;
Włączanie buforowania zestawu wyników dla bazy danych
-- Run this command when connecting to the MASTER database
ALTER DATABASE [database_name]
SET RESULT_SET_CACHING ON;
Sprawdzanie ustawienia buforowania zestawu wyników dla bazy danych
SELECT name, is_result_set_caching_on
FROM sys.databases;
Włączanie opcji Read_Committed_Snapshot dla bazy danych
Uruchom to polecenie podczas nawiązywania połączenia z bazą danych master
.
ALTER DATABASE MyDatabase
SET READ_COMMITTED_SNAPSHOT ON;
Related content
usługi
Microsoft Fabric
Microsoft Fabric
Użyj ALTER DATABASE ... SET
do zarządzania magazynem usługi Microsoft Fabric Warehouse.
Syntax
-- Microsoft Fabric Data Warehouse
ALTER DATABASE { warehouse_name | CURRENT }
SET
{
<option_spec> [ ,...n ]
}
<option_spec> ::=
{
<data_lake_log_publishing>
| <vorder>
| <timestamp>
| <result_set_caching>
}
;
<data_lake_log_publishing> ::=
{
DATA_LAKE_LOG_PUBLISHING { PAUSED | AUTO }
}
<vorder> ::=
{
VORDER = OFF
}
<timestamp> ::=
{
TIMESTAMP = {CURRENT_TIMESTAMP | 'YYYY-MM-DDTHH:MM:SS.SS' }
}
<result_set_caching> ::=
{
RESULT_SET_CACHING { ON | OFF }
}
Arguments
DATA_LAKE_LOG_PUBLISHING
Wstrzymuje lub wznawia publikowanie dzienników usługi Delta Lake. Aby uzyskać więcej informacji, zobacz Publikowanie dzienników usługi Delta Lake.
VORDER
Może wyłączyć zachowanie klasy V-Order. Aby uzyskać więcej informacji, zobacz wyłączanie zachowania w kolejności wirtualnej w magazynie.
TIMESTAMP
Aktualizuje znacznik czasu dla istniejącej migawki magazynu w magazynie sieci szkieletowej. Znacznik czasu musi być podany w strefie czasowej UTC. For more information, see Warehouse snapshots.
RESULT_SET_CACHING
Włącza lub wyłącza buforowanie zestawu wyników (wersja zapoznawcza) dla bieżącego elementu. Aby uzyskać więcej informacji, zobacz Buforowanie zestawu wyników.
Permissions
Użytkownik musi być członkiem ról Administrator, Członek lub Współautor w obszarze roboczym Sieć szkieletowa.
Examples
A. Wstrzymanie publikowania dzienników usługi Delta Lake
Następujące polecenie języka T-SQL wstrzymuje publikowanie dzienników usługi Delta Lake w bieżącym kontekście magazynu.
ALTER DATABASE CURRENT SET DATA_LAKE_LOG_PUBLISHING = PAUSED;
To check the current status of Delta Lake Log publishing on all warehouses, of your workspace, use the following T-SQL code to query sys.databases in a new query window:
SELECT [name], [DATA_LAKE_LOG_PUBLISHING_DESC] FROM sys.databases;
B. Ustawianie i sprawdzanie buforowania zestawu wyników (wersja zapoznawcza)
Następujące polecenie języka T-SQL umożliwi elementowi MyDataWarehouse
rozpoczęcie tworzenia i stosowania pamięci podręcznej zestawu wyników (wersja zapoznawcza) do odpowiednich SELECT
zapytań. Aby uzyskać więcej informacji, zobacz Buforowanie zestawu wyników.
ALTER DATABASE [MyDataWarehouse] SET RESULT_SET_CACHING ON;
The column is_result_set_caching_on
from sys.databases can then be checked to confirm that result set caching (preview) has been enabled.
SELECT [name], [is_result_set_caching_on] FROM sys.databases;