ALTER DATABASE SET seçenekleri (Transact-SQL)
Microsoft SQL Server, Azure SQL Veritabanı ve Azure Synapse Analytics'teki veritabanı seçeneklerini ayarlar. Diğer ALTER DATABASE seçenekleri için bkz. ALTER DATABASE
Not
ALTER DATABASE ile bazı seçenekleri ayarlamak için özel veritabanı erişimi gerekebilir. ALTER DATABASE deyimi zamanında tamamlanmazsa, veritabanındaki diğer oturumların ALTER DATABASE oturumunu engelleyip engellemediğini denetleyin.
Söz dizimi kuralları hakkında daha fazla bilgi için bkz.
Ürün seçin
Aşağıdaki satırda, ilgilendiğiniz ürün adını seçin. Bunu yaptığınızda, seçtiğiniz ürün için uygun olan bu web sayfasında farklı içerik görüntülenir.
* SQL Server *
SQL Veritabanı
SQL Yönetilen Örneği
Azure Synapse'i
Analiz
Microsoft Fabric
SQL Server
Veritabanı yansıtma, Always On kullanılabilirlik grupları ve uyumluluk düzeyleri SET
seçeneklerdir, ancak uzunlukları nedeniyle ayrı makalelerde açıklanmıştır. Daha fazla bilgi için bkz. ALTER DATABASE Database Mirroring
Veritabanı kapsamlı yapılandırmalar, tek tek veritabanı düzeyinde çeşitli veritabanı yapılandırmaları ayarlamak için kullanılır. Daha fazla bilgi için bkz. ALTER DATABASE SCOPED CONFIGURATION
Not
Birçok veritabanı kümesi seçeneği, ALTER DATABASE SET
değerlerini geçersiz kılar. Aşağıdaki bölümlerde açıklanan veritabanı seçenekleri, diğer ayar seçeneği değerlerini açıkça sağlamayan oturumlar için ayarlayabileceğiniz değerlerdir.
Sözdizimi
ALTER DATABASE { database_name | CURRENT }
SET
{
<option_spec> [ ,...n ] [ WITH <termination> ]
}
<option_spec> ::=
{
<accelerated_database_recovery>
| <auto_option>
| <automatic_tuning_option>
| <change_tracking_option>
| <containment_option>
| <cursor_option>
| <database_mirroring_option>
| <date_correlation_optimization_option>
| <db_encryption_option>
| <db_state_option>
| <db_update_option>
| <db_user_access_option>
| <delayed_durability_option>
| <external_access_option>
| FILESTREAM ( <FILESTREAM_option> )
| <HADR_options>
| <mixed_page_allocation_option>
| <parameterization_option>
| <query_store_options>
| <recovery_option>
| <remote_data_archive_option>
| <persistent_log_buffer_option>
| <service_broker_option>
| <snapshot_option>
| <sql_option>
| <suspend_for_snapshot_backup>
| <target_recovery_time_option>
| <termination>
| <temporal_history_retention>
| <data_retention_policy>
}
;
<accelerated_database_recovery> ::=
{
ACCELERATED_DATABASE_RECOVERY = { ON | OFF }
[ ( PERSISTENT_VERSION_STORE_FILEGROUP = { filegroup name } ) ];
}
<auto_option> ::=
{
AUTO_CLOSE { ON | OFF }
| AUTO_CREATE_STATISTICS { OFF | ON [ ( INCREMENTAL = { ON | OFF } ) ] }
| AUTO_SHRINK { ON | OFF }
| AUTO_UPDATE_STATISTICS { ON | OFF }
| AUTO_UPDATE_STATISTICS_ASYNC { ON | OFF }
}
<automatic_tuning_option> ::=
{
AUTOMATIC_TUNING ( FORCE_LAST_GOOD_PLAN = { DEFAULT | ON | OFF } )
}
<change_tracking_option> ::=
{
CHANGE_TRACKING
{
= OFF
| = ON [ ( <change_tracking_option_list > [,...n] ) ]
| ( <change_tracking_option_list> [,...n] )
}
}
<change_tracking_option_list> ::=
{
AUTO_CLEANUP = { ON | OFF }
| CHANGE_RETENTION = retention_period { DAYS | HOURS | MINUTES }
}
<containment_option> ::=
CONTAINMENT = { NONE | PARTIAL }
<cursor_option> ::=
{
CURSOR_CLOSE_ON_COMMIT { ON | OFF }
| CURSOR_DEFAULT { LOCAL | GLOBAL }
}
<database_mirroring_option>
ALTER DATABASE Database Mirroring
<date_correlation_optimization_option> ::=
DATE_CORRELATION_OPTIMIZATION { ON | OFF }
<db_encryption_option> ::=
ENCRYPTION { ON | OFF | SUSPEND | RESUME }
<db_state_option> ::=
{ ONLINE | OFFLINE | EMERGENCY }
<db_update_option> ::=
{ READ_ONLY | READ_WRITE }
<db_user_access_option> ::=
{ SINGLE_USER | RESTRICTED_USER | MULTI_USER }
<delayed_durability_option> ::=
DELAYED_DURABILITY = { DISABLED | ALLOWED | FORCED }
<external_access_option> ::=
{
DB_CHAINING { ON | OFF }
| TRUSTWORTHY { ON | OFF }
| DEFAULT_FULLTEXT_LANGUAGE = { <lcid> | <language name> | <language alias> }
| DEFAULT_LANGUAGE = { <lcid> | <language name> | <language alias> }
| NESTED_TRIGGERS = { OFF | ON }
| TRANSFORM_NOISE_WORDS = { OFF | ON }
| TWO_DIGIT_YEAR_CUTOFF = { 1753, ..., 2049, ..., 9999 }
}
<FILESTREAM_option> ::=
{
NON_TRANSACTED_ACCESS = { OFF | READ_ONLY | FULL
| DIRECTORY_NAME = <directory_name>
}
<HADR_options> ::=
ALTER DATABASE SET HADR
<mixed_page_allocation_option> ::=
MIXED_PAGE_ALLOCATION { OFF | ON }
<parameterization_option> ::=
PARAMETERIZATION { SIMPLE | FORCED }
<query_store_options> ::=
{
QUERY_STORE
{
= OFF [ ( FORCED ) ]
| = ON [ ( <query_store_option_list> [,...n] ) ]
| ( < query_store_option_list> [,...n] )
| CLEAR [ ALL ]
}
}
<query_store_option_list> ::=
{
OPERATION_MODE = { READ_WRITE | READ_ONLY }
| CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = number )
| DATA_FLUSH_INTERVAL_SECONDS = number
| MAX_STORAGE_SIZE_MB = number
| INTERVAL_LENGTH_MINUTES = number
| SIZE_BASED_CLEANUP_MODE = { AUTO | OFF }
| QUERY_CAPTURE_MODE = { ALL | AUTO | CUSTOM | NONE }
| MAX_PLANS_PER_QUERY = number
| WAIT_STATS_CAPTURE_MODE = { ON | OFF }
| QUERY_CAPTURE_POLICY = ( <query_capture_policy_option_list> [,...n] )
}
<query_capture_policy_option_list> :: =
{
STALE_CAPTURE_POLICY_THRESHOLD = number { DAYS | HOURS }
| EXECUTION_COUNT = number
| TOTAL_COMPILE_CPU_TIME_MS = number
| TOTAL_EXECUTION_CPU_TIME_MS = number
}
<recovery_option> ::=
{
RECOVERY { FULL | BULK_LOGGED | SIMPLE }
| TORN_PAGE_DETECTION { ON | OFF }
| PAGE_VERIFY { CHECKSUM | TORN_PAGE_DETECTION | NONE }
}
<remote_data_archive_option> ::=
{
REMOTE_DATA_ARCHIVE =
{
ON ( SERVER = <server_name>,
{
CREDENTIAL = <db_scoped_credential_name>
| FEDERATED_SERVICE_ACCOUNT = ON | OFF
}
)
| OFF
}
}
<persistent_log_buffer_option> ::=
{
PERSISTENT_LOG_BUFFER
{
= ON (DIRECTORY_NAME= 'path-to-directory-on-a-DAX-volume')
| = OFF
}
}
<service_broker_option> ::=
{
ENABLE_BROKER
| DISABLE_BROKER
| NEW_BROKER
| ERROR_BROKER_CONVERSATIONS
| HONOR_BROKER_PRIORITY { ON | OFF }
}
<snapshot_option> ::=
{
ALLOW_SNAPSHOT_ISOLATION { ON | OFF }
| READ_COMMITTED_SNAPSHOT { ON | OFF }
| MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT = { ON | OFF }
}
<sql_option> ::=
{
ANSI_NULL_DEFAULT { ON | OFF }
| ANSI_NULLS { ON | OFF }
| ANSI_PADDING { ON | OFF }
| ANSI_WARNINGS { ON | OFF }
| ARITHABORT { ON | OFF }
| COMPATIBILITY_LEVEL = { 160 | 150 | 140 | 130 | 120 | 110 | 100 }
| CONCAT_NULL_YIELDS_NULL { ON | OFF }
| NUMERIC_ROUNDABORT { ON | OFF }
| QUOTED_IDENTIFIER { ON | OFF }
| RECURSIVE_TRIGGERS { ON | OFF }
}
<suspend_for_snapshot_backup> ::=
SET SUSPEND_FOR_SNAPSHOT_BACKUP = { ON | OFF } [ ( MODE = COPY_ONLY ) ]
<target_recovery_time_option> ::=
TARGET_RECOVERY_TIME = target_recovery_time { SECONDS | MINUTES }
<termination>::=
{
ROLLBACK AFTER number [ SECONDS ]
| ROLLBACK IMMEDIATE
| NO_WAIT
}
<temporal_history_retention> ::=
TEMPORAL_HISTORY_RETENTION { ON | OFF }
<data_retention_policy> ::=
DATA_RETENTION { ON | OFF }
Bağımsız değişken
database_name
Değiştirilecek veritabanının adı.
GEÇERLİ
için geçerlidir: SQL Server (SQL Server 2012 (11.x) ile başlayarak)
Eylemi geçerli veritabanında çalıştırır.
CURRENT
tüm bağlamlardaki tüm seçenekler için desteklenmez.
CURRENT
başarısız olursa veritabanı adını belirtin.
<accelerated_database_recovery> ::=
için geçerlidir: SQL Server (SQL Server 2019 (15.x) ile başlayarak)
hızlandırılmış veritabanı kurtarma (ADR)etkinleştirir. ADR, SQL Server 2019 (15.x) ve sonraki sürümlerde varsayılan olarak KAPALI olarak ayarlanır. Bu söz dizimini kullanarak, Kalıcı Sürüm Deposu (PVS) verileri için belirli bir dosya grubu belirleyebilirsiniz. Hiçbir dosya grubu belirtilmezse, PVS PRIMARY
dosya grubunda depolanır. Daha fazla bilgi için bkz. hızlandırılmış veritabanı kurtarmayönetme
<auto_option> ::=
Otomatik seçenekleri denetler.
AUTO_CLOSE { ON | KAPALI }
ÜZERİNDE
Veritabanı temiz bir şekilde kapatılır ve son kullanıcı çıktıktan sonra kaynakları serbest bırakılır.
Kullanıcı veritabanını yeniden kullanmaya çalıştığında veritabanı otomatik olarak yeniden açılır. Örneğin, bir kullanıcı bir
USE database_name
deyimini çıkardığında bu davranış oluşur. veritabanı, AUTO_CLOSE AÇILDI olarak ayarlandığında temiz bir şekilde kapanabilir. Bu durumda veritabanı, veritabanı Altyapısı bir sonraki yeniden başlatıldığında kullanıcı veritabanını kullanmaya çalışana kadar yeniden açılmaz.Veritabanı kapatıldıktan sonra, bir uygulama veritabanını kullanmayı bir sonraki denemesinde önce veritabanının açılması ve ardından durum çevrimiçi olarak değiştirilmesi gerekir. Bu işlem biraz zaman alabilir ve uygulama zaman aşımlarına neden olabilir.
KAPALI
Son kullanıcı çıktıktan sonra veritabanı açık kalır.
AUTO_CLOSE seçeneği, veritabanı dosyalarının normal dosyalar olarak yönetilmesine izin verdiğinden masaüstü veritabanları için kullanışlıdır. Bunlar taşınabilir, kopyalanabilir ve yedeklenebilir, hatta diğer kullanıcılara e-postayla gönderilebilir. AUTO_CLOSE işlemi zaman uyumsuzdur; veritabanını tekrar tekrar açmak ve kapatmak performansı düşürmez.
Not
AUTO_CLOSE seçeneği, kapsanan bir veritabanında veya SQL Veritabanı'nda kullanılamaz.
sys.databases katalog görünümündeki is_auto_close_on
sütununu veya DATABASEPROPERTYEX işlevinin IsAutoClose
özelliğini inceleyerek bu seçeneğin durumunu belirleyebilirsiniz.
AUTO_CLOSE ON olarak ayarlandığında,
Veritabanı yansıtma için AUTO_CLOSE OFF olarak ayarlanması gerekir.
Veritabanı AUTOCLOSE = ON
olarak ayarlandığında, otomatik veritabanı kapatma işlemini başlatan bir işlem SQL Server örneğinin plan önbelleğini temizler. Plan önbelleğinin temizlenmesi, sonraki tüm yürütme planlarının yeniden derlenmesine neden olur ve sorgu performansında ani, geçici bir düşüşe neden olabilir. PLAN önbelleğindeki temizlenen her önbellek deposu için SQL Server 2005 (9.x) Service Pack 2'den başlayarak, SQL Server hata günlüğü şu bilgilendirme iletisini içerir: 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
. Bu ileti, önbellek bu zaman aralığında temizlendiği sürece beş dakikada bir günlüğe kaydedilir.
AUTO_CLOSE ayarı bazı nadir durumlarda, örneğin, çok sayıda veritabanıyla yeterli belleği olmayan bir SQL Server örneğinde veya çok sayıda veritabanı olan eski bir 32 bit SQL Server örneğinde yararlı bir özellik olabilir. Bu tür senaryolarda, AUTO_CLOSE etkinleştirmek ve veritabanını kullanan bir uygulama olmadığında veritabanını açık tutmak için gereken bellek kaynaklarını korumak yararlı olabilir. Veritabanı açıkken bazı varsayılan bellek ayırmaları gerekir (örneğin, çeşitli veritabanı meta veri nesnelerini ve işlem günlüğü arabelleklerini temsil eden iç yapılar).
AUTO_CREATE_STATISTICS { ON | KAPALI }
ÜZERİNDE
Sorgu İyileştiricisi, sorgu planlarını ve sorgu performansını geliştirmek için gerektiğinde sorgu koşullarındaki tek sütunlarda istatistikler oluşturur. Bu tek sütunlu istatistikler, Sorgu İyileştiricisi sorguları derlediğinde oluşturulur. Tek sütunlu istatistikler yalnızca mevcut istatistik nesnesinin ilk sütunu olmayan sütunlarda oluşturulur.
Varsayılan ayar ON'dır. Çoğu veritabanı için varsayılan ayarı kullanmanızı öneririz.
KAPALI
Sorgu İyileştiricisi, sorgu derlerken sorgu koşullarında tek sütunlarda istatistik oluşturmaz. Bu seçeneğin KAPALI olarak ayarlanması, yetersiz sorgu planlarına ve düşük sorgu performansına neden olabilir.
sys.databases katalog görünümündeki is_auto_create_stats_on
sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsAutoCreateStatistics
özelliğini inceleyerek de durumu belirleyebilirsiniz.
Daha fazla bilgi için İstatistikler'ndeki "Veritabanı genelinde istatistik seçeneklerini kullanma" bölümüne bakın.
ARTıMLı = ON | KAPALI
için geçerlidir: SQL Server (SQL Server 2014 (12.x) ile başlayarak) ve Azure SQL Veritabanı
AUTO_CREATE_STATISTICS AÇıK olarak ayarlayın ve ARTıMLı'yı ON olarak ayarlayın. Bu, artımlı istatistikler desteklendiği her durumda otomatik olarak artımlı olarak oluşturulan istatistikleri ayarlar. Varsayılan değer KAPALI'dır. Daha fazla bilgi için bkz. create STATISTICS
AUTO_SHRINK { ON | KAPALI }
ÜZERİNDE
Veritabanı dosyaları düzenli aralıklarla daraltma için adaydır. Belirli bir gereksiniminiz yoksa AUTO_SHRINK veritabanı seçeneğini ON olarak ayarlamayın. Daha fazla bilgi için bkz. veritabanını küçültme
. Hem veri dosyaları hem de günlük dosyaları otomatik olarak küçültülebilir. AUTO_SHRINK işlem günlüğünün boyutunu yalnızca veritabanını SIMPLE kurtarma modeli olarak ayarlarsanız veya günlüğü yedeklerseniz azaltır. AUTO_SHRINK KAPALI olarak ayarladığınızda, kullanılmayan alan için düzenli denetimler sırasında veritabanı dosyaları otomatik olarak küçültülür.
dosyanın yüzde 25'inden fazlası kullanılmayan alan içerdiğinde AUTO_SHRINK seçeneği dosyaları küçültür. Dosyayı iki boyuttan birine küçültür (hangisi daha büyükse):
- Dosyanın yüzde 25'inin kullanılmayan alan boyutu
- Dosyanın oluşturulduğu zaman boyutu
Salt okunur veritabanını küçültemezsiniz.
KAPALI
Kullanılmayan alan için düzenli aralıklarla yapılan denetimler sırasında veritabanı dosyaları otomatik olarak küçülmez.
sys.databases katalog görünümündeki is_auto_shrink_on
sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsAutoShrink
özelliğini inceleyerek de durumu belirleyebilirsiniz.
Not
AUTO_SHRINK seçeneği, Kapsanan Veritabanında kullanılamaz.
AUTO_UPDATE_STATISTICS { ON | KAPALI }
ÜZERİNDE
Sorgu İyileştiricisi'nin bir sorgu tarafından kullanıldığında ve güncel olma durumlarında istatistikleri güncelleştirdiğini belirtir. Ekleme, güncelleştirme, silme veya birleştirme işlemleri tablodaki veya dizinli görünümdeki veri dağıtımını değiştirdikten sonra istatistikler güncel değildir. Sorgu İyileştiricisi, son istatistik güncelleştirmelerinden bu yana yapılan veri değişikliklerinin sayısını sayarak ve değişikliklerin sayısını bir eşikle karşılaştırarak istatistiklerin ne zaman güncel olabileceğini belirler. Eşik, tablodaki veya dizinli görünümdeki satır sayısını temel alır.
Sorgu İyileştiricisi, sorgu derlemeden ve önbelleğe alınmış bir sorgu planı çalıştırmadan önce güncel olmayan istatistikleri denetler. Sorgu İyileştiricisi, hangi istatistiklerin güncel olmayabileceğini belirlemek için sorgu koşulundaki sütunları, tabloları ve dizine alınan görünümleri kullanır. Sorgu İyileştirici bu bilgileri bir sorgu derlemeden önce belirler. Önbelleğe alınmış bir sorgu planını çalıştırmadan önce Veritabanı Altyapısı, sorgu planının up-totarih istatistiklerine başvurduğunu doğrular.
AUTO_UPDATE_STATISTICS seçeneği dizinler için oluşturulan istatistikler, sorgu koşulundaki tek sütunlar ve CREATE STATISTICS deyimi kullanılarak oluşturulan istatistikler için geçerlidir. Bu seçenek filtrelenmiş istatistikler için de geçerlidir.
Varsayılan değer ON'dır. Çoğu veritabanı için varsayılan ayarı kullanmanızı öneririz.
İstatistiklerin zaman uyumlu mu yoksa zaman uyumsuz olarak mı güncelleştirileceğini belirtmek için AUTO_UPDATE_STATISTICS_ASYNC seçeneğini kullanın.
KAPALI
Sorgu İyileştirici'nin bir sorgu tarafından kullanıldığında istatistikleri güncelleştirmediğini belirtir. Sorgu İyileştiricisi ayrıca güncel olmayan istatistikleri güncelleştirmez. Bu seçeneğin KAPALI olarak ayarlanması, yetersiz sorgu planlarına ve düşük sorgu performansına neden olabilir.
sys.databases katalog görünümündeki is_auto_update_stats_on
sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsAutoUpdateStatistics
özelliğini inceleyerek de durumu belirleyebilirsiniz.
Daha fazla bilgi için İstatistikler'ndeki "Veritabanı genelinde istatistik seçeneklerini kullanma" bölümüne bakın.
AUTO_UPDATE_STATISTICS_ASYNC { ON | KAPALI }
ÜZERİNDE
AUTO_UPDATE_STATISTICS seçeneği için istatistik güncelleştirmelerinin zaman uyumsuz olduğunu belirtir. Sorgu İyileştiricisi, sorguları derlemeden önce istatistik güncelleştirmelerinin tamamlanmasını beklemez.
AUTO_UPDATE_STATISTICS AÇıK olarak ayarlanmadığı sürece bu seçeneğiN ON olarak ayarlanmasının hiçbir etkisi olmaz.
Varsayılan olarak, AUTO_UPDATE_STATISTICS_ASYNC seçeneği KAPALI'dır ve Sorgu İyileştiricisi istatistikleri zaman uyumlu olarak güncelleştirir.
KAPALI
AUTO_UPDATE_STATISTICS seçeneği için istatistik güncelleştirmelerinin zaman uyumlu olduğunu belirtir. Sorgu İyileştiricisi, sorguları derlemeden önce istatistik güncelleştirmelerinin tamamlanmasını bekler.
Not
AUTO_UPDATE_STATISTICS AÇıK olarak ayarlanmadığı sürece bu seçeneği KAPALI olarak ayarlamanın hiçbir etkisi olmaz.
sys.databases katalog görünümündeki is_auto_update_stats_async_on
sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz.
Zaman uyumlu veya zaman uyumsuz istatistik güncelleştirmelerinin ne zaman kullanılacağını açıklayan daha fazla bilgi için, İstatistikler'deki "İstatistik seçenekleri" bölümüne bakın.
<automatic_tuning_option> ::=
için geçerlidir: SQL Server (SQL Server 2017 (14.x) ile başlayarak)
FORCE_LAST_GOOD_PLAN
Otomatik ayarlama seçeneğini etkinleştirir veya devre dışı bırakır. bu seçeneğin durumunu sys.database_automatic_tuning_options
görünümünde görüntüleyebilirsiniz.
FORCE_LAST_GOOD_PLAN = { DEFAULT | ON | KAPALI }
TEMERRÜT
SQL Server için varsayılan değer KAPALI'dır.
ÜZERİNDE
Veritabanı Altyapısı, yeni sorgu planının performans regresyonlarına neden olduğu Transact-SQL sorgularda bilinen son iyi planı otomatik olarak zorlar. Veritabanı Altyapısı, zorlamalı planla Transact-SQL sorgunun sorgu performansını sürekli izler.
Performans kazançları varsa Veritabanı Altyapısı bilinen son iyi planı kullanmaya devam eder. Performans kazanımları algılanmamışsa Veritabanı Altyapısı yeni bir sorgu planı oluşturur. Sorgu Deposu etkinleştirilmemişse veya Sorgu Deposu Okuma-Yazma modunda değilse deyimi başarısız olur.
KAPALI
Veritabanı Altyapısı, sys.dm_db_tuning_recommendations görünümde sorgu planı değişikliklerinin neden olduğu olası sorgu performansı regresyonlarını bildirir. Ancak bu öneriler otomatik olarak uygulanmaz. Kullanıcılar, görünümde gösterilen Transact-SQL betikleri uygulayarak etkin önerileri izleyebilir ve tanımlanan sorunları çözebilir. Varsayılan değer KAPALI'dır.
<change_tracking_option> ::=
için geçerlidir: SQL Server ve Azure SQL Veritabanı
Değişiklik izleme seçeneklerini denetler. Değişiklik izlemeyi etkinleştirebilir, seçenekleri ayarlayabilir, seçenekleri değiştirebilir ve değişiklik izlemeyi devre dışı bırakabilirsiniz. Örnekler için bu makalenin devamında yer alan Örnekler bölümüne bakın.
ÜZERİNDE
Veritabanı için değişiklik izlemeyi etkinleştirir. Değişiklik izlemeyi etkinleştirdiğinizde, AUTO CLEANUP ve CHANGE RETENTION seçeneklerini de ayarlayabilirsiniz.
AUTO_CLEANUP = { ON | KAPALI }
ÜZERİNDE
Değişiklik izleme bilgileri belirtilen saklama süresinden sonra otomatik olarak kaldırılır.
KAPALI
Değişiklik izleme verileri veritabanından otomatik olarak kaldırılmaz.
CHANGE_RETENTION = retention_period { DAYS | SAAT | DAKİkA }
Değişiklik izleme bilgilerini veritabanında tutmak için en düşük süreyi belirtir. Veriler yalnızca AUTO_CLEANUP değeri AÇILDI olduğunda kaldırılır.
retention_period, bekletme süresinin sayısal bileşenini belirten bir tamsayıdır.
Varsayılan saklama süresi2 gün
. En düşük saklama süresi 1 dakikadır. Varsayılan bekletme türü DAYS'dır. KAPALI Veritabanı için değişiklik izlemeyi devre dışı bırakır. Veritabanında değişiklik izlemeyi devre dışı bırakmadan önce tüm tablolarda değişiklik izlemeyi devre dışı bırakın.
<containment_option> ::=
için geçerlidir: SQL Server (SQL Server 2012 (11.x) ile başlayarak)
Veritabanı kapsama seçeneklerini denetler.
KAPSAMA = { YOK | PARTIAL}
Hiç kimse
Veritabanı, kapsanan bir veritabanı değildir.
KISMİ
Veritabanı, kapsanan bir veritabanıdır. Veritabanında çoğaltma, değişiklik verisi yakalama veya değişiklik izleme etkinse veritabanı kapsamasını kısmi olarak ayarlama işlemi başarısız olur. Hata denetimi bir hatadan sonra durur. Kapsanan veritabanları hakkında daha fazla bilgi için bkz. Kapsanan Veritabanları.
<cursor_option> ::=
İmleç seçeneklerini denetler.
CURSOR_CLOSE_ON_COMMIT { ON | KAPALI }
ÜZERİNDE
bir işlemi işlediğiniz veya geri aldığınızda açılan tüm imleçler kapatılır.
KAPALI
bir işlem işlendiğinde imleçler açık kalır; bir işlemi geri döndürmek, DUYARSIZ veya STATIK olarak tanımlanan imleçler dışında tüm imleçleri kapatır.
SET deyimi kullanılarak ayarlanan bağlantı düzeyi ayarları, CURSOR_CLOSE_ON_COMMIT için varsayılan veritabanı ayarını geçersiz kılar. ODBC ve OLE DB istemcileri, oturum için varsayılan olarak OFF olarak CURSOR_CLOSE_ON_COMMIT bir bağlantı düzeyi SET deyimi ayarı gönderir. SQL Server örneğine bağlandığınızda istemciler deyimini çalıştırır. Daha fazla bilgi için bkz. set CURSOR_CLOSE_ON_COMMIT
sys.databases katalog görünümündeki is_cursor_close_on_commit_on
sütununu veya DATABASEPROPERTYEX işlevinin IsCloseCursorsOnCommitEnabled
özelliğini inceleyerek bu seçeneğin durumunu belirleyebilirsiniz.
CURSOR_DEFAULT { YEREL | GLOBAL }
için geçerlidir: SQL Server
İmleç kapsamının LOCAL veya GLOBAL kullanıp kullanmadığını denetler.
YÖRESEL
YEREL'i belirttiğinizde ve imleci genel olarak tanımlamadığınızda, imlecin kapsamı yereldir. Özellikle, kapsam imleci oluşturduğunuz toplu iş, saklı yordam veya tetikleyici için yereldir. İmleç adı yalnızca bu kapsamda geçerlidir.
toplu iş, saklı yordam veya tetikleyicideki yerel imleç değişkenleri ya da bir saklı yordam OUTPUT parametresi tarafından imleç başvurulabilir. Toplu işlem, saklı yordam veya tetikleyici sona erdiğinde imleç örtük olarak serbest bırakılır. bir OUTPUT parametresinde geri geçirilmediği sürece imleç serbest bırakılır. İmleç output parametresinde geri geçirilebilir. İmleç bu şekilde geri geçerse, imlece başvuran son değişken serbest bırakıldığında veya kapsam dışına çıktığında imleç serbest bırakılır.
KÜRESEL
GENEL belirtildiğinde ve bir imleç oluşturulduğunda YEREL olarak tanımlanmadığında, imlecin kapsamı bağlantı için geneldir. İmleç adına, bağlantı tarafından yürütülen herhangi bir saklı yordamda veya toplu işlemde başvurulabilir.
İmleç örtük olarak yalnızca bağlantı kesildiğinde serbest bırakılır. Daha fazla bilgi için bkz. DECLARE CURSOR.
sys.databases katalog görünümündeki is_local_cursor_default
sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsLocalCursorsDefault
özelliğini inceleyerek de durumu belirleyebilirsiniz.
<temporal_history_retention> ::=
TEMPORAL_HISTORY_RETENTION { ON | KAPALI }
Varsayılan olarak AÇILDI, ancak belirli bir noktaya geri yükleme işleminden sonra otomatik olarak KAPALI olarak ayarlanır. Bu ayarı etkinleştirme hakkında daha fazla bilgi için bkz. Bekletme ilkesini yapılandırma.
ÜZERİNDE
Temerrüt. Zamansal tablo bekletme ilkesini etkinleştirir. Daha fazla bilgi için bkz. sistem tabanlı zamana bağlı tablolarda geçmiş verilerin elde tutulmasını yönetme.
KAPALI
Zamana bağlı geçmiş saklama ilkesi gerçekleştirmeyin.
<data_retention_policy> ::=
için geçerlidir: Yalnızca Azure SQL Edge.
DATA_RETENTION { ON | KAPALI }
ÜZERİNDE
Veritabanında Veri Saklama ilkesi tabanlı temizlemeyi etkinleştirir.
KAPALI
Veritabanında Veri Saklama ilkesi tabanlı temizlemeyi devre dışı bırakır.
<database_mirroring>
için geçerlidir: SQL Server
Bağımsız değişken açıklamaları için bkz. ALTER DATABASE Database Mirroring
<date_correlation_optimization_option> ::=
için geçerlidir: SQL Server
date_correlation_optimization seçeneğini denetler.
DATE_CORRELATION_OPTIMIZATION { ON | KAPALI }
ÜZERİNDE
SQL Server, YABANCı ANAHTAR kısıtlamasının veritabanındaki iki tabloyu birbirine bağladığı ve tabloların datetime sütunları
bağıntı istatistikleri tutar. KAPALI
Bağıntı istatistikleri korunmaz.
DATE_CORRELATION_OPTIMIZATION ON olarak ayarlamak için ALTER DATABASE deyimini yürüten bağlantı dışında veritabanına etkin bağlantı olmaması gerekir. Daha sonra birden çok bağlantı desteklenir.
Bu seçeneğin geçerli ayarı, sys.databases katalog görünümündeki is_date_correlation_on
sütunu incelenerek belirlenebilir.
<db_encryption_option> ::=
Veritabanı şifreleme durumunu denetler.
ŞIFRELEME { ON | KAPALI | ASKıYA ALMA | RESUME }
ÜZERİNDE
Veritabanını şifrelenecek şekilde ayarlar.
KAPALI
Veritabanını şifrelenmemesi için ayarlar.
ASMAK
için geçerlidir: SQL Server (SQL Server 2019 (15.x) ile başlayarak)
Saydam veri şifrelemesi etkinleştirildikten veya devre dışı bırakıldıktan veya şifreleme anahtarı değiştirildikten sonra şifreleme taramasını duraklatmak için kullanılabilir.
ÖZGEÇMİŞ
için geçerlidir: SQL Server (SQL Server 2019 (15.x) ile başlayarak)
Önceden duraklatılmış bir şifreleme taramasını sürdürmek için kullanılabilir.
Veritabanı şifrelemesi hakkında daha fazla bilgi için bkz. Saydam veri şifrelemesi (TDE)ve Azure SQL Veritabanı, Azure SQL Yönetilen Örneği ve Azure Synapse Analyticsiçin saydam veri şifrelemesi.
Şifreleme veritabanı düzeyinde etkinleştirildiğinde, tüm dosya grupları şifrelenir. Tüm yeni dosya grupları şifrelenmiş özelliği devralır. Veritabanındaki herhangi bir dosya grubu SALT OKUNUR olarak ayarlanırsa, veritabanı şifreleme işlemi başarısız olur.
sys.dm_database_encryption_keys dinamik yönetim görünümünü kullanarak veritabanının şifreleme durumunu ve şifreleme taramasının durumunu görebilirsiniz.
<db_state_option> ::=
için geçerlidir: SQL Server
Veritabanının durumunu denetler.
ÇEVRİMDIŞI
Veritabanı kapatılır, temiz bir şekilde kapatılır ve çevrimdışı olarak işaretlenir. Veritabanı çevrimdışıyken değiştirilemez.
ÇEVRİMİÇİ
Veritabanı açık ve kullanılabilir.
ACİL
Veritabanı READ_ONLY olarak işaretlenir, günlük devre dışı bırakılır ve erişim sysadmin sabit sunucu rolünün üyeleriyle sınırlıdır. ACIL DURUM öncelikli olarak sorun giderme amacıyla kullanılır. Örneğin, bozuk bir günlük dosyası nedeniyle şüpheli olarak işaretlenen bir veritabanı EMERGENCY durumuna ayarlanabilir. Bu ayar, sistem yöneticisinin veritabanına salt okunur erişimini etkinleştirebilir. Veritabanını yalnızca sysadmin sabit sunucu rolünün üyeleri EMERGENCY durumuna ayarlayabilir.
Bir veritabanını çevrimdışı veya acil durum durumuna değiştirmek için konu veritabanı için ALTER DATABASE
izni gerekir ve sunucu düzeyi, veritabanını çevrimdışından çevrimiçine taşıma izni ALTER ANY DATABASE
.
sys.databases katalog görünümündeki state
ve state_desc
sütunlarını inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin Status
özelliğini inceleyerek de durumu belirleyebilirsiniz. Daha fazla bilgi için bkz. Veritabanı Durumları.
GERI YÜKLEME olarak işaretlenen bir veritabanı ÇEVRİmİÇİ, ÇEVRİmİÇİ veya ACIL DURUM olarak ayarlanamaz. Veritabanı, etkin bir geri yükleme işlemi sırasında veya veritabanının veya günlük dosyasının geri yükleme işlemi bozuk bir yedekleme dosyası nedeniyle başarısız olduğunda GERI YÜKLEME durumunda olabilir.
<db_update_option> ::=
Veritabanında güncelleştirmelere izin verilip verilmeyeceğini denetler.
READ_ONLY
Kullanıcılar veritabanındaki verileri okuyabilir ancak değiştiremez.
Not
Sorgu performansını geliştirmek için veritabanını READ_ONLY olarak ayarlamadan önce istatistikleri güncelleştirin. Veritabanı READ_ONLY olarak ayarlandıktan sonra ek istatistikler gerekiyorsa, Veritabanı Altyapısı
tempdb
sistem veritabanında istatistikler oluşturur. Salt okunur veritabanı istatistikleri hakkında daha fazla bilgi için bkz. İstatistikler.READ_WRITE
Veritabanı okuma ve yazma işlemleri için kullanılabilir.
Bu durumu değiştirmek için veritabanına özel erişime sahip olmanız gerekir. Daha fazla bilgi için SINGLE_USER yan tümcesine bakın.
Not
Azure SQL Veritabanı federasyon veritabanlarında SET { READ_ONLY | READ_WRITE }
devre dışı bırakılır.
<db_user_access_option> ::=
Veritabanına kullanıcı erişimini denetler.
SINGLE_USER
için geçerlidir: SQL Server
Veritabanına aynı anda yalnızca bir kullanıcının erişebileceğini belirtir. SINGLE_USER belirtirseniz ve başka bir kullanıcı veritabanına bağlanırsa, tüm kullanıcılar belirtilen veritabanıyla bağlantıyı kesene kadar ALTER DATABASE deyimi engellenir. Bu davranışı geçersiz kılmak için WITH <sonlandırma> yan tümcesine bakın.
Seçeneği ayarlayan kullanıcı oturumu kapatsa bile veritabanı SINGLE_USER modunda kalır. Bu noktada, veritabanına farklı bir kullanıcı ancak yalnızca bir kullanıcı bağlanabilir.
Veritabanını SINGLE_USER olarak ayarlamadan önce AUTO_UPDATE_STATISTICS_ASYNC seçeneğinin KAPALI olarak ayarlandığını doğrulayın. ON olarak ayarlandığında, istatistikleri güncelleştirmek için kullanılan arka plan iş parçacığı veritabanına karşı bir bağlantı alır ve veritabanına tek kullanıcı modunda erişemezsiniz. Bu seçeneğin durumunu görüntülemek için sys.databases katalog görünümündeki is_auto_update_stats_async_on
sütununu sorgula. Seçenek ON olarak ayarlandıysa aşağıdaki görevleri gerçekleştirin:
AUTO_UPDATE_STATISTICS_ASYNC KAPALI olarak ayarlayın.
sys.dm_exec_background_job_queue dinamik yönetim görünümünü sorgulayarak etkin zaman uyumsuz istatistik işlerini denetleyin.
Etkin işler varsa, işlerin tamamlanmasına izin verin veya KILL STATS JOBkullanarak bunları el ile sonlandırın.
RESTRICTED_USER
Veritabanına bağlanmak için yalnızca db_owner
sabit veritabanı rolünün üyelerine ve dbcreator
ve sysadmin
sabit sunucu rollerine izin verir. RESTRICTED_USER sayısını sınırlamaz. ALTER DATABASE deyiminin sonlandırma yan tümcesi tarafından belirtilen zaman çerçevesini kullanarak veritabanıyla tüm bağlantıların bağlantısını kesin. Veritabanı RESTRICTED_USER durumuna geçtikten sonra, nitelenmemiş kullanıcıların bağlantı girişimleri reddedilir.
MULTI_USER
Veritabanına bağlanmak için uygun izinlere sahip tüm kullanıcılara izin verilir.
sys.databases katalog görünümündeki user_access
sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin UserAccess
özelliğini inceleyerek de durumu belirleyebilirsiniz.
<delayed_durability_option> ::=
için geçerlidir: SQL Server (SQL Server 2014 (12.x) ile başlayarak)
İşlemlerin tamamen dayanıklı mı yoksa gecikmeli dayanıklı mı işlediğini denetler.
SAKAT
SET DISABLED
izleyen tüm işlemler tamamen dayanıklıdır. Atomik blokta veya işleme deyiminde ayarlanan tüm dayanıklılık seçenekleri yoksayılır.IZİN VERİLEN
SET ALLOWED
izleyen tüm işlemler, atomik blokta veya işleme deyiminde ayarlanan dayanıklılık seçeneğine bağlı olarak tamamen dayanıklı veya gecikmeli dayanıklıdır.ZORLA
SET FORCED
izleyen tüm işlemler gecikmeli dayanıklıdır. Atomik blokta veya işleme deyiminde ayarlanan tüm dayanıklılık seçenekleri yoksayılır.
<external_access_option> ::=
için geçerlidir: SQL Server
Veritabanına başka bir veritabanındaki nesneler gibi dış kaynaklar tarafından erişilip erişilemeyeceğini denetler.
DB_CHAINING { ON | KAPALI }
ÜZERİNDE
Veritabanı, veritabanları arası sahiplik zincirinin kaynağı veya hedefi olabilir.
KAPALI
Veritabanı, veritabanları arası sahiplik zincirine katılamaz.
Önemli
VERITABANı sahipliği arasında zincirleme sunucusu seçeneği 0 (KAPALI) olduğunda SQL Server örneği bu ayarı tanır. Veritabanları arası sahiplik zinciri 1 (ON) olduğunda, tüm kullanıcı veritabanları bu seçeneğin değerinden bağımsız olarak veritabanları arası sahiplik zincirlerine katılabilir. Bu seçenek sp_configurekullanılarak ayarlanır.
Bu seçeneği ayarlamak için veritabanında CONTROL SERVER
izni gerekir.
DB_CHAINING seçeneği master
, model
ve tempdb
sistem veritabanlarında ayarlanamaz.
sys.databases katalog görünümündeki is_db_chaining_on
sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz.
TRUSTWORTHY { ON | KAPALI }
ÜZERİNDE
Kimliğe bürünme bağlamı kullanan veritabanı modülleri (örneğin, kullanıcı tanımlı işlevler veya saklı yordamlar), veritabanı dışındaki kaynaklara erişebilir.
KAPALI
Kimliğe bürünme bağlamındaki veritabanı modülleri, veritabanının dışındaki kaynaklara erişemez.
TRUSTWORTHY, veritabanı her eklendiğinde KAPALI olarak ayarlanır.
Varsayılan olarak, msdb
veritabanı dışındaki tüm sistem veritabanlarıNDA TRUSTWORTHY ayarı KAPALI olarak ayarlanmıştır.
model
ve tempdb
veritabanları için değer değiştirilemez.
master
veritabanı için GÜVENİlİR seçeneğini asla AÇI olarak ayarlamamanızı öneririz.
Bu seçeneği ayarlamak için veritabanında CONTROL SERVER
izni gerekir.
sys.databases katalog görünümündeki is_trustworthy_on
sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz.
DEFAULT_FULLTEXT_LANGUAGE
için geçerlidir: SQL Server (SQL Server 2012 (11.x) ile başlayarak)
Tam metin dizinli sütunlar için varsayılan dil değerini belirtir.
Önemli
Bu seçenek yalnızca CONTAINMENT PARTIAL olarak ayarlandığında izin verir. CONTAINMENT NONE olarak ayarlanırsa hatalar oluşur.
DEFAULT_LANGUAGE
için geçerlidir: SQL Server (SQL Server 2012 (11.x) ile başlayarak)
Yeni oluşturulan tüm oturum açma işlemleri için varsayılan dili belirtir. Dil, yerel kimlik (lcid), dil adı veya dil diğer adı sağlanarak belirtilebilir. Kabul edilebilir dil adlarının ve diğer adlarının listesi için bkz. sys.syslanguages. Bu seçenek yalnızca CONTAINMENT PARTIAL olarak ayarlandığında izin verir. CONTAINMENT NONE olarak ayarlanırsa hatalar oluşur.
NESTED_TRIGGERS
için geçerlidir: SQL Server (SQL Server 2012 (11.x) ile başlayarak)
AFTER tetikleyicisinin art arda bulunup bulunamayacağını belirtir; diğer bir ifadeyle başka bir tetikleyici başlatan ve başka bir tetikleyici başlatan bir eylem gerçekleştirin. Bu seçenek yalnızca CONTAINMENT PARTIAL olarak ayarlandığında izin verir. CONTAINMENT NONE olarak ayarlanırsa hatalar oluşur.
TRANSFORM_NOISE_WORDS
için geçerlidir: SQL Server (SQL Server 2012 (11.x) ile başlayarak)
Bir tam metin sorgusundaki boole işleminin başarısız olmasına neden olan kirli sözcükler veya stopword'ler hata iletisini bastırmak için kullanılır. Bu seçenek yalnızca CONTAINMENT PARTIAL olarak ayarlandığında izin verir. CONTAINMENT NONE olarak ayarlanırsa hatalar oluşur.
TWO_DIGIT_YEAR_CUTOFF
için geçerlidir: SQL Server (SQL Server 2012 (11.x) ile başlayarak)
İki basamaklı yılların dört basamaklı yıl olarak yorumlanması için kesme yılını temsil eden 1753 ile 9999 arasında bir tamsayı belirtir. Bu seçenek yalnızca CONTAINMENT PARTIAL olarak ayarlandığında izin verir. CONTAINMENT NONE olarak ayarlanırsa hatalar oluşur.
<FILESTREAM_option> ::=
için geçerlidir: SQL Server (SQL Server 2012 (11.x) ile başlayarak)
FileTable'ların ayarlarını denetler.
NON_TRANSACTED_ACCESS = { KAPALI | READ_ONLY | FULL }
KAPALI
FileTable verilerine işlem dışı erişim devre dışı bırakıldı.
READ_ONLY
Bu veritabanındaki FileTable'lardaki FILESTREAM verileri işlem dışı işlemler tarafından okunabilir.
DOLU
FileTable'larda FILESTREAM verilerine tam, işlem dışı erişimi etkinleştirir.
DIRECTORY_NAME = <directory_name>
Windows uyumlu bir dizin adı. Bu ad, SQL Server örneğindeki tüm veritabanı düzeyindeki dizin adları arasında benzersiz olmalıdır. Harmanlama ayarlarından bağımsız olarak benzersizlik karşılaştırması büyük/küçük harfe duyarlı değildir. Bu seçenek, bu veritabanında bir FileTable oluşturulmadan önce ayarlanmalıdır.
<HADR_options> ::=
için geçerlidir: SQL Server
bkz. ALTER DATABASE SET HADR
<mixed_page_allocation_option> ::=
için geçerlidir: SQL Server (SQL Server 2016 (13.x) ile başlayarak)
Veritabanının bir tablonun veya dizinin ilk sekiz sayfası için karışık bir kapsam kullanarak ilk sayfalar oluşturup oluşturamayacağını denetler.
MIXED_PAGE_ALLOCATION { KAPALI | ON }
KAPALI
Veritabanı her zaman tekdüzen kapsamları kullanarak ilk sayfalar oluşturur. OFF varsayılan değerdir.
ÜZERİNDE
Veritabanı, karma kapsamları kullanarak ilk sayfalar oluşturabilir.
Bu ayar tüm sistem veritabanları için ON'dır.
tempdb
sistem veritabanı, KAPALI'yi destekleyen tek sistem veritabanıdır.
<PARAMETERIZATION_option> ::=
Parametreleştirme seçeneğini denetler. Parametreleştirme hakkında daha fazla bilgi için bkz. Sorgu İşleme Mimarisi Kılavuzu.
PARAMETRELEŞTIRME { SIMPLE | FORCED }
BASİT
Sorgular, veritabanının varsayılan davranışına göre parametreleştirilir.
ZORLA
SQL Server, veritabanındaki tüm sorguları parametreleştirir.
Bu seçeneğin geçerli ayarı, sys.databases katalog görünümündeki is_parameterization_forced
sütunu incelenerek belirlenebilir.
<query_store_options> ::=
için geçerlidir: SQL Server (SQL Server 2016 (13.x) ile başlayarak)
ON | KAPALI [ ( ZORLAMALı ) ] | CLEAR [ ALL ]
Bu veritabanında Sorgu Deposu'nun etkinleştirilip etkinleştirilmediğini denetler ve ayrıca Sorgu Deposu'nun içeriğini kaldırmayı denetler. Daha fazla bilgi için bkz. Sorgu Deposu Kullanım Senaryoları.
ÜZERİNDE
Sorgu Deposu'na olanak tanır.
Sorgu Deposu ipuçları, CE Geri Bildirimi, Paralellik Derecesi (DOP) geri bildirimi ve Bellek Verme geri bildirimi (MGF) kalıcılığı gibi SQL Server 2022'nin (16.x) birçok yeni performans özelliği Sorgu Deposu'nun etkinleştirilmesini gerektiriyor. Diğer SQL Server örneklerinden geri yüklenen veritabanları ve SQL Server 2022 'ye (16.x) yerinde yükseltmeden yükseltilen veritabanları için, bu veritabanları önceki Sorgu Deposu ayarlarını korur. Sorgu Deposu'na neden olabilecek ek yüklerle ilgili endişeler varsa, yöneticiler
ile özel yakalama ilkelerinden yararlanabilir. Özel yakalama ilkesi seçenekleriyle Sorgu Deposu'nun nasıl etkinleştirileceğine ilişkin örnekler için, bu makalenin devamında yer alan Örnekler bölümüne bakın. KAPALI [ ( ZORLAMALı ) ]
Sorgu Deposu'nı devre dışı bırakır. FORCED isteğe bağlıdır. FORCED, çalışan tüm Sorgu Deposu arka plan görevlerini durdurur ve Sorgu Deposu kapatıldığında zaman uyumlu temizlemeyi atlar. Sorgu Deposu'un mümkün olan en hızlı şekilde kapanmasına neden olur. FORCED, SQL Server 2016 (13.x) SP2 CU14, SQL Server 2017 (14.x) CU21, SQL Server 2019 (15.x) CU6 ve sonraki derlemeler için geçerlidir.
Not
Azure SQL Veritabanı'nda Sorgu Deposu devre dışı bırakılamaz.
ALTER DATABASE [database] SET QUERY_STORE = OFF
yürütülürken'QUERY_STORE=OFF' is not supported in this version of SQL Server.
uyarısını döndürür.CLEAR [ ALL ]
Sorguyla ilgili verileri Sorgu Deposu'ndan kaldırır. ALL isteğe bağlıdır. ALL, sorguyla ilgili verileri ve meta verileri Sorgu Deposu'ndan kaldırır.
OPERATION_MODE { READ_ONLY | READ_WRITE }
Sorgu Deposu'nun işlem modunu açıklar.
READ_WRITE
Sorgu Deposu, sorgu planı ve çalışma zamanı yürütme istatistikleri bilgilerini toplar ve kalıcı hale toplar.
READ_ONLY
Bilgiler Sorgu Deposu'ndan okunabilir, ancak yeni bilgiler eklenmez. Sorgu Deposu'nun verilen en fazla alanı tükendiyse, Sorgu Deposu işlem modunu READ_ONLY olarak değiştirir.
CLEANUP_POLICY
Sorgu Deposu'nun veri saklama ilkesini açıklar. STALE_QUERY_THRESHOLD_DAYS, sorgu bilgilerinin Sorgu Deposu'nda tutulduğu gün sayısını belirler. STALE_QUERY_THRESHOLD_DAYS bigint
DATA_FLUSH_INTERVAL_SECONDS
Sorgu Deposu'na yazılan verilerin diskte kalıcı olduğu sıklığı belirler. Performansı iyileştirmek için Sorgu Deposu tarafından toplanan veriler zaman uyumsuz olarak diske yazılır. Bu zaman uyumsuz aktarımın gerçekleşme sıklığı, DATA_FLUSH_INTERVAL_SECONDS bağımsız değişkeni kullanılarak yapılandırılır. DATA_FLUSH_INTERVAL_SECONDS bigint
MAX_STORAGE_SIZE_MB
Sorgu Deposu'na verilen alanı belirler. MAX_STORAGE_SIZE_MB, bigint
MAX_STORAGE_SIZE_MB
sınırı kesinlikle uygulanmaz. Depolama boyutu yalnızca Sorgu Deposu diske veri yazdığında denetlenmektedir. Bu aralık, veri temizleme aralığı
Sorgu Deposu depolama boyutu denetimleri arasındaki MAX_STORAGE_SIZE_MB
sınırını aştıysa salt okunur moda geçer.
SIZE_BASED_CLEANUP_MODE
etkinleştirilirse, MAX_STORAGE_SIZE_MB
sınırını zorlamak için temizleme mekanizması da tetikler.
Yeterli alan temizlendikten sonra Sorgu Deposu modu otomatik olarak yeniden okuma-yazma moduna geçer.
Önemli
İş yükü yakalamanızın 10 GB'tan fazla disk alanına ihtiyacı olduğunu düşünüyorsanız, sorgu planlarını yeniden kullanmak için iş yükünüzü yeniden düşünmeli ve iyileştirmelisiniz (örneğin, zorlamalı parametrelemekullanarak veya Sorgu Deposu yapılandırmalarını ayarlamalısınız.
SQL Server 2019'dan (15.x) başlayarak ve Azure SQL Veritabanı'nda sorgu yakalama ilkesi üzerinde ek denetim için QUERY_CAPTURE_MODE
CUSTOM olarak ayarlayabilirsiniz.
INTERVAL_LENGTH_MINUTES
Çalışma zamanı yürütme istatistikleri verilerinin Sorgu Deposu'nda toplandığı zaman aralığını belirler. Alan kullanımını iyileştirmek için, çalışma zamanı istatistikleri deposundaki çalışma zamanı yürütme istatistikleri sabit bir zaman aralığı boyunca toplanır. Bu sabit zaman penceresi INTERVAL_LENGTH_MINUTES bağımsız değişkeni kullanılarak yapılandırılır. INTERVAL_LENGTH_MINUTES bigint
SIZE_BASED_CLEANUP_MODE { AUTO | KAPALI }
Toplam veri miktarı maksimum boyuta yaklaştığında temizlemenin otomatik olarak etkinleştirilip etkinleştirilmediğini denetler.
OTOMATİK
Diskte boyut 90% MAX_STORAGE_SIZE_MBulaştığında boyut tabanlı temizleme otomatik olarak etkinleştirilir. Boyut tabanlı temizleme, önce en düşük maliyetli ve en eski sorguları kaldırır. Yaklaşık 80% MAX_STORAGE_SIZE_MBdurur. Bu değer varsayılan yapılandırma değeridir.
KAPALI
Boyut tabanlı temizleme otomatik olarak etkinleştirilmez.
SIZE_BASED_CLEANUP_MODE nvarchar
QUERY_CAPTURE_MODE { ALL | OTOMATİk | ÖZEL | NONE }
Şu anda etkin olan sorgu yakalama modunu atar. Her mod belirli sorgu yakalama ilkelerini tanımlar. QUERY_CAPTURE_MODE nvarchartürüdür.
Not
sorgu yakalama modu ALL, AUTO veya CUSTOM olarak ayarlandığında imleçler, Saklı Yordamlar içindeki sorgular ve Yerel olarak derlenmiş sorgular her zaman yakalanır.
TÜM
Tüm sorguları yakalar. ALL, SQL Server (SQL Server 2016 (13.x) ile SQL Server 2017 (14.x) arasında varsayılan yapılandırma değeridir.
OTOMATİK
Yürütme sayısına ve kaynak tüketimine göre ilgili sorguları yakalayın. Bu, SQL Server (SQL Server 2019 (15.x) ile başlayarak) ve Azure SQL Veritabanı için varsayılan yapılandırma değeridir.
Hiç kimse
Yeni sorguları yakalamayı durdurun. Sorgu Deposu, zaten yakalanan sorgular için derleme ve çalışma zamanı istatistiklerini toplamaya devam eder. Önemli sorguları yakalamayı kaçırabileceğiniz için bu yapılandırmayı dikkatli kullanın.
TÖRE
için geçerlidir: SQL Server (SQL Server 2019 (15.x) ile başlayarak)
QUERY_CAPTURE_POLICY seçenekleri üzerinde denetime izin verir. Özel yakalama ilkeleri, sorgu deposunun iş yükünüzdeki en önemli sorguları yakalamasına yardımcı olabilir. Özelleştirilebilir seçenekler için <query_capture_policy_option_list> bakın.
MAX_PLANS_PER_QUERY
Her sorgu için tutulan plan sayısı üst sınırını tanımlar. MAX_PLANS_PER_QUERY
WAIT_STATS_CAPTURE_MODE { ON | KAPALI }
için geçerlidir: SQL Server (SQL Server 2017 'den başlayarak (14.x)))
Sorgu başına bekleme istatistiklerinin yakalanıp yakalanmayacağını denetler.
ÜZERİNDE
Sorgu başına bekleme istatistikleri bilgileri yakalanır. Bu değer varsayılan yapılandırma değeridir.
KAPALI
Sorgu başına bekleme istatistikleri bilgileri yakalanmaz.
<query_capture_policy_option_list> :: =
için geçerlidir: SQL Server (SQL Server 2019 (15.x) ile başlayarak)
Sorgu Deposu yakalama ilkesi seçeneklerini denetler. STALE_CAPTURE_POLICY_THRESHOLD dışında, bu seçenekler sorguların tanımlanan Eski Yakalama İlkesi Eşiği değerinde yakalanması için gerçekleşmesi gereken OR koşullarını tanımlar.
SQL Server 2019 (15.x) ile başlayarak, aşağıdaki eşiklerden herhangi birine basıldığında QUERY_CAPTURE_MODE = AUTO
ayarı Sorgu Deposu ayrıntılarını yakalar:
- EXECUTION_COUNT = 30 yürütme = yürütme sayısı
- TOTAL_COMPILE_CPU_TIME_MS = 1 saniye = milisaniye cinsinden derleme süresi
- TOTAL_EXECUTION_CPU_TIME_MS = 100 ms = milisaniye cinsinden yürütme CPU süresi
Mesela:
EXECUTION_COUNT = 30,
TOTAL_COMPILE_CPU_TIME_MS = 1000,
TOTAL_EXECUTION_CPU_TIME_MS = 100
bu seçenekleri QUERY_CAPTURE_MODE = CUSTOM
ile özelleştirebilirsiniz:
STALE_CAPTURE_POLICY_THRESHOLD = tamsayı { GÜN | HOURS }
Bir sorgunun yakalanması gerekip gerekmediğini belirlemek için değerlendirme aralığını tanımlar. Varsayılan değer 1 gündür ve 1 saatten yedi güne ayarlanabilir.
EXECUTION_COUNT = tamsayı
Bir sorgunun değerlendirme süresi boyunca yürütülme sayısını tanımlar. Varsayılan değer 30'dur. Bu, varsayılan Eski Yakalama İlkesi Eşiği için sorgunun Sorgu Deposu'nda kalıcı olması için bir günde en az 30 kez yürütülmesi gerektiği anlamına gelir. EXECUTION_COUNT, int
türüdür. TOTAL_COMPILE_CPU_TIME_MS = tamsayı
Değerlendirme süresi boyunca sorgu tarafından kullanılan toplam derleme CPU süresini tanımlar. Varsayılan değer 1000'dir ve bu da varsayılan Eski Yakalama İlkesi Eşiği için sorgunun Sorgu Deposu'nda kalıcı olması için sorgu derlemesi sırasında harcanan cpu süresinin bir gün içinde toplam en az bir saniye olması gerektiği anlamına gelir. TOTAL_COMPILE_CPU_TIME_MS
türüdür. TOTAL_EXECUTION_CPU_TIME_MS = tamsayı
Değerlendirme süresi boyunca sorgu tarafından kullanılan toplam yürütme CPU süresini tanımlar. Varsayılan değer 100'dür. Bu, varsayılan Eski Yakalama İlkesi Eşiği için sorgunun Sorgu Deposu'nda kalıcı olması için bir günde yürütme sırasında harcanan toplam CPU süresi en az 100 ms olması gerektiği anlamına gelir. TOTAL_EXECUTION_CPU_TIME_MS, int
türüdür.
<recovery_option> ::=
için geçerlidir: SQL Server
Veritabanı kurtarma seçeneklerini ve disk G/Ç hata denetimini denetler.
DOLU
İşlem günlüğü yedeklemelerini kullanarak medya hatasından sonra tam kurtarma sağlar. Bir veri dosyası zarar görürse, medya kurtarma tüm kaydedilmiş işlemleri geri yükleyebilir. Daha fazla bilgi için bkz. Kurtarma modelleri.
BULK_LOGGED
Medya hatasından sonra kurtarma sağlar. Belirli büyük ölçekli veya toplu işlemler için en iyi performansı ve en az miktarda günlük alanı kullanımını birleştirir. En az günlüğe kaydedilebilecek işlemler hakkında bilgi için bkz. İşlem günlüğü. BULK_LOGGED kurtarma modeli altında, bu işlemlerin günlüğe kaydedilmesi çok azdır. Daha fazla bilgi için bkz. Kurtarma modelleri.
BASİT
En az günlük alanı kullanan basit bir yedekleme stratejisi sağlanır. Günlük alanı, sunucu hatası kurtarma için artık gerekli olmadığında otomatik olarak yeniden kullanılabilir. Daha fazla bilgi için bkz. Kurtarma modelleri.
Önemli
Basit kurtarma modelinin yönetilmesi diğer iki modele göre daha kolaydır, ancak bir veri dosyası zarar görürse daha fazla veri kaybına maruz kalma pahasına. En son veritabanı veya değişiklik veritabanı yedeğinden bu yana yapılan tüm değişiklikler kaybolur ve el ile yeniden giriş yapılması gerekir.
Varsayılan kurtarma modeli, model
sistem veritabanının kurtarma modeli tarafından belirlenir. Uygun kurtarma modelini seçme hakkında daha fazla bilgi için bkz. Kurtarma modelleri.
sys.databases katalog görünümündeki recovery_model
ve recovery_model_desc
sütunlarını inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin Recovery
özelliğini inceleyerek de durumu belirleyebilirsiniz.
TORN_PAGE_DETECTION { ON | KAPALI }
ÜZERİNDE
Tamamlanmamış sayfalar Veritabanı Altyapısı tarafından algılanabilir.
KAPALI
Tamamlanmamış sayfalar Veritabanı Altyapısı tarafından algılanamaz.
Önemli
Söz dizimi yapısı ON | TORN_PAGE_DETECTION OFF, SQL Server'ın gelecekteki bir sürümünde kaldırılacaktır. Yeni geliştirme çalışmalarında bu söz dizimi yapısını kullanmaktan kaçının ve söz dizimi yapısını kullanan uygulamaları değiştirmeyi planlayın. Bunun yerine PAGE_VERIFY seçeneğini kullanın.
PAGE_VERIFY { SAĞLAMA TOPLAMı | TORN_PAGE_DETECTION | NONE }
Disk G/Ç yolu hatalarından kaynaklanan bozuk veritabanı sayfalarını bulur. Veritabanı bozulması sorunlarının nedeni disk G/Ç yolu hataları olabilir. Bu hatalar genellikle sayfa diske yazılırken oluşan güç kesintilerinden veya disk donanım hatalarından kaynaklanır.
SAĞLAMA TOPLAMI
Sayfanın tamamında bir sağlama toplamı hesaplar ve diske bir sayfa yazıldığında değeri sayfa üst bilgisinde depolar. Sayfa diskten okunduğunda sağlama toplamı yeniden derlenir ve sayfa üst bilgisinde depolanan sağlama toplamı değeriyle karşılaştırılır. Değerler eşleşmiyorsa, hata iletisi 824 (sağlama toplamı hatasını gösterir) hem SQL Server hata günlüğüne hem de Windows olay günlüğüne bildirilir. Sağlama toplamı hatası G/Ç yolu sorununu gösterir. Kök nedeni belirlemek için donanım, üretici yazılımı sürücüleri, BIOS, filtre sürücüleri (virüs yazılımı gibi) ve diğer G/Ç yolu bileşenlerinin araştırılması gerekir.
TORN_PAGE_DETECTION
8 kilobaytlık (KB) veritabanı sayfasında her 512 baytlık kesim için belirli bir 2 bitlik desen kaydeder ve sayfa diske yazıldığında veritabanı sayfası üst bilgisinde depolanır. Sayfa diskten okunduğunda, sayfa üst bilgisinde depolanan kopmuş bitler gerçek sayfa kesimi bilgileriyle karşılaştırılır.
Eşleşmeyen değerler, sayfanın yalnızca bir bölümünün diske yazıldığını gösterir. Bu durumda, hata iletisi 824 (bozuk sayfa hatasını gösterir) hem SQL Server hata günlüğüne hem de Windows olay günlüğüne bildirilir. Sayfa gerçekten tamamlanmamış bir yazma işlemiyse, yırtılmış sayfalar genellikle veritabanı kurtarma tarafından algılanır. Ancak, diğer G/Ç yolu hataları herhangi bir zamanda sayfayı yırtmasına neden olabilir.
Hiç kimse
Veritabanı sayfası yazma işlemleri CHECKSUM veya TORN_PAGE_DETECTION değeri oluşturmaz. SQL Server, sayfa üst bilgisinde CHECKSUM veya TORN_PAGE_DETECTION değeri olsa bile okuma sırasında sağlama toplamını veya bozuk sayfayı doğrulamaz.
PAGE_VERIFY seçeneğini kullanırken aşağıdaki önemli noktaları göz önünde bulundurun:
Varsayılan değer CHECKSUM
' dir. Bir kullanıcı veya sistem veritabanı SQL Server 2005 (9.x) veya sonraki bir sürüme yükseltildiğinde, PAGE_VERIFY değeri (NONE veya TORN_PAGE_DETECTION) değiştirilmez. CHECKSUM olarak değiştirmenizi öneririz.
Not
SQL Server'ın önceki sürümlerinde, PAGE_VERIFY veritabanı seçeneği
tempdb
veritabanı için NONE olarak ayarlanmıştır ve değiştirilemez. SQL Server 2008 (10.0.x) ile başlayarak,tempdb
veritabanının varsayılan değeri SQL Server'ın yeni yüklemeleri için CHECKSUM değeridir. Bir yükleme SQL Server'ı yükseltirken varsayılan değer NONE olarak kalır. Seçenek değiştirilebilir.tempdb
veritabanı için CHECKSUM kullanmanızı öneririz.TORN_PAGE_DETECTION daha az kaynak kullanabilir, ancak CHECKSUM korumasının en düşük alt kümesini sağlar.
PAGE_VERIFY, veritabanını çevrimdışına almadan, veritabanını kilitlemeden veya başka bir şekilde bu veritabanında eşzamanlılık engellenmeden ayarlanabilir.
CHECKSUM, TORN_PAGE_DETECTION için birbirini dışlar. Her iki seçenek de aynı anda etkinleştirilemiyor.
Bozuk bir sayfa veya sağlama toplamı hatası algılandığında, verileri geri yükleyerek veya hata yalnızca dizin sayfalarıyla sınırlıysa dizini yeniden oluşturarak kurtarabilirsiniz. Sağlama toplamı hatasıyla karşılaşırsanız, etkilenen veritabanı sayfasının veya sayfaların türünü belirlemek için DBCC CHECKDB'yi çalıştırın. Geri yükleme seçenekleri hakkında daha fazla bilgi için bkz. RESTORE Bağımsız Değişkenleri. Verilerin geri yüklenmesi veri bozulması sorununu çözse de, devam eden hataları önlemek için kök neden (örneğin, disk donanım hatası) en kısa sürede tanılanmalı ve düzeltilmelidir.
SQL Server sağlama toplamı, bozuk sayfa veya diğer G/Ç hatasıyla başarısız olan tüm okumaları dört kez yeniden denenir. Yeniden deneme girişimlerinden herhangi birinde okuma başarılı olursa hata günlüğüne bir ileti yazılır. Okuma işlemini tetikleyen komut devam eder. Yeniden deneme girişimleri başarısız olursa komut 824 hata iletisiyle başarısız olur.
823, 824 ve 825 hata iletileri hakkında daha fazla bilgi için bkz:
- MSSQLSERVER hata 823 sorunlarını giderme
- MSSQLSERVER hata 824 sorunlarını giderme
- MSSQLSERVER hata 825 (yeniden okuma) sorunlarını giderme.
Bu seçeneğin geçerli ayarı, sys.databases katalog görünümündeki page_verify_option
sütunu veya DATABASEPROPERTYEX işlevinin IsTornPageDetectionEnabled
özelliği incelenerek belirlenebilir.
<remote_data_archive_option> ::=
için geçerlidir: SQL Server (SQL Server 2016 (13.x) ile başlayarak)
Veritabanı için Stretch Database'i etkinleştirir veya devre dışı bırakır. Daha fazla bilgi için bkz. Stretch Database
Önemli
Stretch Database, SQL Server 2022 (16.x) ve Azure SQL Veritabanı'nda kullanım dışıdır. Bu özellik, Veritabanı Altyapısı'nın gelecekteki bir sürümünde kaldırılacaktır. Bu özelliği yeni geliştirme çalışmalarında kullanmaktan kaçının ve şu anda bu özelliği kullanan uygulamaları değiştirmeyi planlayın.
REMOTE_DATA_ARCHIVE = { ON ( SUNUCU = <server_name>, { CREDENTIAL = <db_scoped_credential_name> | FEDERATED_SERVICE_ACCOUNT = ON | OFF } ) | KAPALI
ÜZERİNDE
Veritabanı için Stretch Database'i etkinleştirir. Ek önkoşullar da dahil olmak üzere daha fazla bilgi için bkz.bir veritabanı için Stretch Database'i etkinleştirme
. Bir tablo için Stretch Database'i etkinleştirmek için
db_owner
izin gerektirir. Bir veritabanı için Stretch Database'i etkinleştirmek içindb_owner
veCONTROL DATABASE
izinleri gerektirir.SERVER = <server_name>
Azure sunucusunun adresini belirtir. Adın
.database.windows.net
bölümünü ekleyin. Örneğin,MyStretchDatabaseServer.database.windows.net
.CREDENTIAL = <db_scoped_credential_name>
SQL Server örneğinin Azure sunucusuna bağlanmak için kullandığı veritabanı kapsamlı kimlik bilgilerini belirtir. Bu komutu çalıştırmadan önce kimlik bilgilerinin mevcut olduğundan emin olun. Daha fazla bilgi için bkz. create DATABASE SCOPED CREDENTIAL
. FEDERATED_SERVICE_ACCOUNT = { ON | KAPALI }
Aşağıdaki koşulların tümü doğru olduğunda uzak Azure sunucusuyla iletişim kurmak üzere şirket içi SQL Server için bir federasyon hizmet hesabı kullanabilirsiniz.
- SQL Server örneğinin çalıştığı hizmet hesabı bir etki alanı hesabıdır.
- Etki alanı hesabı, Active Directory'si Microsoft Entra Id ile federasyon olan bir etki alanına aittir.
- Uzak Azure sunucusu, Microsoft Entra kimlik doğrulamasını destekleyecek şekilde yapılandırılmıştır.
- SQL Server örneğinin çalıştığı hizmet hesabı, uzak Azure sunucusunda
dbmanager
veyasysadmin
hesabı olarak yapılandırılmalıdır.
Federasyon hizmet hesabının ON olduğunu belirtirseniz, CREDENTIAL bağımsız değişkenini de belirtemezsiniz. KAPALI seçeneğini belirtirseniz CREDENTIAL bağımsız değişkenini belirtin.
KAPALI
Veritabanı için Stretch Database'i devre dışı bırakır. Daha fazla bilgi için bkz. Stretch Database'i devre dışı bırakma veuzak verileri geri getirme.
Bir veritabanı için Stretch Database'i devre dışı bırakabilmeniz için, veritabanında artık Stretch Database için etkinleştirilmiş herhangi bir tablo olmaması gerekir. Stretch Database'i devre dışı bırakdıktan sonra veri geçişi durdurulur. Ayrıca, sorgu sonuçları artık uzak tablolardan gelen sonuçları içermez.
Stretch Database'in devre dışı bırakılması uzak veritabanını kaldırmaz. Uzak veritabanını silmek için Azure portalını kullanarak bırakın.
PERSISTENT_LOG_BUFFER
için geçerlidir: SQL Server 2017 (14.x) ve üzeri.
Bu seçenek belirtildiğinde, işlem günlüğü arabelleği, kalıcı günlük arabelleği olarak da bilinen Depolama Sınıfı Belleği (NVDIMM-N geçici olmayan depolama) tarafından yedeklenen bir disk cihazında bulunan bir birimde oluşturulur. Daha fazla bilgi için bkz. Depolama Sınıfı Bellek kullanarak İşlem İşleme gecikmesi hızlandırmasını
<service_broker_option> ::=
için geçerlidir: SQL Server
Aşağıdaki Hizmet Aracısı seçeneklerini denetler: İleti teslimini etkinleştirir veya devre dışı bırakır, yeni bir Hizmet Aracısı tanımlayıcısı ayarlar veya konuşma önceliklerini AÇLI veya KAPALI olarak ayarlar.
ENABLE_BROKER
Hizmet Aracısı'nın belirtilen veritabanı için etkinleştirildiğini belirtir. İleti teslimi başlatılır ve sys.databases katalog görünümünde is_broker_enabled
bayrağı true olarak ayarlanır. Veritabanı mevcut Hizmet Aracısı tanımlayıcısını tutar. Veritabanı yansıtma yapılandırmasında sorumlu olduğunda hizmet aracısı etkinleştirilemiyor.
Not
ENABLE_BROKER özel veritabanı kilidi gerektirir. Diğer oturumlarda veritabanındaki kaynaklar kilitliyse, ENABLE_BROKER diğer oturumlar kilitlerini serbest bırakana kadar bekler. Kullanıcı veritabanında Hizmet Aracısı'nı etkinleştirmek için, veritabanını tek kullanıcı moduna almak gibi ALTER DATABASE SET ENABLE_BROKER
deyimini çalıştırmadan önce veritabanını başka hiçbir oturumun kullanmadığından emin olun.
msdb
veritabanında Hizmet Aracısı'nı etkinleştirmek için, önce SQL Server Aracısı'nı durdurarak Hizmet Aracısı'nın gerekli kilidi alabilmesini sağlayın.
DISABLE_BROKER
Hizmet Aracısı'nın belirtilen veritabanı için devre dışı bırakıldığını belirtir. İleti teslimi durdurulur ve is_broker_enabled
bayrağı sys.databases katalog görünümünde false olarak ayarlanır. Veritabanı mevcut Hizmet Aracısı tanımlayıcısını tutar.
NEW_BROKER
Veritabanının yeni bir aracı tanımlayıcısı alması gerektiğini belirtir. Veritabanı yeni bir hizmet aracısı işlevi görür. Bu nedenle, veritabanındaki tüm mevcut konuşmalar, son iletişim kutusu iletileri üretilmeden hemen kaldırılır. Eski Hizmet Aracısı tanımlayıcıya başvuran tüm yollar yeni tanımlayıcıyla yeniden oluşturulmalıdır.
ERROR_BROKER_CONVERSATIONS
Hizmet Aracısı ileti teslimin etkinleştirildiğini belirtir. Bu ayar, veritabanı için mevcut Hizmet Aracısı tanımlayıcısını korur. Hizmet Aracısı veritabanındaki tüm konuşmaları bir hatayla sonlandırır. Bu ayar, uygulamaların mevcut konuşmalar için düzenli temizleme çalıştırmasına olanak tanır.
HONOR_BROKER_PRIORITY { ON | KAPALI }
ÜZERİNDE
Gönderme işlemleri, konuşmalara atanan öncelik düzeylerini dikkate alır. Yüksek öncelikli düzeylere sahip konuşmalardan gelen iletiler, düşük öncelikli düzeylere atanan konuşmalardan önce gönderilir.
KAPALI
Gönderme işlemleri, tüm konuşmalar varsayılan öncelik düzeyine sahipmiş gibi çalışır.
HONOR_BROKER_PRIORITY seçeneğindeki değişiklikler, gönderilmeyi bekleyen iletileri olmayan yeni iletişim kutuları veya iletişim kutuları için hemen geçerli olur. ALTER DATABASE çalıştırıldığında gönderilecek iletileri içeren iletişim kutuları, iletişim kutusunun bazı iletileri gönderilene kadar yeni ayarı almaz. Tüm iletişim kutuları yeni ayarı kullanmaya başlamadan önce geçmesi gereken süre önemli ölçüde değişebilir.
Bu özelliğin geçerli ayarı, sys.databases katalog görünümündeki is_broker_priority_honored
sütununda bildirilir.
<snapshot_option> ::=
İşlem yalıtım düzeyini hesaplar.
ALLOW_SNAPSHOT_ISOLATION { ON | KAPALI }
ÜZERİNDE
Veritabanı düzeyinde Anlık Görüntü seçeneğini etkinleştirir. Etkinleştirildiğinde, hiçbir işlem Anlık Görüntü Yalıtımı kullanmasa bile DML deyimleri satır sürümleri oluşturmaya başlar. Bu seçenek etkinleştirildikten sonra işlemler SNAPSHOT işlem yalıtım düzeyini belirtebilir. Bir işlem SNAPSHOT yalıtım düzeyinde çalıştırıldığında, tüm deyimler işlemin başlangıcında mevcut olan verilerin anlık görüntüsünü görür. SNAPSHOT yalıtım düzeyinde çalışan bir işlem birden çok veritabanındaki verilere erişiyorsa, ALLOW_SNAPSHOT_ISOLATION tüm veritabanlarında AÇILACAK şekilde ayarlanmalıdır veya işlemdeki her deyim, from yan tümcesindeki herhangi bir başvuruda kilit ipuçlarını ALLOW_SNAPSHOT_ISOLATION OFF olduğu bir veritabanındaki bir tabloya kilitleme ipuçlarını kullanmalıdır.
KAPALI
Veritabanı düzeyinde Anlık Görüntü seçeneğini kapatır. İşlemler SNAPSHOT işlemi yalıtım düzeyini belirtemez.
ALLOW_SNAPSHOT_ISOLATION yeni bir duruma ayarladığınızda (ON'dan KAPALI'ya veya KAPALI'dan ON'a), VERITABANıNDAki tüm mevcut işlemler işlenmeden ALTER DATABASE denetimi çağırana döndürmez. Veritabanı ZATEN ALTER DATABASE deyiminde belirtilen durumdaysa, denetim çağırana hemen döndürülür. ALTER DATABASE deyimi hızlı bir şekilde döndürülmezse, uzun süre çalışan işlemler olup olmadığını belirlemek için sys.dm_tran_active_snapshot_database_transactions kullanın. ALTER DATABASE deyimi iptal edilirse, veritabanı ALTER DATABASE başlatıldığında olduğu durumda kalır.
sys.databases katalog görünümü, veritabanındaki anlık görüntü yalıtım işlemlerinin durumunu gösterir.
snapshot_isolation_state_desc
= IN_TRANSITION_TO_ON, ALTER DATABASE ... ALLOW_SNAPSHOT_ISOLATION OFF
komutu altı saniye duraklatılır ve işlemi yeniden dener.
Veritabanı ÇEVRİmDIŞI olduğunda ALLOW_SNAPSHOT_ISOLATION durumunu değiştiremezsiniz.
READ_ONLY veritabanında ALLOW_SNAPSHOT_ISOLATION ayarlarsanız, veritabanı daha sonra READ_WRITE olarak ayarlanırsa ayar korunur.
master
, model
, msdb
ve tempdb
veritabanlarının ALLOW_SNAPSHOT_ISOLATION ayarlarını değiştirebilirsiniz.
tempdb
ayarını değiştirirseniz, Veritabanı Altyapısı örneği her durdurulduğunda ve yeniden başlatıldığında ayar korunur.
model
ayarını değiştirirseniz, bu ayar tempdb
dışında oluşturulan tüm yeni veritabanları için varsayılan ayar olur.
seçenek, master
ve msdb
veritabanları için varsayılan olarak ON'dır.
Bu seçeneğin geçerli ayarı, sys.databases katalog görünümündeki snapshot_isolation_state
sütunu incelenerek belirlenebilir.
READ_COMMITTED_SNAPSHOT { ON | KAPALI }
ÜZERİNDE
Veritabanı düzeyinde Read-Committed Anlık Görüntü seçeneğini etkinleştirir. Etkinleştirildiğinde, hiçbir işlem Anlık Görüntü Yalıtımı kullanmasa bile DML deyimleri satır sürümleri oluşturmaya başlar. Bu seçenek etkinleştirildikten sonra, tamamlanan okuma yalıtım düzeyini belirten işlemler kilitleme yerine satır sürümü oluşturma kullanır. Tüm deyimler, bir işlem READ COMMITTED yalıtım düzeyinde çalıştırıldığında deyiminin başında mevcut olan verilerin anlık görüntüsünü görür.
KAPALI
Veritabanı düzeyinde Read-Committed Anlık Görüntü seçeneğini kapatır. READ COMMITTED yalıtım düzeyini belirten işlemler kilitlemeyi kullanır.
AÇıK veya KAPALI READ_COMMITTED_SNAPSHOT ayarlamak için, ALTER DATABASE komutunu çalıştıran bağlantı dışında veritabanına etkin bağlantı olmaması gerekir. Ancak veritabanının tek kullanıcı modunda olması gerekmez. Veritabanı ÇEVRİmDIŞI olduğunda bu seçeneğin durumunu değiştiremezsiniz.
READ_ONLY veritabanında READ_COMMITTED_SNAPSHOT ayarlarsanız, veritabanı daha sonra READ_WRITE olarak ayarlandığında ayar korunur.
READ_COMMITTED_SNAPSHOT master
, tempdb
veya msdb
sistem veritabanları için AÇIlamıyor.
model
ayarını değiştirirseniz, bu ayar tempdb
dışında oluşturulan tüm yeni veritabanları için varsayılan ayar olur.
Bu seçeneğin geçerli ayarı, sys.databases katalog görünümündeki is_read_committed_snapshot_on
sütunu incelenerek belirlenebilir.
Uyarı
DAYANıKLıLıK = SCHEMA_ONLYile bir tablo oluşturulduğunda ve READ_COMMITTED_SNAPSHOT daha sonra ALTER DATABASE kullanılarak değiştirildiğinde, tablodaki veriler kaybolur.
MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT { ON | KAPALI }
için geçerlidir: SQL Server (SQL Server 2014 (12.x) ile başlayarak)
ÜZERİNDE
İşlem yalıtım düzeyi SNAPSHOT'dan daha düşük bir yalıtım düzeyine ayarlandığında, bellek için iyileştirilmiş tablolardaki tüm yorumlanan Transact-SQL işlemleri SNAPSHOT yalıtımı altında çalıştırılır. Anlık görüntüden düşük yalıtım düzeylerine örnek olarak READ COMMITTED veya READ UNCOMMITTED verilebilir. Bu işlemler, işlem yalıtım düzeyinin oturum düzeyinde açıkça ayarlanıp ayarlanmadığını veya varsayılanın örtük olarak kullanılıp kullanılmadığını çalıştırır.
KAPALI
Bellek için iyileştirilmiş tablolarda yorumlanan Transact-SQL işlemleri için işlem yalıtım düzeyini yükseltmez.
Veritabanı ÇEVRİmDIŞI olduğunda MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT durumunu değiştiremezsiniz.
Varsayılan seçenek KAPALI'dır.
Bu seçeneğin geçerli ayarı, sys.databases katalog görünümündeki is_memory_optimized_elevate_to_snapshot_on
sütunu incelenerek belirlenebilir.
<sql_option> ::=
VERITABANı düzeyinde ANSI uyumluluk seçeneklerini denetler.
ANSI_NULL_DEFAULT { ON | KAPALI }
Create TABLE veya ALTER TABLE deyimlerinde null atanabilirliğin açıkça tanımlanmadığı clr kullanıcı tanımlı tür bir sütunun veya
ÜZERİNDE
Tanımlanmamış bir sütun için varsayılan değer NULL'dir.
KAPALI
Tanımlanmamış bir sütun için varsayılan değer NULL DEĞİlDİr.
SET deyimi kullanılarak ayarlanan bağlantı düzeyi ayarları, ANSI_NULL_DEFAULT için varsayılan veritabanı düzeyi ayarını geçersiz kılar. ODBC ve OLE DB istemcileri, oturum için varsayılan olarak AÇıK olarak ANSI_NULL_DEFAULT bir bağlantı düzeyi SET deyimi ayarı gönderir. SQL Server örneğine bağlandığınızda istemciler deyimini çalıştırır. Daha fazla bilgi için bkz. set ANSI_NULL_DFLT_ON
ANSI uyumluluğu için, ANSI_NULL_DEFAULT veritabanı seçeneğinin ON olarak ayarlanması, veritabanının varsayılan değerini NULL olarak değiştirir.
sys.databases katalog görünümündeki is_ansi_null_default_on
sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsAnsiNullDefault
özelliğini inceleyerek de durumu belirleyebilirsiniz.
ANSI_NULLS { ON | KAPALI }
ÜZERİNDE
Null değerle yapılan tüm karşılaştırmalar BİlİNMEYEN olarak değerlendirilir.
KAPALI
Unicode olmayan değerlerin null değerle karşılaştırmaları, her iki değer de NULL ise TRUE olarak değerlendirilir.
Önemli
SQL Server'ın gelecekteki bir sürümünde ANSI_NULLS her zaman AÇIK olur ve seçeneği açıkça KAPALI olarak ayarlayan tüm uygulamalar hata oluşturur. Bu özelliği yeni geliştirme çalışmalarında kullanmaktan kaçının ve şu anda bu özelliği kullanan uygulamaları değiştirmeyi planlayın.
SET deyimi kullanılarak ayarlanan bağlantı düzeyi ayarları, ANSI_NULLS için varsayılan veritabanı ayarını geçersiz kılar. ODBC ve OLE DB istemcileri, oturum için varsayılan olarak AÇıK olarak ANSI_NULLS bir bağlantı düzeyi SET deyimi ayarı gönderir. SQL Server örneğine bağlandığınızda istemciler deyimini çalıştırır. Daha fazla bilgi için bkz. set ANSI_NULLS
Önemli
SET ANSI_NULLS hesaplanan sütunlarda veya dizinlenmiş görünümlerde dizin oluşturduğunuzda veya dizinlerde değişiklik yaptığınızda da ON olarak ayarlanmalıdır.
sys.databases katalog görünümündeki is_ansi_nulls_on
sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsAnsiNullsEnabled
özelliğini inceleyerek de durumu belirleyebilirsiniz.
ANSI_PADDING { ON | KAPALI }
ÜZERİNDE
Dizeler dönüştürmeden önce aynı uzunlukta doldurulur. Ayrıca bir varchar veya nvarchar veri türüne eklemeden önce aynı uzunlukta doldurulur.
KAPALI
Karakter değerlerinde sondaki boşlukları
varchar veya nvarchar sütunlarınaekler. Ayrıca, varbinary sütunlarına eklenen ikili değerlerde sondaki sıfırları bırakır. Değerler sütunun uzunluğuna göre doldurulamaz. KAPALI belirtildiğinde, bu ayar yalnızca yeni sütunların tanımını etkiler.
Önemli
SQL Server'ın gelecekteki bir sürümünde, ANSI_PADDING her zaman AÇIK olur ve seçeneği açıkça KAPALI olarak ayarlayan tüm uygulamalar bir hata oluşturur. Bu özelliği yeni geliştirme çalışmalarında kullanmaktan kaçının ve şu anda bu özelliği kullanan uygulamaları değiştirmeyi planlayın. ANSI_PADDING her zaman ON olarak ayarlamanızı öneririz. ANSI_PADDING hesaplanan sütunlarda veya dizinlenmiş görünümlerde dizin oluştururken veya işlerken ON olmalıdır.
char(n) ve ikili(n) null değere izin veren sütunlar, ANSI_PADDING ON olarak ayarlandığında sütun uzunluğuna doldurulur. ANSI_PADDING KAPALI olduğunda sondaki boşluklar ve sıfırlar kırpılır. char(n) ve binary(n) null değere izin verilmeyen sütunlar her zaman sütunun uzunluğuna doldurulur.
SET deyimi kullanılarak ayarlanan bağlantı düzeyi ayarları, ANSI_PADDING için varsayılan veritabanı düzeyi ayarını geçersiz kılar. ODBC ve OLE DB istemcileri, varsayılan olarak oturum için AÇıK olarak ANSI_PADDING bir bağlantı düzeyi SET deyimi ayarı gönderir. SQL Server örneğine bağlandığınızda istemciler deyimini çalıştırır. Daha fazla bilgi için bkz. set ANSI_PADDING
sys.databases katalog görünümündeki is_ansi_padding_on
sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsAnsiPaddingEnabled
özelliğini inceleyerek de durumu belirleyebilirsiniz.
ANSI_WARNINGS { ON | KAPALI }
ÜZERİNDE
Sıfıra bölme gibi koşullar oluştuğunda hatalar veya uyarılar verilir. Toplama işlevlerinde null değerler göründüğünde de hatalar ve uyarılar verilir.
KAPALI
Sıfıra bölme gibi koşullar oluştuğunda hiçbir uyarı tetiklenmez ve null değerler döndürülür.
Önemli
HESAPLANAN sütunlarda veya dizinlenmiş görünümlerde dizin oluşturduğunuzda veya dizinlerde değişiklik yaptığınızda SET ANSI_WARNINGS ON olarak ayarlanmalıdır.
SET deyimi kullanılarak ayarlanan bağlantı düzeyi ayarları, ANSI_WARNINGS için varsayılan veritabanı ayarını geçersiz kılar. ODBC ve OLE DB istemcileri, oturum için varsayılan olarak AÇıK olarak ANSI_WARNINGS bir bağlantı düzeyi SET deyimi ayarı gönderir. SQL Server örneğine bağlandığınızda istemciler deyimini çalıştırır. Daha fazla bilgi için bkz. set ANSI_WARNINGS
sys.databases katalog görünümündeki is_ansi_warnings_on
sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsAnsiWarningsEnabled
özelliğini inceleyerek de durumu belirleyebilirsiniz.
ARITHABORT { ON | KAPALI }
ÜZERİNDE
Sorgu yürütme sırasında taşma veya sıfıra bölme hatası oluştuğunda sorgu sonlandırılır.
KAPALI
Bu hatalardan biri oluştuğunda bir uyarı iletisi görüntülenir. Sorgu, toplu iş veya işlem, bir uyarı görüntülense bile hata oluşmamış gibi işlemeye devam eder.
Önemli
SET ARITHABORT, hesaplanan sütunlarda veya dizinlenmiş görünümlerde dizin oluşturduğunuzda veya dizinlerde değişiklik yaptığınızda ON olarak ayarlanmalıdır.
sys.databases katalog görünümündeki is_arithabort_on
sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsArithmeticAbortEnabled
özelliğini inceleyerek de durumu belirleyebilirsiniz.
COMPATIBILITY_LEVEL = { 160 | 150 | 140 | 130 | 120 | 110 | 100 }
Daha fazla bilgi için bkz. alter database uyumluluk düzeyi
CONCAT_NULL_YIELDS_NULL { ON | KAPALI }
ÜZERİNDE
bir birleştirme işleminin sonucu, işlenenlerden biri NULL olduğunda NULL'dır. Örneğin, "This is" ve NULL karakter dizesini birleştirmek "This is" değeri yerine NULL değerini döndürür.
KAPALI
Null değer boş karakter dizesi olarak kabul edilir.
Önemli
CONCAT_NULL_YIELDS_NULL hesaplanan sütunlarda veya dizinlenmiş görünümlerde dizin oluştururken veya dizinlerde değişiklik yaparken ON olarak ayarlanmalıdır.
SQL Server'ın gelecek sürümlerinde CONCAT_NULL_YIELDS_NULL her zaman AÇIK olur ve seçeneği açıkça KAPALI olarak ayarlayan tüm uygulamalar bir hata tetikler. Bu özelliği yeni geliştirme çalışmalarında kullanmaktan kaçının ve şu anda bu özelliği kullanan uygulamaları değiştirmeyi planlayın.
SET deyimi kullanılarak ayarlanan bağlantı düzeyi ayarları, CONCAT_NULL_YIELDS_NULL için varsayılan veritabanı ayarını geçersiz kılar. Varsayılan olarak, ODBC ve OLE DB istemcileri SQL Server örneğine bağlanırken oturum için CONCAT_NULL_YIELDS_NULL bağlantı düzeyi SET deyimi ayarı gönderir. Daha fazla bilgi için bkz. set CONCAT_NULL_YIELDS_NULL
sys.databases katalog görünümündeki is_concat_null_yields_null_on
sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsNullConcat
özelliğini inceleyerek de durumu belirleyebilirsiniz.
NUMERIC_ROUNDABORT { ON | KAPALI }
ÜZERİNDE
İfadede duyarlık kaybı oluştuğunda bir hata oluşturulur.
KAPALI
Duyarlık kaybı bir hata iletisi oluşturmaz ve sonuç, sonucun depolandığı sütunun veya değişkenin duyarlığına yuvarlanr.
Önemli
hesaplanan sütunlarda veya dizinlenmiş görünümlerde dizin oluştururken veya dizinlerde değişiklik yaparken NUMERIC_ROUNDABORT KAPALI olarak ayarlanmalıdır.
Bu seçeneğin durumunu, sys.databases katalog görünümündeki is_numeric_roundabort_on
sütununda belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsNumericRoundAbortEnabled
özelliğini inceleyerek de durumu belirleyebilirsiniz.
QUOTED_IDENTIFIER { ON | KAPALI }
ÜZERİNDE
Sınırlandırılmış tanımlayıcıları içine almak için çift tırnak işaretleri kullanılabilir.
Çift tırnak işaretleri ile sınırlandırılan tüm dizeler nesne tanımlayıcıları olarak yorumlanır. Teklif edilen tanımlayıcıların tanımlayıcılar için Transact-SQL kurallarına uyması gerekmez. Bunlar anahtar sözcükler olabilir ve Transact-SQL tanımlayıcılarında izin verilmeyen karakterler içerebilir. Çift tırnak işareti (
"
) tanımlayıcının bir parçasıysa, iki çift tırnak işaretiyle (""
) temsil edilebilir.KAPALI
Tanımlayıcılar tırnak içinde olamaz ve tanımlayıcılar için tüm Transact-SQL kurallarını izlemelidir. Değişmez değerler tek veya çift tırnak işaretiyle sınırlandırılabilir.
SQL Server, tanımlayıcıların köşeli ayraçlarla ([
ve ]
) sınırlandırılmasına da olanak tanır. Köşeli ayraçlı tanımlayıcılar, QUOTED_IDENTIFIER ayarı ne olursa olsun her zaman kullanılabilir. Daha fazla bilgi için bkz.
Tablo oluşturulduğunda, QUOTED IDENTIFIER seçeneği her zaman tablonun meta verilerinde ON olarak depolanır. Tablo oluşturulduğunda seçenek KAPALI olarak ayarlansa bile seçenek depolanır.
SET deyimi kullanılarak ayarlanan bağlantı düzeyi ayarları, QUOTED_IDENTIFIER için varsayılan veritabanı ayarını geçersiz kılar. ODBC ve OLE DB istemcileri, varsayılan olarak AÇıK olarak QUOTED_IDENTIFIER bir bağlantı düzeyi SET deyimi ayarı oluşturur. SQL Server örneğine bağlandığınızda istemciler deyimini çalıştırır. Daha fazla bilgi için bkz. set QUOTED_IDENTIFIER
sys.databases katalog görünümündeki is_quoted_identifier_on
sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsQuotedIdentifiersEnabled
özelliğini inceleyerek de durumu belirleyebilirsiniz.
RECURSIVE_TRIGGERS { ON | KAPALI }
ÜZERİNDE
AFTER tetikleyicilerinin özyinelemeli olarak tetiklemesine izin verilir.
KAPALI
sys.databases katalog görünümündeki
is_recursive_triggers_on
sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevininIsRecursiveTriggersEnabled
özelliğini inceleyerek de durumu belirleyebilirsiniz.
Not
RECURSIVE_TRIGGERS KAPALI olarak ayarlandığında yalnızca doğrudan özyineleme engellenir. Dolaylı özyineleme özelliğini devre dışı bırakmak için iç içe tetikleyiciler sunucusu seçeneğini de 0 olarak ayarlamanız gerekir.
sys.databases katalog görünümündeki is_recursive_triggers_on
sütununu veya DATABASEPROPERTYEX işlevinin IsRecursiveTriggersEnabled
özelliğini inceleyerek bu seçeneğin durumunu belirleyebilirsiniz.
<suspend_for_snapshot_backup> ::=
için geçerlidir: SQL Server (SQL Server 2022 (16.x) ile başlayarak)
Anlık görüntü yedekleme için veritabanlarını askıya alır. Bir veya daha fazla veritabanından oluşan bir grup tanımlayabilir. Yalnızca kopyalama modunu belirleyebilir.
SET SUSPEND_FOR_SNAPSHOT_BACKUP = { ON | OFF }
Veritabanlarını askıya alır veya askıya alır. Varsayılan KAPALI.
MODE = COPY_ONLY
Opsiyonel. COPY_ONLY modunu kullanır.
<target_recovery_time_option> ::=
için geçerlidir: SQL Server (SQL Server 2012 (11.x) ile başlayarak)
Veritabanı başına dolaylı denetim noktalarının sıklığını belirtir. SQL Server 2016'dan (13.x) başlayarak yeni veritabanları için varsayılan değer 1 dakika' dir ve bu da veritabanının dolaylı denetim noktaları kullandığını gösterir. Eski sürümler için varsayılan değer 0'dır ve bu, veritabanının sıklığı sunucu örneğinin kurtarma aralığı ayarına bağlı olan otomatik denetim noktaları kullandığını gösterir. Microsoft çoğu sistem için 1 dakika önerir.
TARGET_RECOVERY_TIME = target_recovery_time { SECONDS | DAKİkA }
target_recovery_time
Kilitlenme durumunda belirtilen veritabanının kurtarılması için gereken süre üst sınırını belirtir.
target_recovery_time , inttürüdür. SANİYE
target_recovery_time saniye sayısı olarak ifade edilir.
TUTANAK
target_recovery_time dakika sayısı olarak ifade edilir.
Dolaylı denetim noktaları hakkında daha fazla bilgi için bkz. Veritabanı denetim noktaları.
WITH <sonlandırma> ::=
Veritabanı bir durumdan diğerine geçirildiğinde tamamlanmamış işlemlerin ne zaman geri alınıp alınamayacaını belirtir. Sonlandırma yan tümcesi atlanırsa, veritabanında herhangi bir kilit varsa ALTER DATABASE deyimi süresiz olarak bekler. Yalnızca bir sonlandırma yan tümcesi belirtilebilir ve SET yan tümcelerini izler.
Not
Tüm veritabanı seçenekleri WITH <sonlandırma> yan tümcesini kullanmaz. Daha fazla bilgi için, bu makalenin "Açıklamalar" bölümünün ayar seçenekleri
tamsayıdan sonra geri alma [SECONDS] | HEMEN GERI ALMA
Belirtilen saniye sayısından sonra mı yoksa hemen mi geri alınmayacağını belirtir.
NO_WAIT
İstenen veritabanı durumu veya seçenek değişikliği hemen tamamlanamadıysa isteğin başarısız olduğunu belirtir. Hemen tamamlanması, işlemlerin kendi başına işlenmesini veya geri alınması beklenmediği anlamına gelir.
Seçenekleri ayarlama
Veritabanı seçeneklerinin geçerli ayarlarını almak için
Veritabanı seçeneğini ayarladıktan sonra yeni ayar hemen etkinleşir.
Yeni oluşturulan tüm veritabanları için veritabanı seçeneklerinden herhangi birinin varsayılan değerlerini değiştirebilirsiniz. Bunu yapmak için model
veritabanında uygun veritabanı seçeneğini değiştirin.
Tüm veritabanı seçenekleri WITH <sonlandırma> yan tümcesini kullanmaz veya diğer seçeneklerle birlikte belirtilebilir. Aşağıdaki tabloda bu seçenekler ve bunların seçeneği ile sonlandırma durumu listelenmiştir.
Seçenekler kategorisi | Diğer seçeneklerle belirtilebilir | WITH <sonlandırma> yan tümcesini kullanabilir |
---|---|---|
<db_state_option> | Evet | Evet |
<db_user_access_option> | Evet | Evet |
<db_update_option> | Evet | Evet |
<delayed_durability_option> | Evet | Evet |
<external_access_option> | Evet | Hayır |
<cursor_option> | Evet | Hayır |
<auto_option> | Evet | Hayır |
<sql_option> | Evet | Hayır |
<recovery_option> | Evet | Hayır |
<target_recovery_time_option> | Hayır | Evet |
<database_mirroring_option> | Hayır | Hayır |
ALLOW_SNAPSHOT_ISOLATION | Hayır | Hayır |
READ_COMMITTED_SNAPSHOT | Hayır | Evet |
MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT | Evet | Evet |
<service_broker_option> | Evet | Hayır |
DATE_CORRELATION_OPTIMIZATION | Evet | Evet |
<parameterization_option> | Evet | Evet |
<change_tracking_option> | Evet | Evet |
<db_encryption_option> | Evet | Hayır |
<accelerated_database_recovery> | Evet | Evet |
SQL Server örneğinin plan önbelleği, aşağıdaki seçeneklerden biri ayarlanarak temizlenir:
ÇEVRİMDIŞI
ÇEVRİMİÇİ
MODIFY_NAME
HARMANLAMAK
READ_ONLY
READ_WRITE
FILEGROUP DEFAULT'I DEĞIŞTIRME
FILEGROUP READ_WRITE DEĞIŞTIRME
FILEGROUP READ_ONLY DEĞIŞTIRME
Plan önbelleği de aşağıdaki senaryolarda temizlenmiştir.
- Veritabanında AUTO_CLOSE veritabanı seçeneği ON olarak ayarlanmıştır. Kullanıcı bağlantısı başvurusu olmadığında veya veritabanını kullanmadığında, arka plan görevi veritabanını otomatik olarak kapatıp kapatmaya çalışır.
- Varsayılan seçenekleri olan bir veritabanında birkaç sorgu çalıştırırsınız. Ardından veritabanı bırakılır.
- Kaynak veritabanı için veritabanı anlık görüntüsü bırakılır.
- Veritabanı için işlem günlüğünü başarıyla yeniden oluşturursunuz.
- Veritabanı yedeğini geri yüklersiniz.
- Bir veritabanını ayırırsınız.
Plan önbelleğinin temizlenmesi, sonraki tüm yürütme planlarının yeniden derlenmesine neden olur ve sorgu performansında ani, geçici bir düşüşe neden olabilir. Plan önbelleğindeki temizlenen her önbellek deposu için SQL Server hata günlüğü şu bilgi iletisini içerir: 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
. Bu ileti, önbellek bu zaman aralığında temizlendiği sürece beş dakikada bir günlüğe kaydedilir.
Örnekler
A. Veritabanında seçenekleri ayarlama
Aşağıdaki örnek, AdventureWorks2022
örnek veritabanı için kurtarma modeli ve veri sayfası doğrulama seçeneklerini ayarlar.
USE master;
GO
ALTER DATABASE [database_name]
SET RECOVERY FULL PAGE_VERIFY CHECKSUM;
GO
B. Veritabanını READ_ONLY olarak ayarlama
Veritabanının veya dosya grubunun durumunu READ_ONLY veya READ_WRITE olarak değiştirmek, veritabanına özel erişim gerektirir. Aşağıdaki örnek, özel erişim elde etmek için veritabanını SINGLE_USER
moduna ayarlar. Örnek daha sonra AdventureWorks2022
veritabanının durumunu READ_ONLY
olarak ayarlar ve veritabanına erişimi tüm kullanıcılara döndürür.
Not
Bu örnek, ilk ALTER DATABASE
deyiminde WITH ROLLBACK IMMEDIATE
sonlandırma seçeneğini kullanır. Tamamlanmamış tüm işlemler geri alınır ve AdventureWorks2022
veritabanına yönelik diğer bağlantıların bağlantısı hemen kesilir.
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. Veritabanında anlık görüntü yalıtımını etkinleştirme
Aşağıdaki örnek, AdventureWorks2022
veritabanı için anlık görüntü yalıtım çerçevesi seçeneğini etkinleştirir.
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
Sonuç kümesi, anlık görüntü yalıtım çerçevesinin etkinleştirildiğini gösterir.
ad | snapshot_isolation_state | Açıklama |
---|---|---|
[database_name] | 1 | ÜZERİNDE |
D. Değişiklik izlemeyi etkinleştirme, değiştirme veya devre dışı bırakma
Aşağıdaki örnek, AdventureWorks2022
veritabanı için değişiklik izlemeyi etkinleştirir ve bekletme süresini 2
güne ayarlar.
ALTER DATABASE [database_name]
SET CHANGE_TRACKING = ON
(AUTO_CLEANUP = ON, CHANGE_RETENTION = 2 DAYS);
Aşağıdaki örnekte bekletme süresinin 3
gün olarak nasıl değiştireceği gösterilmektedir.
ALTER DATABASE [database_name]
SET CHANGE_TRACKING (CHANGE_RETENTION = 3 DAYS);
Aşağıdaki örnekte, AdventureWorks2022
veritabanı için değişiklik izlemeyi devre dışı bırakma gösterilmektedir.
ALTER DATABASE [database_name]
SET CHANGE_TRACKING = OFF;
E. Sorgu Deposunu Etkinleştirme
için geçerlidir: SQL Server (SQL Server 2016 (13.x) ile başlayarak)
Aşağıdaki örnek Sorgu Deposu'na olanak tanır ve parametrelerini yapılandırmaktadır.
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. Sorgu Deposu'nı bekleme istatistikleriyle etkinleştirme
için geçerlidir: SQL Server (SQL Server 2017 (14.x) ile başlayarak)
Aşağıdaki örnek Sorgu Deposu'na olanak tanır ve parametrelerini yapılandırmaktadır.
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. Özel yakalama ilkesi seçenekleriyle Sorgu Deposu'yu etkinleştirme
için geçerlidir: SQL Server (SQL Server 2019 (15.x) ile başlayarak)
Aşağıdaki örnek Sorgu Deposu'na olanak tanır ve parametrelerini yapılandırmaktadır.
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
)
);
İlgili içerik
- İstatistikleri
- DATABASEPROPERTYEX (Transact-SQL)
- sys.databases
- sys.data_spaces
- sys.database_automatic_tuning_options
- sys.database_automatic_tuning_mode
- ALTER DATABASE uyumluluk düzeyi
- ALTER DATABASE Veritabanı Yansıtma
- ALTER DATABASE SET HADR
- CREATE DATABASE
- Değişiklik İzlemeyi Etkinleştirme ve Devre Dışı Bırakma (SQL Server)
- DROP DATABASE (Transact-SQL)
- SET TRANSACTION ISOLATION LEVEL (Transact-SQL)
- sp_configure
- Sorgu Deposu ile iş yüklerini izlemeye yönelik en iyi yöntemler
SQL Server
* SQL Veritabanı *
SQL Yönetilen Örneği
Azure Synapse'i
Analiz
Microsoft Fabric
SQL Veritabanı
Uyumluluk düzeyleri SET
seçeneklerdir ancak ALTER DATABASE uyumluluk düzeyiaçıklanmıştır.
Not
Çoğu veritabanı kümesi seçeneği, SET Deyimleri kullanılarak geçerli oturum için yapılandırılabilir ve genellikle bağlandığında uygulamalar tarafından yapılandırılır. Oturum düzeyi ayar seçenekleri ALTER DATABASE SET
değerlerini geçersiz kılar. Aşağıdaki bölümlerde açıklanan veritabanı seçenekleri, diğer ayar seçeneği değerlerini açıkça sağlamayan oturumlar için ayarlanabilen değerlerdir.
Sözdizimi
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 }
Bağımsız değişken
database_name
Değiştirilecek veritabanının adı.
GEÇERLİ
CURRENT
eylemi geçerli veritabanında çalıştırır.CURRENT
tüm bağlamlardaki tüm seçenekler için desteklenmez.CURRENT
başarısız olursa veritabanı adını belirtin.
<auto_option> ::=
Otomatik seçenekleri denetler.
AUTO_CREATE_STATISTICS { ON | KAPALI }
ÜZERİNDE
Sorgu İyileştiricisi, sorgu planlarını ve sorgu performansını geliştirmek için gerektiğinde sorgu koşullarındaki tek sütunlarda istatistikler oluşturur. Bu tek sütunlu istatistikler, Sorgu İyileştiricisi sorguları derlediğinde oluşturulur. Tek sütunlu istatistikler yalnızca mevcut istatistik nesnesinin ilk sütunu olmayan sütunlarda oluşturulur.
Varsayılan değer ON'dır. Çoğu veritabanı için varsayılan ayarı kullanmanızı öneririz.
KAPALI
Sorgu İyileştiricisi, sorgu derlerken sorgu koşullarında tek sütunlarda istatistik oluşturmaz. Bu seçeneğin KAPALI olarak ayarlanması, yetersiz sorgu planlarına ve düşük sorgu performansına neden olabilir.
sys.databases katalog görünümündeki is_auto_create_stats_on
sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsAutoCreateStatistics
özelliğini inceleyerek de durumu belirleyebilirsiniz.
Daha fazla bilgi için, İstatistikler
ARTıMLı = ON | KAPALI
AUTO_CREATE_STATISTICS AÇıK olarak ayarlayın ve ARTıMLı'yı ON olarak ayarlayın. Bu ayar, artımlı istatistikler desteklendiği her durumda otomatik olarak oluşturulan istatistikleri artımlı olarak oluşturur. Varsayılan değer KAPALI'dır. Daha fazla bilgi için bkz. create STATISTICS
AUTO_SHRINK { ON | KAPALI }
ÜZERİNDE
Veritabanı dosyaları düzenli aralıklarla daraltma için adaydır. Belirli bir gereksiniminiz yoksa AUTO_SHRINK veritabanı seçeneğini ON olarak ayarlamayın. Daha fazla bilgi için bkz. veritabanını küçültme
.
Hem veri dosyası hem de günlük dosyaları otomatik olarak küçültülebilir. AUTO_SHRINK işlem günlüğünün boyutunu yalnızca veritabanını SIMPLE kurtarma modeli olarak ayarlarsanız veya günlüğü yedeklerseniz azaltır. KAPALI olarak ayarlandığında, kullanılmayan alan için düzenli denetimler sırasında veritabanı dosyaları otomatik olarak küçültülür.
AUTO_SHRINK seçeneği, dosyanın yüzde 25'inden fazlası kullanılmayan alan içerdiğinde dosyaların küçültülmelerine neden olur. seçeneği, dosyanın iki boyuttan birine küçültülmesini sağlar. Aşağıdakilerden hangisi daha büyükse küçülür:
- Dosyanın yüzde 25'inin kullanılmayan alan olduğu boyut
- Dosyanın oluşturulduğu zaman boyutu
Salt okunur veritabanını küçültemezsiniz.
KAPALI
Kullanılmayan alan için düzenli aralıklarla yapılan denetimler sırasında veritabanı dosyaları otomatik olarak küçülmez.
sys.databases katalog görünümündeki is_auto_shrink_on
sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsAutoShrink
özelliğini inceleyerek de durumu belirleyebilirsiniz.
Not
AUTO_SHRINK seçeneği, kapsanan bir veritabanında kullanılamaz.
AUTO_UPDATE_STATISTICS { ON | KAPALI }
ÜZERİNDE
Sorgu İyileştiricisi'nin bir sorgu tarafından kullanıldığında ve güncel olma durumlarında istatistikleri güncelleştirdiğini belirtir. Ekleme, güncelleştirme, silme veya birleştirme işlemleri tablodaki veya dizinli görünümdeki veri dağıtımını değiştirdikten sonra istatistikler güncel değildir. Sorgu İyileştiricisi, son istatistik güncelleştirmelerinden bu yana yapılan veri değişikliklerinin sayısını sayarak ve değişikliklerin sayısını bir eşikle karşılaştırarak istatistiklerin ne zaman güncel olabileceğini belirler. Eşik, tablodaki veya dizinli görünümdeki satır sayısını temel alır.
Sorgu İyileştiricisi, sorgu derlemeden ve önbelleğe alınmış bir sorgu planı çalıştırmadan önce güncel olmayan istatistikleri denetler. Sorgu İyileştiricisi, hangi istatistiklerin güncel olmayabileceğini belirlemek için sorgu koşulundaki sütunları, tabloları ve dizine alınan görünümleri kullanır. Sorgu İyileştirici bu bilgileri bir sorgu derlemeden önce belirler. Önbelleğe alınmış bir sorgu planını çalıştırmadan önce Veritabanı Altyapısı, sorgu planının up-totarih istatistiklerine başvurduğunu doğrular.
AUTO_UPDATE_STATISTICS seçeneği dizinler için oluşturulan istatistikler, sorgu koşulundaki tek sütunlar ve CREATE STATISTICS deyimi kullanılarak oluşturulan istatistikler için geçerlidir. Bu seçenek filtrelenmiş istatistikler için de geçerlidir.
Varsayılan değer ON'dır. Çoğu veritabanı için varsayılan ayarı kullanmanızı öneririz.
İstatistiklerin zaman uyumlu mu yoksa zaman uyumsuz olarak mı güncelleştirileceğini belirtmek için AUTO_UPDATE_STATISTICS_ASYNC seçeneğini kullanın.
KAPALI
Sorgu İyileştirici'nin bir sorgu tarafından kullanıldığında istatistikleri güncelleştirmediğini belirtir. Sorgu İyileştiricisi ayrıca güncel olmayan istatistikleri güncelleştirmez. Bu seçeneğin KAPALI olarak ayarlanması, yetersiz sorgu planlarına ve düşük sorgu performansına neden olabilir.
sys.databases katalog görünümündeki
is_auto_update_stats_on
sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevininIsAutoUpdateStatistics
özelliğini inceleyerek de durumu belirleyebilirsiniz.Daha fazla bilgi için, İstatistikler
'deki "İstatistik seçenekleri" bölümüne bakın.
AUTO_UPDATE_STATISTICS_ASYNC { ON | KAPALI }
ÜZERİNDE
AUTO_UPDATE_STATISTICS seçeneği için istatistik güncelleştirmelerinin zaman uyumsuz olduğunu belirtir. Sorgu İyileştiricisi, sorguları derlemeden önce istatistik güncelleştirmelerinin tamamlanmasını beklemez.
AUTO_UPDATE_STATISTICS AÇıK olarak ayarlanmadığı sürece bu seçeneğiN ON olarak ayarlanmasının hiçbir etkisi olmaz.
Varsayılan olarak, AUTO_UPDATE_STATISTICS_ASYNC seçeneği KAPALI olarak ayarlanır ve Sorgu İyileştiricisi istatistikleri zaman uyumlu olarak güncelleştirir.
KAPALI
AUTO_UPDATE_STATISTICS seçeneği için istatistik güncelleştirmelerinin zaman uyumlu olduğunu belirtir. Sorgu İyileştiricisi, sorguları derlemeden önce istatistik güncelleştirmelerinin tamamlanmasını bekler.
AUTO_UPDATE_STATISTICS AÇıK olarak ayarlanmadığı sürece bu seçeneği KAPALI olarak ayarlamanın hiçbir etkisi olmaz.
sys.databases katalog görünümündeki is_auto_update_stats_async_on
sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz.
Zaman uyumlu veya zaman uyumsuz istatistik güncelleştirmelerinin ne zaman kullanılacağını açıklayan daha fazla bilgi için, İstatistikler'deki "İstatistik seçenekleri" bölümüne bakın.
<automatic_tuning_option> ::=
Otomatik ayarlamaiçin otomatik seçenekleri denetler. Aşağıdaki ayarların seçeneklerini Azure portalında veya T-SQL aracılığıyla sys.database_automatic_tuning_options
görünümünde görüntüleyebilirsiniz.
AUTOMATIC_TUNING = { AUTO | DEVRAL | ÖZEL }
OTOMATİK
Otomatik ayarlama değerini AUTO olarak ayarlamak, Otomatik ayarlama için Azure yapılandırma varsayılanlarını uygular. Azure portalında bu, "Devral: Azure varsayılanları" seçeneğini yansıtır.
DEVRALIR
INHERIT değerinin kullanılması, varsayılan yapılandırmayı üst sunucudan devralır. Azure portalında bu, "Devralma: Sunucu" seçeneğini yansıtır. Bu, özellikle bir üst sunucuda Otomatik ayarlama yapılandırmasını özelleştirmek ve bu sunucudaki tüm veritabanlarının bu özel ayarları DEVRALMASINI sağlamak istiyorsanız kullanışlıdır. Devralma işleminin çalışması için üç ayrı ayarlama seçeneğinin FORCE_LAST_GOOD_PLAN, CREATE_INDEX ve DROP_INDEX veritabanlarında DEFAULT olarak ayarlanması gerekir.
TÖRE
CUSTOM değerini kullanarak veritabanlarında kullanılabilen Otomatik Ayarlama seçeneklerinin her birini özel olarak yapılandırmanız gerekir. Azure portalında bu, "Devral: Devralma" seçeneğini yansıtır.
CREATE_INDEX = { DEFAULT | ON | KAPALI }
otomatik dizin yönetimi CREATE_INDEX
Otomatik ayarlamaseçeneğini etkinleştirir veya devre dışı bırakır. Bu seçeneğin durumunu Azure portalında veya T-SQL aracılığıyla sys.database_automatic_tuning_options
görünümünde görüntüleyebilirsiniz.
TEMERRÜT
Varsayılan ayarları sunucudan devralır. Bu durumda, tek tek Otomatik ayarlama özelliklerini etkinleştirme veya devre dışı bırakma seçenekleri sunucu düzeyinde tanımlanır.
ÜZERİNDE
Etkinleştirildiğinde, eksik dizinler veritabanında otomatik olarak oluşturulur. Dizin oluşturma işleminden sonra iş yükünün performansına yönelik kazançlar doğrulanır. Bu tür oluşturulan dizin artık iş yükü performansına avantaj sağlamadığında otomatik olarak geri döndürülür. Otomatik olarak oluşturulan dizinler, sistem tarafından oluşturulan dizin olarak işaretlenir.
KAPALI
Veritabanında otomatik olarak eksik dizinler oluşturmaz.
DROP_INDEX = { DEFAULT | ON | KAPALI }
otomatik dizin yönetimi DROP_INDEX
Otomatik ayarlamaseçeneğini etkinleştirir veya devre dışı bırakır. Bu seçeneğin durumunu Azure portalında veya T-SQL aracılığıyla sys.database_automatic_tuning_options
görünümünde görüntüleyebilirsiniz.
TEMERRÜT
Varsayılan ayarları sunucudan devralır. Bu durumda, tek tek Otomatik ayarlama özelliklerini etkinleştirme veya devre dışı bırakma seçenekleri sunucu düzeyinde tanımlanır.
ÜZERİNDE
Yinelenen veya artık yararlı olmayan dizinleri otomatik olarak performans iş yüküne bırakır.
KAPALI
Eksik dizinleri veritabanında otomatik olarak bırakmaz.
FORCE_LAST_GOOD_PLAN = { DEFAULT | ON | KAPALI }
Otomatik ayarlamasys.database_automatic_tuning_options
görünümünde görüntüleyebilirsiniz.
TEMERRÜT
Varsayılan ayarları sunucudan devralır. Bu durumda, tek tek Otomatik ayarlama özelliklerini etkinleştirme veya devre dışı bırakma seçenekleri sunucu düzeyinde tanımlanır. Bu varsayılan değerdir. Yeni Azure SQL sunucularının varsayılan değeri ON'dır; yani yeni veritabanları varsayılan olarak ON ayarını devralır.
ÜZERİNDE
Veritabanı Altyapısı, yeni sorgu planının performans regresyonlarına neden olduğu Transact-SQL sorgularda bilinen son iyi planı otomatik olarak zorlar. Veritabanı Altyapısı, zorlamalı planla Transact-SQL sorgunun sorgu performansını sürekli izler. Performans kazançları varsa Veritabanı Altyapısı bilinen son iyi planı kullanmaya devam eder. Performans kazanımları algılanmamışsa Veritabanı Altyapısı yeni bir sorgu planı oluşturur. Sorgu Deposu etkinleştirilmediyse veya okuma-yazma modunda
deyimi başarısız olur. KAPALI
Veritabanı Altyapısı, sys.dm_db_tuning_recommendations görünümde sorgu planı değişikliklerinin neden olduğu olası sorgu performansı regresyonlarını bildirir. Ancak bu öneriler otomatik olarak uygulanmaz. Kullanıcılar, görünümde gösterilen Transact-SQL betikleri uygulayarak etkin önerileri izleyebilir ve tanımlanan sorunları çözebilir.
<change_tracking_option> ::=
Değişiklik izleme seçeneklerini denetler. Değişiklik izlemeyi etkinleştirebilir, seçenekleri ayarlayabilir, seçenekleri değiştirebilir ve değişiklik izlemeyi devre dışı bırakabilirsiniz. Örnekler için bu makalenin devamında yer alan Örnekler bölümüne bakın.
ÜZERİNDE
Veritabanı için değişiklik izlemeyi etkinleştirir. Değişiklik izlemeyi etkinleştirdiğinizde, AUTO CLEANUP ve CHANGE RETENTION seçeneklerini de ayarlayabilirsiniz.
AUTO_CLEANUP = { ON | KAPALI }
ÜZERİNDE
Değişiklik izleme bilgileri belirtilen saklama süresinden sonra otomatik olarak kaldırılır.
KAPALI
Değişiklik izleme verileri veritabanından kaldırılmaz.
CHANGE_RETENTION = retention_period { DAYS | SAAT | DAKİkA }
Değişiklik izleme bilgilerini veritabanında tutmak için en düşük süreyi belirtir. Veriler yalnızca AUTO_CLEANUP değeri AÇILDI olduğunda kaldırılır.
retention_period, bekletme süresinin sayısal bileşenini belirten bir tamsayıdır.
Varsayılan saklama süresi2 gün
. En düşük saklama süresi 1 dakikadır. Varsayılan bekletme türü DAYS'dır.
KAPALI
Veritabanı için değişiklik izlemeyi devre dışı bırakır. Veritabanında değişiklik izlemeyi devre dışı bırakmadan önce tüm tablolarda değişiklik izlemeyi devre dışı bırakın.
<cursor_option> ::=
İmleç seçeneklerini denetler.
CURSOR_CLOSE_ON_COMMIT { ON | KAPALI }
ÜZERİNDE
bir işlemi işlediğiniz veya geri aldığınızda açılan tüm imleçler kapatılır.
KAPALI
bir işlem işlendiğinde imleçler açık kalır; bir işlemi geri döndürmek, DUYARSIZ veya STATIK olarak tanımlanan imleçler dışında tüm imleçleri kapatır.
SET deyimi kullanılarak ayarlanan bağlantı düzeyi ayarları, CURSOR_CLOSE_ON_COMMIT için varsayılan veritabanı ayarını geçersiz kılar. ODBC ve OLE DB istemcileri, oturum için varsayılan olarak OFF olarak CURSOR_CLOSE_ON_COMMIT bir bağlantı düzeyi SET deyimi ayarı gönderir. SQL Server örneğine bağlandığınızda istemciler deyimini çalıştırır. Daha fazla bilgi için bkz. set CURSOR_CLOSE_ON_COMMIT
sys.databases katalog görünümündeki is_cursor_close_on_commit_on
sütununu veya DATABASEPROPERTYEX işlevinin IsCloseCursorsOnCommitEnabled
özelliğini inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. İmleç örtük olarak yalnızca bağlantı kesildiğinde serbest bırakılır. Daha fazla bilgi için bkz. DECLARE CURSOR.
<db_encryption_option> ::=
Veritabanı şifreleme durumunu denetler.
ŞIFRELEME { ON | KAPALI }
Veritabanını şifrelenecek (ON) veya şifrelenmez (KAPALI) olarak ayarlar. Veritabanı şifrelemesi hakkında daha fazla bilgi için bkz. Saydam veri şifrelemesi (TDE)ve Azure SQL Veritabanı, Azure SQL Yönetilen Örneği ve Azure Synapse Analyticsiçin saydam veri şifrelemesi.
Şifreleme veritabanı düzeyinde etkinleştirildiğinde, tüm dosya grupları şifrelenir. Tüm yeni dosya grupları şifrelenmiş özelliği devralır. Veritabanındaki herhangi bir dosya grubu SALT OKUNUR olarak ayarlanırsa, veritabanı şifreleme işlemi başarısız olur.
sys.dm_database_encryption_keys dinamik yönetim görünümünü kullanarak veritabanının şifreleme durumunu görebilirsiniz.
<db_update_option> ::=
Veritabanında güncelleştirmelere izin verilip verilmeyeceğini denetler.
READ_ONLY
Kullanıcılar veritabanındaki verileri okuyabilir ancak değiştiremez.
Not
Sorgu performansını geliştirmek için veritabanını READ_ONLY olarak ayarlamadan önce istatistikleri güncelleştirin. Veritabanı READ_ONLY olarak ayarlandıktan sonra ek istatistikler gerekiyorsa, Veritabanı Altyapısı
tempdb
içinde istatistikler oluşturur. Salt okunur veritabanı istatistikleri hakkında daha fazla bilgi için bkz. İstatistikler.READ_WRITE
Veritabanı okuma ve yazma işlemleri için kullanılabilir.
Bu durumu değiştirmek için veritabanına özel erişime sahip olmanız gerekir. Daha fazla bilgi için SINGLE_USER yan tümcesine bakın.
Not
Azure SQL Veritabanı federasyon veritabanlarında SET { READ_ONLY | READ_WRITE }
devre dışı bırakılır.
<db_user_access_option> ::=
Veritabanına kullanıcı erişimini denetler.
RESTRICTED_USER
Yalnızca
db_owner
sabit veritabanı rolünün üyelerine vedbcreator
vesysadmin
sabit sunucu rollerinin veritabanına bağlanmasına izin verir, ancak bunların sayısını sınırlamaz. Veritabanına yönelik tüm bağlantıların bağlantısı ALTER DATABASE deyiminin sonlandırma yan tümcesi tarafından belirtilen zaman çerçevesi içinde kesilir. Veritabanı RESTRICTED_USER durumuna geçtikten sonra, nitelenmemiş kullanıcıların bağlantı girişimleri reddedilir. Azure SQL Veritabanı'nda, kullanıcı veritabanının içinden yürütülmelidir.master
veritabanından bir hata iletisiyle karşılaşabilirsinizMsg 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
Veritabanına bağlanmak için uygun izinlere sahip tüm kullanıcılara izin verilir. sys.databases katalog görünümündeki
user_access
sütununu veya DATABASEPROPERTYEX işlevininUserAccess
özelliğini inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Azure SQL Veritabanı'nda, kullanıcı veritabanının içinden yürütülmelidir.master
veritabanından bir hata iletisiyle karşılaşabilirsinizMsg 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> ::=
İşlemlerin tamamen dayanıklı mı yoksa gecikmeli dayanıklı mı işlediğini denetler.
SAKAT
SET DISABLED
izleyen tüm işlemler tamamen dayanıklıdır. Atomik blokta veya işleme deyiminde ayarlanan tüm dayanıklılık seçenekleri yoksayılır.IZİN VERİLEN
SET ALLOWED
izleyen tüm işlemler, atomik blokta veya işleme deyiminde ayarlanan dayanıklılık seçeneğine bağlı olarak tamamen dayanıklı veya gecikmeli dayanıklıdır.ZORLA
SET FORCED
izleyen tüm işlemler gecikmeli dayanıklıdır. Atomik blokta veya işleme deyiminde ayarlanan tüm dayanıklılık seçenekleri yoksayılır.
<PARAMETERIZATION_option> ::=
Parametreleştirme seçeneğini denetler.
PARAMETRELEŞTIRME { SIMPLE | FORCED }
BASİT
Sorgular, veritabanının varsayılan davranışına göre parametreleştirilir.
ZORLA
SQL Server, veritabanındaki tüm sorguları parametreleştirir.
Bu seçeneğin geçerli ayarı, sys.databases katalog görünümündeki is_parameterization_forced
sütunu incelenerek belirlenebilir.
<query_store_options> ::=
ON | KAPALI | CLEAR [ ALL ]
Bu veritabanında Sorgu Deposu'nun etkinleştirilip etkinleştirilmediğini denetler ve ayrıca Sorgu Deposu'nun içeriğini kaldırmayı denetler.
ÜZERİNDE
Sorgu Deposu'na olanak tanır. ON varsayılan değerdir.
KAPALI
Sorgu Deposu'nı devre dışı bırakır.
Not
Sorgu Deposu, Azure SQL Veritabanı tek veritabanında ve Elastik Havuz'da devre dışı bırakılamaz.
ALTER DATABASE [database] SET QUERY_STORE = OFF
yürütülürken'QUERY_STORE=OFF' is not supported in this version of SQL Server.
uyarısını döndürür.BERRAK
Sorgu Deposu'nun içeriğini kaldırın.
OPERATION_MODE
Sorgu Deposu'nun işlem modunu açıklar. Geçerli değerler READ_ONLY ve READ_WRITE. READ_WRITE modunda Sorgu Deposu sorgu planı ve çalışma zamanı yürütme istatistikleri bilgilerini toplar ve kalıcı hale toplar. READ_ONLY modunda bilgiler Sorgu Deposu'ndan okunabilir, ancak yeni bilgiler eklenmez. Sorgu Deposu'nun ayrılan en fazla alanı tükendiyse, Sorgu Deposu işlem modunu READ_ONLY olarak değiştirir.
CLEANUP_POLICY
Sorgu Deposu'nun veri saklama ilkesini açıklar. STALE_QUERY_THRESHOLD_DAYS, sorgu bilgilerinin Sorgu Deposu'nda tutulduğu gün sayısını belirler. STALE_QUERY_THRESHOLD_DAYS bigint
DATA_FLUSH_INTERVAL_SECONDS
Sorgu Deposu'na yazılan verilerin diskte kalıcı olduğu sıklığı belirler. Performansı iyileştirmek için Sorgu Deposu tarafından toplanan veriler zaman uyumsuz olarak diske yazılır. Bu zaman uyumsuz aktarımın gerçekleşme sıklığı, DATA_FLUSH_INTERVAL_SECONDS bağımsız değişkeni kullanılarak yapılandırılır. DATA_FLUSH_INTERVAL_SECONDS bigint
MAX_STORAGE_SIZE_MB
Sorgu Deposu'na ayrılan alanı belirler. MAX_STORAGE_SIZE_MB, bigint
Not
Azure SQL Veritabanı'nda varsayılan
Not
MAX_STORAGE_SIZE_MB
sınırı kesinlikle uygulanmaz. Depolama boyutu yalnızca Sorgu Deposu diske veri yazdığında denetlenmektedir. Bu aralık, veri temizleme aralığıMAX_STORAGE_SIZE_MB
sınırını aştıysa salt okunur moda geçer.
SIZE_BASED_CLEANUP_MODE
etkinleştirilirse, MAX_STORAGE_SIZE_MB
sınırını zorlamak için temizleme mekanizması da tetikler.
Yeterli alan temizlendikten sonra Sorgu Deposu modu otomatik olarak yeniden okuma-yazma moduna geçer.
Önemli
İş yükü yakalamanızın 10 GB'tan fazla disk alanına ihtiyacı olduğunu düşünüyorsanız, sorgu planlarını yeniden kullanmak için iş yükünüzü yeniden düşünmeli ve iyileştirmelisiniz (örneğin, zorlamalı parametrelemekullanarak veya Sorgu Deposu yapılandırmalarını ayarlamalısınız.
SQL Server 2019'dan (15.x) başlayarak ve Azure SQL Veritabanı'nda sorgu yakalama ilkesi üzerinde ek denetim için QUERY_CAPTURE_MODE
CUSTOM olarak ayarlayabilirsiniz.
INTERVAL_LENGTH_MINUTES
Çalışma zamanı yürütme istatistikleri verilerinin Sorgu Deposu'nda toplandığı zaman aralığını belirler. Alan kullanımını iyileştirmek için, çalışma zamanı istatistikleri deposundaki çalışma zamanı yürütme istatistikleri sabit bir zaman aralığı boyunca toplanır. Bu sabit zaman penceresi INTERVAL_LENGTH_MINUTES bağımsız değişkeni kullanılarak yapılandırılır. INTERVAL_LENGTH_MINUTES bigint
SIZE_BASED_CLEANUP_MODE = { AUTO | KAPALI }
Toplam veri miktarı maksimum boyuta yaklaştığında temizlemenin otomatik olarak etkinleştirilip etkinleştirilmediğini denetler.
KAPALI
Boyut tabanlı temizleme otomatik olarak etkinleştirilmez.
OTOMATİK
Diskte boyut 90% max_storage_size_mbulaştığında boyut tabanlı temizleme otomatik olarak etkinleştirilir. Boyut tabanlı temizleme, önce en düşük maliyetli ve en eski sorguları kaldırır. Yaklaşık 80% max_storage_size_mbdurur. Bu varsayılan yapılandırma değeridir.
SIZE_BASED_CLEANUP_MODE nvarchar
QUERY_CAPTURE_MODE { ALL | OTOMATİk | ÖZEL | NONE }
Şu anda etkin olan sorgu yakalama modunu atar. Her mod belirli sorgu yakalama ilkelerini tanımlar.
Not
sorgu yakalama modu ALL, AUTO veya CUSTOM olarak ayarlandığında imleçler, Saklı Yordamlar içindeki sorgular ve Yerel olarak derlenmiş sorgular her zaman yakalanır.
TÜM
Tüm sorguları yakalar.
OTOMATİK
Yürütme sayısına ve kaynak tüketimine göre ilgili sorguları yakalayın. Bu, Azure SQL Veritabanı için varsayılan yapılandırma değeridir.
Hiç kimse
Yeni sorguları yakalamayı durdurun. Sorgu Deposu, zaten yakalanan sorgular için derleme ve çalışma zamanı istatistiklerini toplamaya devam eder. Önemli sorguları yakalamayı kaçırabileceğiniz için bu yapılandırmayı dikkatli kullanın.
TÖRE
QUERY_CAPTURE_POLICY seçenekleri üzerinde denetime izin verir.
QUERY_CAPTURE_MODE nvarchartürüdür.
MAX_PLANS_PER_QUERY
Her sorgu için tutulan plan sayısı üst sınırını tanımlar. MAX_PLANS_PER_QUERY
WAIT_STATS_CAPTURE_MODE { ON | KAPALI }
Sorgu başına bekleme istatistiklerinin yakalanıp yakalanmayacağını denetler.
ÜZERİNDE
Sorgu başına bekleme istatistikleri bilgileri yakalanır. Bu değer varsayılan yapılandırma değeridir.
KAPALI
Sorgu başına bekleme istatistikleri bilgileri yakalanmaz.
<query_capture_policy_option_list> :: =
Sorgu Deposu yakalama ilkesi seçeneklerini denetler. STALE_CAPTURE_POLICY_THRESHOLD dışında, bu seçenekler sorguların tanımlanan Eski Yakalama İlkesi Eşiği değerinde yakalanması için gerçekleşmesi gereken OR koşullarını tanımlar.
STALE_CAPTURE_POLICY_THRESHOLD = tamsayı { GÜN | HOURS }
Bir sorgunun yakalanması gerekip gerekmediğini belirlemek için değerlendirme aralığını tanımlar. Varsayılan değer 1 gündür ve 1 saatten yedi güne ayarlanabilir.
EXECUTION_COUNT = tamsayı
Bir sorgunun değerlendirme süresi boyunca yürütülme sayısını tanımlar. Varsayılan değer 30'dur. Bu, varsayılan Eski Yakalama İlkesi Eşiği için sorgunun Sorgu Deposu'nda kalıcı olması için bir günde en az 30 kez yürütülmesi gerektiği anlamına gelir. EXECUTION_COUNT, int
TOTAL_COMPILE_CPU_TIME_MS = tamsayı
Değerlendirme süresi boyunca sorgu tarafından kullanılan toplam derleme CPU süresini tanımlar. Varsayılan değer 1000'dir ve bu da varsayılan Eski Yakalama İlkesi Eşiği için sorgunun Sorgu Deposu'nda kalıcı olması için sorgu derlemesi sırasında harcanan cpu süresinin bir gün içinde toplam en az bir saniye olması gerektiği anlamına gelir. TOTAL_COMPILE_CPU_TIME_MS
TOTAL_EXECUTION_CPU_TIME_MS = tamsayı
Değerlendirme süresi boyunca sorgu tarafından kullanılan toplam yürütme CPU süresini tanımlar. Varsayılan değer 100'dür. Bu, varsayılan Eski Yakalama İlkesi Eşiği için sorgunun Sorgu Deposu'nda kalıcı olması için bir günde yürütme sırasında harcanan toplam CPU süresi en az 100 ms olması gerektiği anlamına gelir. TOTAL_EXECUTION_CPU_TIME_MS, int
<snapshot_option> ::=
İşlem yalıtım düzeyini belirler.
ALLOW_SNAPSHOT_ISOLATION { ON | KAPALI }
ÜZERİNDE
Veritabanı düzeyinde Anlık Görüntü seçeneğini etkinleştirir. Etkinleştirildiğinde, hiçbir işlem Anlık Görüntü Yalıtımı kullanmasa bile DML deyimleri satır sürümleri oluşturmaya başlar. Bu seçenek etkinleştirildikten sonra işlemler SNAPSHOT işlem yalıtım düzeyini belirtebilir. Bir işlem SNAPSHOT yalıtım düzeyinde çalıştırıldığında, tüm deyimler işlemin başlangıcında mevcut olan verilerin anlık görüntüsünü görür. SNAPSHOT yalıtım düzeyinde çalışan bir işlem birden çok veritabanındaki verilere erişiyorsa, ALLOW_SNAPSHOT_ISOLATION tüm veritabanlarında AÇILACAK şekilde ayarlanmalıdır veya işlemdeki her deyim, from yan tümcesindeki herhangi bir başvuruda kilit ipuçlarını ALLOW_SNAPSHOT_ISOLATION OFF olduğu bir veritabanındaki bir tabloya kilitleme ipuçlarını kullanmalıdır.
KAPALI
Veritabanı düzeyinde Anlık Görüntü seçeneğini kapatır. İşlemler SNAPSHOT işlemi yalıtım düzeyini belirtemez.
ALLOW_SNAPSHOT_ISOLATION yeni bir duruma ayarladığınızda (ON'dan KAPALI'ya veya KAPALI'dan ON'a), VERITABANıNDAki tüm mevcut işlemler işlenmeden ALTER DATABASE denetimi çağırana döndürmez. Veritabanı ZATEN ALTER DATABASE deyiminde belirtilen durumdaysa, denetim çağırana hemen döndürülür. ALTER DATABASE deyimi hızlı bir şekilde döndürülmezse, uzun süre çalışan işlemler olup olmadığını belirlemek için sys.dm_tran_active_snapshot_database_transactions kullanın. ALTER DATABASE deyimi iptal edilirse, veritabanı ALTER DATABASE başlatıldığında olduğu durumda kalır.
sys.databases katalog görünümü, veritabanındaki anlık görüntü yalıtım işlemlerinin durumunu gösterir.
snapshot_isolation_state_desc = IN_TRANSITION_TO_ON
ise, ALTER DATABASE .... ALLOW_SNAPSHOT_ISOLATION OFF
deyimi altı saniye duraklatılır ve işlemi yeniden dener.
Veritabanı ÇEVRİmDIŞI olduğunda ALLOW_SNAPSHOT_ISOLATION durumunu değiştiremezsiniz.
READ_ONLY veritabanında ALLOW_SNAPSHOT_ISOLATION ayarlarsanız, veritabanı daha sonra READ_WRITE olarak ayarlanırsa ayar korunur.
Bu seçeneğin geçerli ayarı, sys.databases katalog görünümündeki snapshot_isolation_state
sütunu incelenerek belirlenebilir.
READ_COMMITTED_SNAPSHOT { ON | KAPALI }
ÜZERİNDE
Veritabanı düzeyinde Read-Committed Anlık Görüntü seçeneğini etkinleştirir. Etkinleştirildiğinde, hiçbir işlem Anlık Görüntü Yalıtımı kullanmasa bile DML deyimleri satır sürümleri oluşturmaya başlar. Bu seçenek etkinleştirildikten sonra, READ COMMITTED yalıtım düzeyini belirten işlemler kilitleme yerine satır sürümü oluşturma kullanır. Tüm deyimler, bir işlem READ COMMITTED yalıtım düzeyinde çalıştırıldığında deyiminin başında mevcut olan verilerin anlık görüntüsünü görür.
KAPALI
Veritabanı düzeyinde Read-Committed Anlık Görüntü seçeneğini kapatır. READ COMMITTED yalıtım düzeyini belirten işlemler kilitlemeyi kullanır.
AÇıK veya KAPALI READ_COMMITTED_SNAPSHOT ayarlamak için, ALTER DATABASE komutunu çalıştıran bağlantı dışında veritabanına etkin bağlantı olmaması gerekir. Ancak veritabanının tek kullanıcı modunda olması gerekmez. Veritabanı ÇEVRİmDIŞI olduğunda bu seçeneğin durumunu değiştiremezsiniz.
READ_ONLY veritabanında READ_COMMITTED_SNAPSHOT ayarlarsanız, veritabanı daha sonra READ_WRITE olarak ayarlandığında ayar korunur.
READ_COMMITTED_SNAPSHOT master
, tempdb
veya msdb
sistem veritabanları için AÇIlamıyor.
model
ayarını değiştirirseniz, bu ayar tempdb
dışında oluşturulan tüm yeni veritabanları için varsayılan ayar olur.
Bu seçeneğin geçerli ayarı, sys.databases katalog görünümündeki is_read_committed_snapshot_on
sütunu incelenerek belirlenebilir.
Uyarı
DURABILITY = SCHEMA_ONLY
ile bir tablo oluşturulduğunda ve READ_COMMITTED_SNAPSHOT daha sonra ALTER DATABASE
kullanılarak değiştirildiğinde, tablodaki veriler kaybolur.
Bahşiş
Azure SQL Veritabanı'nda, bir veritabanı için READ_COMMITTED_SNAPSHOT ON veya OFF ayarlamak için ALTER DATABASE
komutu master
veritabanında yürütülmelidir.
MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT { ON | KAPALI }
ÜZERİNDE
İşlem yalıtım düzeyi SNAPSHOT'dan daha düşük bir yalıtım düzeyine ayarlandığında, bellek için iyileştirilmiş tablolardaki tüm yorumlanan Transact-SQL işlemleri SNAPSHOT yalıtımı altında çalıştırılır. Anlık görüntüden düşük yalıtım düzeylerine örnek olarak READ COMMITTED veya READ UNCOMMITTED verilebilir. Bu işlemler, işlem yalıtım düzeyinin oturum düzeyinde açıkça ayarlanıp ayarlanmadığını veya varsayılanın örtük olarak kullanılıp kullanılmadığını çalıştırır.
KAPALI
Bellek için iyileştirilmiş tablolarda yorumlanan Transact-SQL işlemleri için işlem yalıtım düzeyini yükseltmez.
Veritabanı ÇEVRİmDIŞI olduğunda MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT durumunu değiştiremezsiniz.
Varsayılan değer KAPALI'dır.
Bu seçeneğin geçerli ayarı, sys.databases katalog görünümündeki is_memory_optimized_elevate_to_snapshot_on
sütunu incelenerek belirlenebilir.
<sql_option> ::=
VERITABANı düzeyinde ANSI uyumluluk seçeneklerini denetler.
ANSI_NULL_DEFAULT { ON | KAPALI }
Create TABLE veya ALTER TABLE deyimlerinde null atanabilirliğin açıkça tanımlanmadığı clr kullanıcı tanımlı tür bir sütunun veya
ÜZERİNDE
Varsayılan değer NULL'dir.
KAPALI
Varsayılan değer NULL DEĞİlDİr.
SET deyimi kullanılarak ayarlanan bağlantı düzeyi ayarları, ANSI_NULL_DEFAULT için varsayılan veritabanı düzeyi ayarını geçersiz kılar. ODBC ve OLE DB istemcileri, oturum için varsayılan olarak AÇıK olarak ANSI_NULL_DEFAULT bir bağlantı düzeyi SET deyimi ayarı gönderir. SQL Server örneğine bağlandığınızda istemciler deyimini çalıştırır. Daha fazla bilgi için bkz. set ANSI_NULL_DFLT_ON
ANSI uyumluluğu için, ANSI_NULL_DEFAULT veritabanı seçeneğinin ON olarak ayarlanması, veritabanının varsayılan değerini NULL olarak değiştirir.
sys.databases katalog görünümündeki is_ansi_null_default_on
sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsAnsiNullDefault
özelliğini inceleyerek de durumu belirleyebilirsiniz.
ANSI_NULLS { ON | KAPALI }
ÜZERİNDE
Null değerle yapılan tüm karşılaştırmalar BİlİNMEYEN olarak değerlendirilir.
KAPALI
Unicode olmayan değerlerin null değerle karşılaştırmaları, her iki değer de NULL ise TRUE olarak değerlendirilir.
Önemli
SQL Server'ın gelecekteki bir sürümünde ANSI_NULLS her zaman AÇIK olur ve seçeneği açıkça KAPALI olarak ayarlayan tüm uygulamalar hata oluşturur. Bu özelliği yeni geliştirme çalışmalarında kullanmaktan kaçının ve şu anda bu özelliği kullanan uygulamaları değiştirmeyi planlayın.
SET deyimi kullanılarak ayarlanan bağlantı düzeyi ayarları, ANSI_NULLS için varsayılan veritabanı ayarını geçersiz kılar. ODBC ve OLE DB istemcileri, oturum için varsayılan olarak AÇıK olarak ANSI_NULLS bir bağlantı düzeyi SET deyimi ayarı gönderir. SQL Server örneğine bağlandığınızda istemciler deyimini çalıştırır. Daha fazla bilgi için bkz. set ANSI_NULLS
Not
SET ANSI_NULLS hesaplanan sütunlarda veya dizinlenmiş görünümlerde dizin oluşturduğunuzda veya dizinlerde değişiklik yaptığınızda da ON olarak ayarlanmalıdır.
sys.databases katalog görünümündeki is_ansi_nulls_on
sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsAnsiNullsEnabled
özelliğini inceleyerek de durumu belirleyebilirsiniz.
ANSI_PADDING { ON | KAPALI }
ÜZERİNDE
Dizeler dönüştürmeden önce aynı uzunlukta doldurulur. Ayrıca bir varchar veya nvarchar veri türüne eklemeden önce aynı uzunlukta doldurulur.
KAPALI
Karakter değerlerinde sondaki boşlukları
varchar veya nvarchar sütunlarınaekler. Ayrıca, varbinary sütunlarına eklenen ikili değerlerde sondaki sıfırları bırakır. Değerler sütunun uzunluğuna göre doldurulamaz. KAPALI belirtildiğinde, bu ayar yalnızca yeni sütunların tanımını etkiler.
Önemli
SQL Server'ın gelecekteki bir sürümünde, ANSI_PADDING her zaman AÇIK olur ve seçeneği açıkça KAPALI olarak ayarlayan tüm uygulamalar bir hata oluşturur. Bu özelliği yeni geliştirme çalışmalarında kullanmaktan kaçının ve şu anda bu özelliği kullanan uygulamaları değiştirmeyi planlayın. ANSI_PADDING her zaman ON olarak ayarlamanızı öneririz. ANSI_PADDING hesaplanan sütunlarda veya dizinlenmiş görünümlerde dizin oluştururken veya işlerken ON olmalıdır.
char(n) ve ikili(n) null değere izin veren sütunlar, ANSI_PADDING ON olarak ayarlandığında sütun uzunluğuna doldurulur. ANSI_PADDING KAPALI olduğunda sondaki boşluklar ve sıfırlar kırpılır. char(n) ve binary(n) null değere izin verilmeyen sütunlar her zaman sütunun uzunluğuna doldurulur.
SET deyimi kullanılarak ayarlanan bağlantı düzeyi ayarları, ANSI_PADDING için varsayılan veritabanı düzeyi ayarını geçersiz kılar. ODBC ve OLE DB istemcileri, varsayılan olarak oturum için AÇıK olarak ANSI_PADDING bir bağlantı düzeyi SET deyimi ayarı gönderir. SQL Server örneğine bağlandığınızda istemciler deyimini çalıştırır. Daha fazla bilgi için bkz. set ANSI_PADDING
sys.databases katalog görünümündeki is_ansi_padding_on
sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsAnsiPaddingEnabled
özelliğini inceleyerek de durumu belirleyebilirsiniz.
ANSI_WARNINGS { ON | KAPALI }
ÜZERİNDE
Sıfıra bölme gibi koşullar oluştuğunda hatalar veya uyarılar verilir. Toplama işlevlerinde null değerler göründüğünde de hatalar ve uyarılar verilir.
KAPALI
Sıfıra bölme gibi koşullar oluştuğunda hiçbir uyarı tetiklenmez ve null değerler döndürülür.
Not
HESAPLANAN sütunlarda veya dizinlenmiş görünümlerde dizin oluşturduğunuzda veya dizinlerde değişiklik yaptığınızda SET ANSI_WARNINGS ON olarak ayarlanmalıdır.
SET deyimi kullanılarak ayarlanan bağlantı düzeyi ayarları, ANSI_WARNINGS için varsayılan veritabanı ayarını geçersiz kılar. ODBC ve OLE DB istemcileri, oturum için varsayılan olarak AÇıK olarak ANSI_WARNINGS bir bağlantı düzeyi SET deyimi ayarı gönderir. SQL Server örneğine bağlandığınızda istemciler deyimini çalıştırır. Daha fazla bilgi için bkz. set ANSI_WARNINGS
sys.databases katalog görünümündeki is_ansi_warnings_on
sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsAnsiWarningsEnabled
özelliğini inceleyerek de durumu belirleyebilirsiniz.
ARITHABORT { ON | KAPALI }
ÜZERİNDE
Sorgu yürütme sırasında taşma veya sıfıra bölme hatası oluştuğunda sorgu sonlandırılır.
KAPALI
Bu hatalardan biri oluştuğunda bir uyarı iletisi görüntülenir. Sorgu, toplu iş veya işlem, bir uyarı görüntülense bile hata oluşmamış gibi işlemeye devam eder.
Not
SET ARITHABORT, hesaplanan sütunlarda veya dizinlenmiş görünümlerde dizin oluşturduğunuzda veya dizinlerde değişiklik yaptığınızda ON olarak ayarlanmalıdır.
sys.databases katalog görünümündeki is_arithabort_on
sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsArithmeticAbortEnabled
özelliğini inceleyerek de durumu belirleyebilirsiniz.
COMPATIBILITY_LEVEL = { 160 | 150 | 140 | 130 | 120 | 110 | 100 }
Daha fazla bilgi için bkz. alter database uyumluluk düzeyi
CONCAT_NULL_YIELDS_NULL { ON | KAPALI }
ÜZERİNDE
bir birleştirme işleminin sonucu, işlenenlerden biri NULL olduğunda NULL'dır. Örneğin, "This is" ve NULL karakter dizesini birleştirmek"This is" değeri yerine NULL değerine neden olur.
KAPALI
Null değer boş karakter dizesi olarak kabul edilir.
Not
CONCAT_NULL_YIELDS_NULL hesaplanan sütunlarda veya dizinlenmiş görünümlerde dizin oluştururken veya dizinlerde değişiklik yaparken ON olarak ayarlanmalıdır.
SQL Server'ın gelecekteki bir sürümünde, CONCAT_NULL_YIELDS_NULL her zaman AÇIK olur ve seçeneği açıkça KAPALI olarak ayarlayan tüm uygulamalar bir hata oluşturur. Bu özelliği yeni geliştirme çalışmalarında kullanmaktan kaçının ve şu anda bu özelliği kullanan uygulamaları değiştirmeyi planlayın.
SET deyimi kullanılarak ayarlanan bağlantı düzeyi ayarları, CONCAT_NULL_YIELDS_NULL için varsayılan veritabanı ayarını geçersiz kılar. Varsayılan olarak, ODBC ve OLE DB istemcileri SQL Server örneğine bağlanırken oturum için CONCAT_NULL_YIELDS_NULL bağlantı düzeyi SET deyimi ayarı gönderir. Daha fazla bilgi için bkz. set CONCAT_NULL_YIELDS_NULL
sys.databases katalog görünümündeki is_concat_null_yields_null_on
sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsNullConcat
özelliğini inceleyerek de durumu belirleyebilirsiniz.
NUMERIC_ROUNDABORT { ON | KAPALI }
ÜZERİNDE
İfadede duyarlık kaybı oluştuğunda bir hata oluşturulur.
KAPALI
Duyarlık kaybı bir hata iletisi oluşturmaz ve sonuç, sonucun depolandığı sütunun veya değişkenin duyarlığına yuvarlanr.
Önemli
hesaplanan sütunlarda veya dizinlenmiş görünümlerde dizin oluştururken veya dizinlerde değişiklik yaparken NUMERIC_ROUNDABORT KAPALI olarak ayarlanmalıdır.
Bu seçeneğin durumunu, sys.databases katalog görünümündeki is_numeric_roundabort_on
sütununda belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsNumericRoundAbortEnabled
özelliğini inceleyerek de durumu belirleyebilirsiniz.
QUOTED_IDENTIFIER { ON | KAPALI }
ÜZERİNDE
Sınırlandırılmış tanımlayıcıları içine almak için çift tırnak işaretleri kullanılabilir.
Çift tırnak işaretleri ile sınırlandırılan tüm dizeler nesne tanımlayıcıları olarak yorumlanır. Teklif edilen tanımlayıcıların tanımlayıcılar için Transact-SQL kurallarına uyması gerekmez. Bunlar anahtar sözcükler olabilir ve Transact-SQL tanımlayıcılarında izin verilmeyen karakterler içerebilir. Çift tırnak işareti (
"
) tanımlayıcının bir parçasıysa, iki çift tırnak işaretiyle (""
) temsil edilebilir.KAPALI
Tanımlayıcılar tırnak içinde olamaz ve tanımlayıcılar için tüm Transact-SQL kurallarını izlemelidir. Değişmez değerler tek veya çift tırnak işaretiyle sınırlandırılabilir.
SQL Server, tanımlayıcıların köşeli ayraçlarla ([
ve ]
) sınırlandırılmasına da olanak tanır. Köşeli ayraçlı tanımlayıcılar, QUOTED_IDENTIFIER ayarı ne olursa olsun her zaman kullanılabilir. Daha fazla bilgi için bkz.
Tablo oluşturulduğunda, QUOTED IDENTIFIER seçeneği her zaman tablonun meta verilerinde ON olarak depolanır. Tablo oluşturulduğunda seçenek KAPALI olarak ayarlansa bile seçenek depolanır.
SET deyimi kullanılarak ayarlanan bağlantı düzeyi ayarları, QUOTED_IDENTIFIER için varsayılan veritabanı ayarını geçersiz kılar. ODBC ve OLE DB istemcileri, varsayılan olarak AÇıK olarak QUOTED_IDENTIFIER bir bağlantı düzeyi SET deyimi ayarı oluşturur. SQL Server örneğine bağlandığınızda istemciler deyimini çalıştırır. Daha fazla bilgi için bkz. set QUOTED_IDENTIFIER
sys.databases katalog görünümündeki is_quoted_identifier_on
sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsQuotedIdentifiersEnabled
özelliğini inceleyerek de durumu belirleyebilirsiniz.
RECURSIVE_TRIGGERS { ON | KAPALI }
ÜZERİNDE
AFTER tetikleyicilerinin özyinelemeli olarak tetiklemesine izin verilir.
KAPALI
sys.databases katalog görünümündeki
is_recursive_triggers_on
sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevininIsRecursiveTriggersEnabled
özelliğini inceleyerek de durumu belirleyebilirsiniz.
Not
RECURSIVE_TRIGGERS KAPALI olarak ayarlandığında yalnızca doğrudan özyineleme engellenir. Dolaylı özyineleme özelliğini devre dışı bırakmak için iç içe tetikleyiciler sunucusu seçeneğini de 0 olarak ayarlamanız gerekir.
sys.databases katalog görünümündeki is_recursive_triggers_on
sütununu veya DATABASEPROPERTYEX işlevinin IsRecursiveTriggersEnabled
özelliğini inceleyerek bu seçeneğin durumunu belirleyebilirsiniz.
<target_recovery_time_option> ::=
Veritabanı başına dolaylı denetim noktalarının sıklığını belirtir. SQL Server 2016'dan (13.x) başlayarak yeni veritabanları için varsayılan değer 1 dakika' dir ve bu da veritabanının dolaylı denetim noktaları kullandığını gösterir. Eski sürümler için varsayılan değer 0'dır ve bu, veritabanının sıklığı sunucu örneğinin kurtarma aralığı ayarına bağlı olan otomatik denetim noktaları kullandığını gösterir. Microsoft çoğu sistem için 1 dakika önerir.
TARGET_RECOVERY_TIME = target_recovery_time { SECONDS | DAKİkA }
target_recovery_time
Kilitlenme durumunda belirtilen veritabanının kurtarılması için gereken süre üst sınırını belirtir.
target_recovery_time , inttürüdür. SANİYE
target_recovery_time saniye sayısı olarak ifade edilir.
TUTANAK
target_recovery_time dakika sayısı olarak ifade edilir.
Dolaylı denetim noktaları hakkında daha fazla bilgi için bkz. Veritabanı denetim noktaları.
WITH <sonlandırma> ::=
Veritabanı bir durumdan diğerine geçirildiğinde tamamlanmamış işlemlerin ne zaman geri alınıp alınamayacaını belirtir. Sonlandırma yan tümcesi atlanırsa, veritabanında herhangi bir kilit varsa ALTER DATABASE deyimi süresiz olarak bekler. Yalnızca bir sonlandırma yan tümcesi belirtilebilir ve SET yan tümcelerini izler.
Not
Tüm veritabanı seçenekleri WITH <sonlandırma> yan tümcesini kullanmaz. Daha fazla bilgi için, bu makalenin "Açıklamalar" bölümünün ayar seçenekleri
tamsayıdan sonra geri alma [SECONDS] | HEMEN GERI ALMA
Belirtilen saniye sayısından sonra mı yoksa hemen mi geri alınmayacağını belirtir.
NO_WAIT
İstenen veritabanı durumu veya seçenek değişikliği hemen tamamlanamadıysa isteğin başarısız olduğunu belirtir. Hemen tamamlanması, işlemlerin kendi başına işlenmesini veya geri alınması beklenmediği anlamına gelir.
<temporal_history_retention> ::=
TEMPORAL_HISTORY_RETENTION { ON | KAPALI }
Varsayılan olarak AÇILDI, ancak belirli bir noktaya geri yükleme işleminden sonra otomatik olarak KAPALI olarak ayarlanır. Bu ayarı etkinleştirme hakkında daha fazla bilgi için bkz. Bekletme ilkesini yapılandırma.
Seçenekleri ayarlama
Veritabanı seçeneklerinin geçerli ayarlarını almak için
Veritabanı seçeneğini ayarladıktan sonra yeni ayar hemen etkinleşir.
Yeni oluşturulan tüm veritabanları için veritabanı seçeneklerinden herhangi birinin varsayılan değerlerini değiştirebilirsiniz. Bunu yapmak için model
veritabanında uygun veritabanı seçeneğini değiştirin.
Tüm veritabanı seçenekleri WITH <sonlandırma> yan tümcesini kullanmaz veya diğer seçeneklerle birlikte belirtilebilir. Aşağıdaki tabloda bu seçenekler ve bunların seçeneği ile sonlandırma durumu listelenmiştir.
Seçenekler kategorisi | Diğer seçeneklerle belirtilebilir | WITH <sonlandırma> yan tümcesini kullanabilir |
---|---|---|
<auto_option> | Evet | Hayır |
<change_tracking_option> | Evet | Evet |
<cursor_option> | Evet | Hayır |
<db_encryption_option> | Evet | Hayır |
<db_update_option> | Evet | Evet |
<db_user_access_option> | Evet | Evet |
<delayed_durability_option> | Evet | Evet |
<parameterization_option> | Evet | Evet |
ALLOW_SNAPSHOT_ISOLATION | Hayır | Hayır |
READ_COMMITTED_SNAPSHOT | Hayır | Evet |
MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT | Evet | Evet |
DATE_CORRELATION_OPTIMIZATION | Evet | Evet |
<sql_option> | Evet | Hayır |
<target_recovery_time_option> | Hayır | Evet |
Örnekler
A. Veritabanını READ_ONLY olarak ayarlama
Veritabanının veya dosya grubunun durumunun READ_ONLY veya READ_WRITE olarak değiştirilmesi, veritabanına özel erişim gerektirir ve tamamlanması birkaç saniye sürebilir. Aşağıdaki örnek, erişimi sınırlamak için veritabanını RESTRICTED_USER
moduna ayarlar. Örnek daha sonra AdventureWorks2022
veritabanının durumunu READ_ONLY
olarak ayarlar ve veritabanına erişimi tüm kullanıcılara döndürür.
--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
Veritabanını yeniden okuma-yazma moduna ayarlamak için:
--Connect to [database_name];
GO
ALTER DATABASE [database_name]
SET READ_WRITE
GO
Doğrulamak için:
SELECT [name], user_access_desc, is_read_only FROM sys.databases
WHERE [name] = 'database_name'
GO
B. Veritabanında anlık görüntü yalıtımını etkinleştirme
Aşağıdaki örnek, AdventureWorks2022
veritabanı için anlık görüntü yalıtım çerçevesi seçeneğini etkinleştirir.
--Connect to [database_name]
GO
ALTER DATABASE [database_name]
SET ALLOW_SNAPSHOT_ISOLATION ON;
GO
Veritabanındaki snapshot_isolation_framework
durumunu doğrulayın.
--Connect to [database_name]
SELECT name, snapshot_isolation_state,
snapshot_isolation_state_desc AS description
FROM sys.databases
WHERE name = N'database_name';
GO
Sonuç kümesi, anlık görüntü yalıtım çerçevesinin etkinleştirildiğini gösterir.
ad | snapshot_isolation_state | Açıklama |
---|---|---|
[database_name] | 1 | ÜZERİNDE |
C. Değişiklik izlemeyi etkinleştirme, değiştirme veya devre dışı bırakma
Aşağıdaki örnek, AdventureWorks2022
veritabanı için değişiklik izlemeyi etkinleştirir ve bekletme süresini 2
güne ayarlar.
--Connect to [database_name]
ALTER DATABASE [database_name]
SET CHANGE_TRACKING = ON
(AUTO_CLEANUP = ON, CHANGE_RETENTION = 2 DAYS);
Aşağıdaki örnekte bekletme süresinin 3 gün olarak nasıl değiştireceği gösterilmektedir.
--Connect to [database_name]
ALTER DATABASE [database_name]
SET CHANGE_TRACKING (CHANGE_RETENTION = 3 DAYS);
Aşağıdaki örnekte, AdventureWorks2022
veritabanı için değişiklik izlemeyi devre dışı bırakma gösterilmektedir.
--Connect to [database_name]
ALTER DATABASE [database_name]
SET CHANGE_TRACKING = OFF;
D. Sorgu Deposunu Etkinleştirme
Aşağıdaki örnekte Sorgu Deposu etkinleştirilip Sorgu Deposu parametreleri yapılandırılır.
--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. Sorgu Deposu'nı bekleme istatistikleriyle etkinleştirme
Aşağıdaki örnek Sorgu Deposu'na olanak tanır ve parametrelerini yapılandırmaktadır.
--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. Özel yakalama ilkesi seçenekleriyle Sorgu Deposu'yu etkinleştirme
Aşağıdaki örnek Sorgu Deposu'na olanak tanır ve parametrelerini yapılandırmaktadır.
--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
)
);
İlgili içerik
- İstatistikleri
- DATABASEPROPERTYEX (Transact-SQL)
- sys.databases
- sys.data_spaces
- sys.database_automatic_tuning_options
- sys.database_automatic_tuning_mode
- ALTER DATABASE uyumluluk düzeyi
- ALTER DATABASE Veritabanı Yansıtma
- CREATE DATABASE
- Değişiklik İzlemeyi Etkinleştirme ve Devre Dışı Bırakma (SQL Server)
- DROP DATABASE (Transact-SQL)
- SET TRANSACTION ISOLATION LEVEL (Transact-SQL)
- sp_configure
- Sorgu Deposu ile iş yüklerini izlemeye yönelik en iyi yöntemler
- sorgu deposu ipuçları
SQL Server
SQL Veritabanı
* SQL Yönetilen Örneği *
Azure Synapse'i
Analiz
Microsoft Fabric
Azure SQL Yönetilen Örneği
Uyumluluk düzeyleri SET
seçeneklerdir ancak ALTER DATABASE uyumluluk düzeyiaçıklanmıştır.
Not
Çoğu veritabanı kümesi seçeneği, SET Deyimleri kullanılarak geçerli oturum için yapılandırılabilir ve genellikle bağlandığında uygulamalar tarafından yapılandırılır. Oturum düzeyi ayar seçenekleri ALTER DATABASE SET
değerlerini geçersiz kılar. Aşağıdaki bölümlerde açıklanan veritabanı seçenekleri, diğer ayar seçeneği değerlerini açıkça sağlamayan oturumlar için ayarlanabilen değerlerdir.
Sözdizimi
ALTER DATABASE { database_name | Current }
SET
{
<optionspec> [ ,...n ]
}
;
<optionspec> ::=
{
<auto_option>
| <change_tracking_option>
| <cursor_option>
| <db_encryption_option>
| <delayed_durability_option>
| <parameterization_option>
| <query_store_options>
| <snapshot_option>
| <sql_option>
| <target_recovery_time_option>
| <termination>
| <temporal_history_retention>
}
;
<auto_option> ::=
{
AUTO_CREATE_STATISTICS { OFF | ON [ ( INCREMENTAL = { ON | OFF } ) ] }
| AUTO_SHRINK { ON | OFF }
| AUTO_UPDATE_STATISTICS { ON | OFF }
| AUTO_UPDATE_STATISTICS_ASYNC { ON | OFF }
}
<automatic_tuning_option> ::=
{
AUTOMATIC_TUNING ( FORCE_LAST_GOOD_PLAN = { DEFAULT | ON | OFF } )
}
<change_tracking_option> ::=
{
CHANGE_TRACKING
{
= OFF
| = ON [ ( <change_tracking_option_list > [,...n] ) ]
| ( <change_tracking_option_list> [,...n] )
}
}
<change_tracking_option_list> ::=
{
AUTO_CLEANUP = { ON | OFF }
| CHANGE_RETENTION = retention_period { DAYS | HOURS | MINUTES }
}
<cursor_option> ::=
{
CURSOR_CLOSE_ON_COMMIT { ON | OFF }
}
<db_encryption_option> ::=
ENCRYPTION { ON | OFF }
<delayed_durability_option> ::=DELAYED_DURABILITY = { DISABLED | ALLOWED | FORCED }
<parameterization_option> ::=
PARAMETERIZATION { SIMPLE | FORCED }
<query_store_options> ::=
{
QUERY_STORE
{
= OFF
| = ON [ ( <query_store_option_list> [,... n] ) ]
| ( < query_store_option_list> [,... n] )
| CLEAR [ ALL ]
}
}
<query_store_option_list> ::=
{
OPERATION_MODE = { READ_WRITE | READ_ONLY }
| CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = number )
| DATA_FLUSH_INTERVAL_SECONDS = number
| MAX_STORAGE_SIZE_MB = number
| INTERVAL_LENGTH_MINUTES = number
| SIZE_BASED_CLEANUP_MODE = { AUTO | OFF }
| QUERY_CAPTURE_MODE = { ALL | AUTO | CUSTOM | NONE }
| MAX_PLANS_PER_QUERY = number
| WAIT_STATS_CAPTURE_MODE = { ON | OFF }
| QUERY_CAPTURE_POLICY = ( <query_capture_policy_option_list> [,...n] )
}
<query_capture_policy_option_list> :: =
{
STALE_CAPTURE_POLICY_THRESHOLD = number { DAYS | HOURS }
| EXECUTION_COUNT = number
| TOTAL_COMPILE_CPU_TIME_MS = number
| TOTAL_EXECUTION_CPU_TIME_MS = number
}
<snapshot_option> ::=
{
ALLOW_SNAPSHOT_ISOLATION { ON | OFF }
| READ_COMMITTED_SNAPSHOT { ON | OFF }
| MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT { ON | OFF }
}
<sql_option> ::=
{
ANSI_NULL_DEFAULT { ON | OFF }
| ANSI_NULLS { ON | OFF }
| ANSI_PADDING { ON | OFF }
| ANSI_WARNINGS { ON | OFF }
| ARITHABORT { ON | OFF }
| COMPATIBILITY_LEVEL = { 160 | 150 | 140 | 130 | 120 | 110 | 100 }
| CONCAT_NULL_YIELDS_NULL { ON | OFF }
| NUMERIC_ROUNDABORT { ON | OFF }
| QUOTED_IDENTIFIER { ON | OFF }
| RECURSIVE_TRIGGERS { ON | OFF }
}
<temporal_history_retention>::= TEMPORAL_HISTORY_RETENTION { ON | OFF }
Bağımsız değişken
database_name
Değiştirilecek veritabanının adı.
GEÇERLİ
CURRENT
eylemi geçerli veritabanında çalıştırır.
CURRENT
tüm bağlamlardaki tüm seçenekler için desteklenmez.
CURRENT
başarısız olursa veritabanı adını belirtin.
<auto_option> ::=
Otomatik seçenekleri denetler.
AUTO_CREATE_STATISTICS { ON | KAPALI }
ÜZERİNDE
Sorgu İyileştiricisi, sorgu planlarını ve sorgu performansını geliştirmek için gerektiğinde sorgu koşullarındaki tek sütunlarda istatistikler oluşturur. Bu tek sütunlu istatistikler, Sorgu İyileştiricisi sorguları derlediğinde oluşturulur. Tek sütunlu istatistikler yalnızca mevcut istatistik nesnesinin ilk sütunu olmayan sütunlarda oluşturulur.
Varsayılan değer ON'dır. Çoğu veritabanı için varsayılan ayarı kullanmanızı öneririz.
KAPALI
Sorgu İyileştiricisi, sorgu derlerken sorgu koşullarında tek sütunlarda istatistik oluşturmaz. Bu seçeneğin KAPALI olarak ayarlanması, yetersiz sorgu planlarına ve düşük sorgu performansına neden olabilir.
sys.databases katalog görünümündeki
is_auto_create_stats_on
sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevininIsAutoCreateStatistics
özelliğini inceleyerek de durumu belirleyebilirsiniz.Daha fazla bilgi için, İstatistikler
'deki "İstatistik seçenekleri" bölümüne bakın.
ARTıMLı = ON | KAPALI
AUTO_CREATE_STATISTICS AÇıK olarak ayarlayın ve ARTıMLı'yı ON olarak ayarlayın. Bu ayar, artımlı istatistikler desteklendiği her durumda otomatik olarak oluşturulan istatistikleri artımlı olarak oluşturur. Varsayılan değer KAPALI'dır. Daha fazla bilgi için bkz. create STATISTICS
AUTO_SHRINK { ON | KAPALI }
ÜZERİNDE
Veritabanı dosyaları düzenli aralıklarla daraltma için adaydır. Belirli bir gereksiniminiz yoksa AUTO_SHRINK veritabanı seçeneğini ON olarak ayarlamayın. Daha fazla bilgi için bkz. veritabanını küçültme
. Hem veri dosyası hem de günlük dosyaları otomatik olarak küçültülebilir. AUTO_SHRINK işlem günlüğünün boyutunu yalnızca veritabanını SIMPLE kurtarma modeli olarak ayarlarsanız veya günlüğü yedeklerseniz azaltır. KAPALI olarak ayarlandığında, kullanılmayan alan için düzenli denetimler sırasında veritabanı dosyaları otomatik olarak küçültülür.
AUTO_SHRINK seçeneği, dosyanın yüzde 25'inden fazlası kullanılmayan alan içerdiğinde dosyaların küçültülmelerine neden olur. seçeneği, dosyanın iki boyuttan birine küçültülmesini sağlar. Aşağıdakilerden hangisi daha büyükse küçülür:
- Dosyanın yüzde 25'inin kullanılmayan alan olduğu boyut
- Dosyanın oluşturulduğu zaman boyutu
Salt okunur veritabanını küçültemezsiniz.
KAPALI
Kullanılmayan alan için düzenli aralıklarla yapılan denetimler sırasında veritabanı dosyaları otomatik olarak küçülmez.
sys.databases katalog görünümündeki is_auto_shrink_on
sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsAutoShrink
özelliğini inceleyerek de durumu belirleyebilirsiniz.
Not
AUTO_SHRINK seçeneği, Kapsanan Veritabanında kullanılamaz.
AUTO_UPDATE_STATISTICS { ON | KAPALI }
ÜZERİNDE
Sorgu İyileştiricisi'nin bir sorgu tarafından kullanıldığında ve güncel olma durumlarında istatistikleri güncelleştirdiğini belirtir. Ekleme, güncelleştirme, silme veya birleştirme işlemleri tablodaki veya dizinli görünümdeki veri dağıtımını değiştirdikten sonra istatistikler güncel değildir. Sorgu İyileştiricisi, son istatistik güncelleştirmelerinden bu yana yapılan veri değişikliklerinin sayısını sayarak ve değişikliklerin sayısını bir eşikle karşılaştırarak istatistiklerin ne zaman güncel olabileceğini belirler. Eşik, tablodaki veya dizinli görünümdeki satır sayısını temel alır.
Sorgu İyileştiricisi, sorgu derlemeden ve önbelleğe alınmış bir sorgu planı çalıştırmadan önce güncel olmayan istatistikleri denetler. Sorgu İyileştiricisi, hangi istatistiklerin güncel olmayabileceğini belirlemek için sorgu koşulundaki sütunları, tabloları ve dizine alınan görünümleri kullanır. Sorgu İyileştirici bu bilgileri bir sorgu derlemeden önce belirler. Önbelleğe alınmış bir sorgu planını çalıştırmadan önce Veritabanı Altyapısı, sorgu planının up-totarih istatistiklerine başvurduğunu doğrular.
AUTO_UPDATE_STATISTICS seçeneği dizinler için oluşturulan istatistikler, sorgu koşulundaki tek sütunlar ve CREATE STATISTICS deyimi kullanılarak oluşturulan istatistikler için geçerlidir. Bu seçenek filtrelenmiş istatistikler için de geçerlidir.
Varsayılan değer ON'dır. Çoğu veritabanı için varsayılan ayarı kullanmanızı öneririz.
İstatistiklerin zaman uyumlu mu yoksa zaman uyumsuz olarak mı güncelleştirileceğini belirtmek için AUTO_UPDATE_STATISTICS_ASYNC seçeneğini kullanın.
KAPALI
Sorgu İyileştirici'nin bir sorgu tarafından kullanıldığında istatistikleri güncelleştirmediğini belirtir. Sorgu İyileştiricisi ayrıca güncel olmayan istatistikleri güncelleştirmez. Bu seçeneğin KAPALI olarak ayarlanması, yetersiz sorgu planlarına ve düşük sorgu performansına neden olabilir.
sys.databases katalog görünümündeki is_auto_update_stats_on
sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsAutoUpdateStatistics
özelliğini inceleyerek de durumu belirleyebilirsiniz.
Daha fazla bilgi için, İstatistikler'daki "Veritabanı genelinde istatistik seçeneklerini kullanma" bölümüne bakın.
AUTO_UPDATE_STATISTICS_ASYNC { ON | KAPALI }
ÜZERİNDE
AUTO_UPDATE_STATISTICS seçeneği için istatistik güncelleştirmelerinin zaman uyumsuz olduğunu belirtir. Sorgu İyileştiricisi, sorguları derlemeden önce istatistik güncelleştirmelerinin tamamlanmasını beklemez.
AUTO_UPDATE_STATISTICS AÇıK olarak ayarlanmadığı sürece bu seçeneğiN ON olarak ayarlanmasının hiçbir etkisi olmaz.
Varsayılan olarak, AUTO_UPDATE_STATISTICS_ASYNC seçeneği KAPALI olarak ayarlanır ve Sorgu İyileştiricisi istatistikleri zaman uyumlu olarak güncelleştirir.
KAPALI
AUTO_UPDATE_STATISTICS seçeneği için istatistik güncelleştirmelerinin zaman uyumlu olduğunu belirtir. Sorgu İyileştiricisi, sorguları derlemeden önce istatistik güncelleştirmelerinin tamamlanmasını bekler.
AUTO_UPDATE_STATISTICS AÇıK olarak ayarlanmadığı sürece bu seçeneği KAPALI olarak ayarlamanın hiçbir etkisi olmaz.
sys.databases katalog görünümündeki is_auto_update_stats_async_on
sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz.
Zaman uyumlu veya zaman uyumsuz istatistik güncelleştirmelerinin ne zaman kullanılacağını açıklayan daha fazla bilgi için, İstatistikleriçindeki "Veritabanı genelinde istatistik seçeneklerini kullanma" bölümüne bakın.
<automatic_tuning_option> ::=
Otomatik ayarlamaiçin otomatik seçenekleri denetler.
FORCE_LAST_GOOD_PLAN = { DEFAULT | ON | KAPALI }
FORCE_LAST_GOOD_PLAN
Otomatik ayarlama seçeneğini etkinleştirir veya devre dışı bırakır.
TEMERRÜT
Azure SQL Yönetilen Örneği için varsayılan değer ON'dır.
ÜZERİNDE
Veritabanı Altyapısı, yeni sorgu planının performans regresyonlarına neden olduğu Transact-SQL sorgularda bilinen son iyi planı otomatik olarak zorlar. Veritabanı Altyapısı, zorlamalı planla Transact-SQL sorgunun sorgu performansını sürekli izler. Performans kazançları varsa Veritabanı Altyapısı bilinen son iyi planı kullanmaya devam eder. Performans kazanımları algılanmamışsa Veritabanı Altyapısı yeni bir sorgu planı oluşturur. Sorgu Deposu etkinleştirilmediyse veya okuma-yazma modunda
deyimi başarısız olur. Bu varsayılan değerdir. KAPALI
Veritabanı Altyapısı, sys.dm_db_tuning_recommendations görünümde sorgu planı değişikliklerinin neden olduğu olası sorgu performansı regresyonlarını bildirir. Ancak bu öneriler otomatik olarak uygulanmaz. Kullanıcılar, görünümde gösterilen Transact-SQL betikleri uygulayarak etkin önerileri izleyebilir ve tanımlanan sorunları çözebilir.
<change_tracking_option> ::=
Değişiklik izleme seçeneklerini denetler. Değişiklik izlemeyi etkinleştirebilir, seçenekleri ayarlayabilir, seçenekleri değiştirebilir ve değişiklik izlemeyi devre dışı bırakabilirsiniz. Örnekler için bu makalenin devamında yer alan Örnekler bölümüne bakın.
ÜZERİNDE
Veritabanı için değişiklik izlemeyi etkinleştirir. Değişiklik izlemeyi etkinleştirdiğinizde, AUTO CLEANUP ve CHANGE RETENTION seçeneklerini de ayarlayabilirsiniz.
AUTO_CLEANUP = { ON | KAPALI }
ÜZERİNDE
Değişiklik izleme bilgileri belirtilen saklama süresinden sonra otomatik olarak kaldırılır.
KAPALI
Değişiklik izleme verileri veritabanından kaldırılmaz.
CHANGE_RETENTION = retention_period { DAYS | SAAT | DAKİkA }
Değişiklik izleme bilgilerini veritabanında tutmak için en düşük süreyi belirtir. Veriler yalnızca AUTO_CLEANUP değeri AÇILDI olduğunda kaldırılır.
retention_period, bekletme süresinin sayısal bileşenini belirten bir tamsayıdır.
Varsayılan saklama süresi2 gün
KAPALI
Veritabanı için değişiklik izlemeyi devre dışı bırakır. Veritabanında değişiklik izlemeyi devre dışı bırakmadan önce tüm tablolarda değişiklik izlemeyi devre dışı bırakın.
<cursor_option> ::=
İmleç seçeneklerini denetler.
CURSOR_CLOSE_ON_COMMIT { ON | KAPALI }
ÜZERİNDE
bir işlemi işlediğiniz veya geri aldığınızda açılan tüm imleçler kapatılır.
KAPALI
bir işlem işlendiğinde imleçler açık kalır; bir işlemi geri döndürmek, DUYARSIZ veya STATIK olarak tanımlananlar dışında tüm imleçleri kapatır.
SET deyimi kullanılarak ayarlanan bağlantı düzeyi ayarları, CURSOR_CLOSE_ON_COMMIT için varsayılan veritabanı ayarını geçersiz kılar. ODBC ve OLE DB istemcileri, oturum için varsayılan olarak OFF olarak CURSOR_CLOSE_ON_COMMIT bir bağlantı düzeyi SET deyimi ayarı gönderir. SQL Server örneğine bağlandığınızda istemciler deyimini çalıştırır. Daha fazla bilgi için bkz. set CURSOR_CLOSE_ON_COMMIT
sys.databases katalog görünümündeki is_cursor_close_on_commit_on
sütununu veya DATABASEPROPERTYEX işlevinin IsCloseCursorsOnCommitEnabled özelliğini inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. İmleç örtük olarak yalnızca bağlantı kesildiğinde serbest bırakılır. Daha fazla bilgi için bkz. DECLARE CURSOR.
<db_encryption_option> ::=
Veritabanı şifreleme durumunu denetler.
ŞIFRELEME { ON | KAPALI }
Veritabanını şifrelenecek (ON) veya şifrelenmez (KAPALI) olarak ayarlar. Veritabanı şifrelemesi hakkında daha fazla bilgi için bkz. Saydam veri şifrelemesi (TDE)ve Azure SQL Veritabanı, Azure SQL Yönetilen Örneği ve Azure Synapse Analyticsiçin saydam veri şifrelemesi.
Şifreleme veritabanı düzeyinde etkinleştirildiğinde, tüm dosya grupları şifrelenir. Tüm yeni dosya grupları şifrelenmiş özelliği devralır. Veritabanındaki herhangi bir dosya grubu SALT OKUNUR olarak ayarlanırsa, veritabanı şifreleme işlemi başarısız olur.
sys.dm_database_encryption_keys dinamik yönetim görünümünü kullanarak veritabanının şifreleme durumunu görebilirsiniz.
<delayed_durability_option> ::=
İşlemlerin tamamen dayanıklı mı yoksa gecikmeli dayanıklı mı işlediğini denetler.
SAKAT
SET DISABLED
izleyen tüm işlemler tamamen dayanıklıdır. Atomik blokta veya işleme deyiminde ayarlanan tüm dayanıklılık seçenekleri yoksayılır.IZİN VERİLEN
SET ALLOWED
izleyen tüm işlemler, atomik blokta veya işleme deyiminde ayarlanan dayanıklılık seçeneğine bağlı olarak tamamen dayanıklı veya gecikmeli dayanıklıdır.ZORLA
SET FORCED
izleyen tüm işlemler gecikmeli dayanıklıdır. Atomik blokta veya işleme deyiminde ayarlanan tüm dayanıklılık seçenekleri yoksayılır.
<PARAMETERIZATION_option> ::=
Parametreleştirme seçeneğini denetler.
PARAMETRELEŞTIRME { SIMPLE | FORCED }
BASİT
Sorgular, veritabanının varsayılan davranışına göre parametreleştirilir.
ZORLA
SQL Server, veritabanındaki tüm sorguları parametreleştirir.
Bu seçeneğin geçerli ayarı, sys.databases katalog görünümündeki is_parameterization_forced
sütunu incelenerek belirlenebilir.
<query_store_options> ::=
ON | KAPALI | CLEAR [ ALL ]
Bu veritabanında Sorgu Deposu'nun etkinleştirilip etkinleştirilmediğini denetler ve ayrıca Sorgu Deposu'nun içeriğini kaldırmayı denetler.
ÜZERİNDE
Sorgu Deposu'na olanak tanır.
KAPALI
Sorgu Deposu'nı devre dışı bırakır. Bu varsayılan değerdir.
BERRAK
Sorgu Deposu'nun içeriğini kaldırın.
OPERATION_MODE
Sorgu Deposu'nun işlem modunu açıklar. Geçerli değerler READ_ONLY ve READ_WRITE. READ_WRITE modunda Sorgu Deposu sorgu planı ve çalışma zamanı yürütme istatistikleri bilgilerini toplar ve kalıcı hale toplar. READ_ONLY modunda bilgiler Sorgu Deposu'ndan okunabilir, ancak yeni bilgiler eklenmez. Sorgu Deposu'nun ayrılan en fazla alanı tükendiyse, Sorgu Deposu işlem modunu READ_ONLY olarak değiştirir.
CLEANUP_POLICY
Sorgu Deposu'nun veri saklama ilkesini açıklar. STALE_QUERY_THRESHOLD_DAYS, sorgu bilgilerinin Sorgu Deposu'nda tutulduğu gün sayısını belirler. STALE_QUERY_THRESHOLD_DAYS bigint
DATA_FLUSH_INTERVAL_SECONDS
Sorgu Deposu'na yazılan verilerin diskte kalıcı olduğu sıklığı belirler. Performansı iyileştirmek için Sorgu Deposu tarafından toplanan veriler zaman uyumsuz olarak diske yazılır. Bu zaman uyumsuz aktarımın gerçekleşme sıklığı, DATA_FLUSH_INTERVAL_SECONDS bağımsız değişkeni kullanılarak yapılandırılır. DATA_FLUSH_INTERVAL_SECONDS bigint
MAX_STORAGE_SIZE_MB
Sorgu Deposu'na ayrılan alanı belirler. MAX_STORAGE_SIZE_MB, bigint
MAX_STORAGE_SIZE_MB
sınırı kesinlikle uygulanmaz. Depolama boyutu yalnızca Sorgu Deposu diske veri yazdığında denetlenmektedir. Bu aralık, veri temizleme aralığı
Sorgu Deposu depolama boyutu denetimleri arasındaki MAX_STORAGE_SIZE_MB
sınırını aştıysa salt okunur moda geçer.
SIZE_BASED_CLEANUP_MODE
etkinleştirilirse, MAX_STORAGE_SIZE_MB
sınırını zorlamak için temizleme mekanizması da tetikler.
Yeterli alan temizlendikten sonra Sorgu Deposu modu otomatik olarak yeniden okuma-yazma moduna geçer.
Önemli
- İş yükü yakalamanızın 10 GB'tan fazla disk alanına ihtiyacı olduğunu düşünüyorsanız, sorgu planlarını yeniden kullanmak için iş yükünüzü yeniden düşünmeli ve iyileştirmelisiniz (örneğin, zorlamalı parametrelemekullanarak veya Sorgu Deposu yapılandırmalarını ayarlamalısınız.
- SQL Server 2019'dan (15.x) başlayarak ve Azure SQL Veritabanı'nda sorgu yakalama ilkesi üzerinde ek denetim için
QUERY_CAPTURE_MODE
CUSTOM olarak ayarlayabilirsiniz. -
MAX_STORAGE_SIZE_MB
ayarı sınırı Azure SQL Yönetilen Örneği'nin 10.240 MB'tır.
INTERVAL_LENGTH_MINUTES
Çalışma zamanı yürütme istatistikleri verilerinin Sorgu Deposu'nda toplandığı zaman aralığını belirler. Alan kullanımını iyileştirmek için, çalışma zamanı istatistikleri deposundaki çalışma zamanı yürütme istatistikleri sabit bir zaman aralığı boyunca toplanır. Bu sabit zaman penceresi INTERVAL_LENGTH_MINUTES bağımsız değişkeni kullanılarak yapılandırılır. INTERVAL_LENGTH_MINUTES bigint
SIZE_BASED_CLEANUP_MODE = { AUTO | KAPALI }
Toplam veri miktarı maksimum boyuta yaklaştığında temizlemenin otomatik olarak etkinleştirilip etkinleştirilmediğini denetler.
KAPALI
Boyut tabanlı temizleme otomatik olarak etkinleştirilmez.
OTOMATİK
Diskte boyut 90% max_storage_size_mbulaştığında boyut tabanlı temizleme otomatik olarak etkinleştirilir. Boyut tabanlı temizleme, önce en düşük maliyetli ve en eski sorguları kaldırır. Yaklaşık 80% max_storage_size_mbdurur. Bu varsayılan yapılandırma değeridir.
SIZE_BASED_CLEANUP_MODE nvarchar
QUERY_CAPTURE_MODE { ALL | OTOMATİk | ÖZEL | NONE }
Şu anda etkin olan sorgu yakalama modunu atar.
TÜM
Tüm sorgular yakalanır.
OTOMATİK
Yürütme sayısına ve kaynak tüketimine göre ilgili sorguları yakalayın. Bu, Azure SQL Veritabanı için varsayılan yapılandırma değeridir.
Hiç kimse
Yeni sorguları yakalamayı durdurun. Sorgu Deposu, zaten yakalanan sorgular için derleme ve çalışma zamanı istatistiklerini toplamaya devam eder. Önemli sorguları yakalamayı kaçırabileceğiniz için bu yapılandırmayı dikkatli kullanın.
QUERY_CAPTURE_MODE nvarchartürüdür.
MAX_PLANS_PER_QUERY
Her sorgu için tutulan plan sayısı üst sınırını temsil eden bir tamsayı. MAX_PLANS_PER_QUERY
WAIT_STATS_CAPTURE_MODE { ON | KAPALI }
Sorgu başına bekleme istatistiklerinin yakalanıp yakalanmayacağını denetler.
ÜZERİNDE
Sorgu başına bekleme istatistikleri bilgileri yakalanır. Bu değer varsayılan yapılandırma değeridir.
KAPALI
Sorgu başına bekleme istatistikleri bilgileri yakalanmaz.
<query_capture_policy_option_list> :: =
Sorgu Deposu yakalama ilkesi seçeneklerini denetler. STALE_CAPTURE_POLICY_THRESHOLD dışında, bu seçenekler sorguların tanımlanan Eski Yakalama İlkesi Eşiği değerinde yakalanması için gerçekleşmesi gereken OR koşullarını tanımlar.
STALE_CAPTURE_POLICY_THRESHOLD = tamsayı { GÜN | HOURS }
Bir sorgunun yakalanması gerekip gerekmediğini belirlemek için değerlendirme aralığını tanımlar. Varsayılan değer 1 gündür ve 1 saatten yedi güne ayarlanabilir.
EXECUTION_COUNT = tamsayı
Bir sorgunun değerlendirme süresi boyunca yürütülme sayısını tanımlar. Varsayılan değer 30'dur. Bu, varsayılan Eski Yakalama İlkesi Eşiği için sorgunun Sorgu Deposu'nda kalıcı olması için bir günde en az 30 kez yürütülmesi gerektiği anlamına gelir. EXECUTION_COUNT, int
TOTAL_COMPILE_CPU_TIME_MS = tamsayı
Değerlendirme süresi boyunca sorgu tarafından kullanılan toplam derleme CPU süresini tanımlar. Varsayılan değer 1000'dir ve bu da varsayılan Eski Yakalama İlkesi Eşiği için sorgunun Sorgu Deposu'nda kalıcı olması için sorgu derlemesi sırasında harcanan cpu süresinin bir gün içinde toplam en az bir saniye olması gerektiği anlamına gelir. TOTAL_COMPILE_CPU_TIME_MS
TOTAL_EXECUTION_CPU_TIME_MS = tamsayı
Değerlendirme süresi boyunca sorgu tarafından kullanılan toplam yürütme CPU süresini tanımlar. Varsayılan değer 100'dür; başka bir deyişle, varsayılan Eski Yakalama İlkesi Eşiği için sorgunun Sorgu Deposu'nda kalıcı olması için bir günde yürütme sırasında harcanan toplam CPU süresi en az 100 ms olmalıdır. TOTAL_EXECUTION_CPU_TIME_MS, int
<snapshot_option> ::=
İşlem yalıtım düzeyini belirler.
ALLOW_SNAPSHOT_ISOLATION { ON | KAPALI }
ÜZERİNDE
Veritabanı düzeyinde Anlık Görüntü seçeneğini etkinleştirir. Etkinleştirildiğinde, hiçbir işlem Anlık Görüntü Yalıtımı kullanmasa bile DML deyimleri satır sürümleri oluşturmaya başlar. Bu seçenek etkinleştirildikten sonra işlemler SNAPSHOT işlem yalıtım düzeyini belirtebilir. Bir işlem SNAPSHOT yalıtım düzeyinde çalıştırıldığında, tüm deyimler işlemin başlangıcında mevcut olan verilerin anlık görüntüsünü görür. SNAPSHOT yalıtım düzeyinde çalışan bir işlem birden çok veritabanındaki verilere erişiyorsa, ALLOW_SNAPSHOT_ISOLATION tüm veritabanlarında AÇILACAK şekilde ayarlanmalıdır veya işlemdeki her deyim, from yan tümcesindeki herhangi bir başvuruda kilit ipuçlarını ALLOW_SNAPSHOT_ISOLATION OFF olduğu bir veritabanındaki bir tabloya kilitleme ipuçlarını kullanmalıdır.
KAPALI
Veritabanı düzeyinde Anlık Görüntü seçeneğini kapatır. İşlemler SNAPSHOT işlemi yalıtım düzeyini belirtemez.
ALLOW_SNAPSHOT_ISOLATION yeni bir duruma ayarladığınızda (ON'dan KAPALI'ya veya KAPALI'dan ON'a), VERITABANıNDAki tüm mevcut işlemler işlenmeden ALTER DATABASE denetimi çağırana döndürmez. Veritabanı ZATEN ALTER DATABASE deyiminde belirtilen durumdaysa, denetim çağırana hemen döndürülür. ALTER DATABASE deyimi hızlı bir şekilde döndürülmezse, uzun süre çalışan işlemler olup olmadığını belirlemek için sys.dm_tran_active_snapshot_database_transactions kullanın. ALTER DATABASE deyimi iptal edilirse, veritabanı ALTER DATABASE başlatıldığında olduğu durumda kalır.
sys.databases katalog görünümü, veritabanındaki anlık görüntü yalıtım işlemlerinin durumunu gösterir.
snapshot_isolation_state_desc = IN_TRANSITION_TO_ON ise, ALTER DATABASE ... ALLOW_SNAPSHOT_ISOLATION OFF
deyimi altı saniye duraklatılır ve işlemi yeniden dener.
Veritabanı ÇEVRİmDIŞI olduğunda ALLOW_SNAPSHOT_ISOLATION durumunu değiştiremezsiniz.
master
, model
, msdb
ve tempdb
veritabanlarının ALLOW_SNAPSHOT_ISOLATION ayarlarını değiştirebilirsiniz.
tempdb
ayarını değiştirirseniz, Veritabanı Altyapısı örneği her durdurulduğunda ve yeniden başlatıldığında ayar korunur.
model
sistem veritabanının ayarını değiştirirseniz, bu ayar tempdb
dışında oluşturulan tüm yeni veritabanları için varsayılan ayar olur.
seçenek, master
ve msdb
veritabanları için varsayılan olarak ON'dır.
Bu seçeneğin geçerli ayarı, sys.databases katalog görünümündeki snapshot_isolation_state
sütunu incelenerek belirlenebilir.
READ_COMMITTED_SNAPSHOT { ON | KAPALI }
ÜZERİNDE
Veritabanı düzeyinde Read-Committed Anlık Görüntü seçeneğini etkinleştirir. Etkinleştirildiğinde, hiçbir işlem Anlık Görüntü Yalıtımı kullanmasa bile DML deyimleri satır sürümleri oluşturmaya başlar. Bu seçenek etkinleştirildikten sonra, READ COMMITTED yalıtım düzeyini belirten işlemler kilitleme yerine satır sürümü oluşturma kullanır. Tüm deyimler, bir işlem READ COMMITTED yalıtım düzeyinde çalıştırıldığında deyiminin başında mevcut olan verilerin anlık görüntüsünü görür.
KAPALI
Veritabanı düzeyinde Read-Committed Anlık Görüntü seçeneğini kapatır. READ COMMITTED yalıtım düzeyini belirten işlemler kilitlemeyi kullanır.
READ_COMMITTED_SNAPSHOT AÇI veya KAPALI olarak ayarlamak için ALTER DATABASE komutunu çalıştıran bağlantı dışında veritabanına etkin bağlantı olmaması gerekir. Ancak veritabanının tek kullanıcı modunda olması gerekmez. Veritabanı ÇEVRİmDIŞI olduğunda bu seçeneğin durumunu değiştiremezsiniz.
READ_COMMITTED_SNAPSHOT master
, tempdb
veya msdb
sistem veritabanları için AÇIlamıyor.
model
sistem veritabanının ayarını değiştirirseniz, bu ayar tempdb
dışında oluşturulan tüm yeni veritabanları için varsayılan ayar olur.
Bu seçeneğin geçerli ayarı, sys.databases katalog görünümündeki is_read_committed_snapshot_on
sütunu incelenerek belirlenebilir.
Uyarı
DAYANıKLıLıK = SCHEMA_ONLYile bir tablo oluşturulduğunda ve READ_COMMITTED_SNAPSHOT daha sonra ALTER DATABASE kullanılarak değiştirildiğinde, tablodaki veriler kaybolur.
MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT { ON | KAPALI }
ÜZERİNDE
İşlem yalıtım düzeyi SNAPSHOT'dan daha düşük bir yalıtım düzeyine ayarlandığında, bellek için iyileştirilmiş tablolardaki tüm yorumlanan Transact-SQL işlemleri SNAPSHOT yalıtımı altında çalıştırılır. Anlık görüntüden düşük yalıtım düzeylerine örnek olarak READ COMMITTED veya READ UNCOMMITTED verilebilir. Bu işlemler, işlem yalıtım düzeyinin oturum düzeyinde açıkça ayarlanıp ayarlanmadığını veya varsayılanın örtük olarak kullanılıp kullanılmadığını çalıştırır.
KAPALI
Bellek için iyileştirilmiş tablolarda yorumlanan Transact-SQL işlemleri için işlem yalıtım düzeyini yükseltmez.
Veritabanı ÇEVRİmDIŞI olduğunda MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT durumunu değiştiremezsiniz.
Varsayılan değer KAPALI'dır.
Bu seçeneğin geçerli ayarı, sys.databases katalog görünümündeki is_memory_optimized_elevate_to_snapshot_on
sütunu incelenerek belirlenebilir.
<sql_option> ::=
VERITABANı düzeyinde ANSI uyumluluk seçeneklerini denetler.
ANSI_NULL_DEFAULT { ON | KAPALI }
Create TABLE veya ALTER TABLE deyimlerinde null atanabilirliğin açıkça tanımlanmadığı clr kullanıcı tanımlı tür bir sütunun veya
ÜZERİNDE
Varsayılan değer NULL'dir.
KAPALI
Varsayılan değer NULL DEĞİlDİr.
SET deyimi kullanılarak ayarlanan bağlantı düzeyi ayarları, ANSI_NULL_DEFAULT için varsayılan veritabanı düzeyi ayarını geçersiz kılar. ODBC ve OLE DB istemcileri, oturum için varsayılan olarak AÇıK olarak ANSI_NULL_DEFAULT bir bağlantı düzeyi SET deyimi ayarı gönderir. SQL Server örneğine bağlandığınızda istemciler deyimini çalıştırır. Daha fazla bilgi için bkz. set ANSI_NULL_DFLT_ON
ANSI uyumluluğu için, ANSI_NULL_DEFAULT veritabanı seçeneğinin ON olarak ayarlanması, veritabanının varsayılan değerini NULL olarak değiştirir.
sys.databases katalog görünümündeki is_ansi_null_default_on
sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsAnsiNullDefault
özelliğini inceleyerek de durumu belirleyebilirsiniz.
ANSI_NULLS { ON | KAPALI }
ÜZERİNDE
Null değerle yapılan tüm karşılaştırmalar BİlİNMEYEN olarak değerlendirilir.
KAPALI
Unicode olmayan değerlerin null değerle karşılaştırmaları, her iki değer de NULL ise TRUE olarak değerlendirilir.
Önemli
SQL Server'ın gelecekteki bir sürümünde ANSI_NULLS her zaman AÇIK olur ve seçeneği açıkça KAPALI olarak ayarlayan tüm uygulamalar hata oluşturur. Bu özelliği yeni geliştirme çalışmalarında kullanmaktan kaçının ve şu anda bu özelliği kullanan uygulamaları değiştirmeyi planlayın.
SET deyimi kullanılarak ayarlanan bağlantı düzeyi ayarları, ANSI_NULLS için varsayılan veritabanı ayarını geçersiz kılar. ODBC ve OLE DB istemcileri, oturum için varsayılan olarak AÇıK olarak ANSI_NULLS bir bağlantı düzeyi SET deyimi ayarı gönderir. SQL Server örneğine bağlandığınızda istemciler deyimini çalıştırır. Daha fazla bilgi için bkz. set ANSI_NULLS
Önemli
SET ANSI_NULLS hesaplanan sütunlarda veya dizinlenmiş görünümlerde dizin oluşturduğunuzda veya dizinlerde değişiklik yaptığınızda da ON olarak ayarlanmalıdır.
sys.databases katalog görünümündeki is_ansi_nulls_on
sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsAnsiNullsEnabled
özelliğini inceleyerek de durumu belirleyebilirsiniz.
ANSI_PADDING { ON | KAPALI }
ÜZERİNDE
Dizeler dönüştürmeden önce aynı uzunlukta doldurulur. Ayrıca bir varchar veya nvarchar veri türüne eklemeden önce aynı uzunlukta doldurulur.
KAPALI
Karakter değerlerinde sondaki boşlukları
varchar veya nvarchar sütunlarınaekler. Ayrıca, varbinary sütunlarına eklenen ikili değerlerde sondaki sıfırları bırakır. Değerler sütunun uzunluğuna göre doldurulamaz. KAPALI belirtildiğinde, bu ayar yalnızca yeni sütunların tanımını etkiler.
Önemli
SQL Server'ın gelecekteki bir sürümünde, ANSI_PADDING her zaman AÇIK olur ve seçeneği açıkça KAPALI olarak ayarlayan tüm uygulamalar bir hata oluşturur. Bu özelliği yeni geliştirme çalışmalarında kullanmaktan kaçının ve şu anda bu özelliği kullanan uygulamaları değiştirmeyi planlayın. ANSI_PADDING her zaman ON olarak ayarlamanızı öneririz. ANSI_PADDING hesaplanan sütunlarda veya dizinlenmiş görünümlerde dizin oluştururken veya işlerken ON olmalıdır.
char(n) ve ikili(n) null değere izin veren sütunlar, ANSI_PADDING ON olarak ayarlandığında sütun uzunluğuna doldurulur. ANSI_PADDING KAPALI olduğunda sondaki boşluklar ve sıfırlar kırpılır. char(n) ve binary(n) null değere izin verilmeyen sütunlar her zaman sütunun uzunluğuna doldurulur.
SET deyimi kullanılarak ayarlanan bağlantı düzeyi ayarları, ANSI_PADDING için varsayılan veritabanı düzeyi ayarını geçersiz kılar. ODBC ve OLE DB istemcileri, varsayılan olarak oturum için AÇıK olarak ANSI_PADDING bir bağlantı düzeyi SET deyimi ayarı gönderir. SQL Server örneğine bağlandığınızda istemciler deyimini çalıştırır. Daha fazla bilgi için bkz. set ANSI_PADDING
sys.databases katalog görünümündeki is_ansi_padding_on
sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsAnsiPaddingEnabled
özelliğini inceleyerek de durumu belirleyebilirsiniz.
ANSI_WARNINGS { ON | KAPALI }
ÜZERİNDE
Sıfıra bölme gibi koşullar oluştuğunda hatalar veya uyarılar verilir. Toplama işlevlerinde null değerler göründüğünde de hatalar ve uyarılar verilir.
KAPALI
Sıfıra bölme gibi koşullar oluştuğunda hiçbir uyarı tetiklenmez ve null değerler döndürülür.
Önemli
HESAPLANAN sütunlarda veya dizinlenmiş görünümlerde dizin oluşturduğunuzda veya dizinlerde değişiklik yaptığınızda SET ANSI_WARNINGS ON olarak ayarlanmalıdır.
SET deyimi kullanılarak ayarlanan bağlantı düzeyi ayarları, ANSI_WARNINGS için varsayılan veritabanı ayarını geçersiz kılar. ODBC ve OLE DB istemcileri, oturum için varsayılan olarak AÇıK olarak ANSI_WARNINGS bir bağlantı düzeyi SET deyimi ayarı gönderir. SQL Server örneğine bağlandığınızda istemciler deyimini çalıştırır. Daha fazla bilgi için bkz. set ANSI_WARNINGS
sys.databases katalog görünümündeki is_ansi_warnings_on
sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsAnsiWarningsEnabled
özelliğini inceleyerek de durumu belirleyebilirsiniz.
ARITHABORT { ON | KAPALI }
ÜZERİNDE
Sorgu yürütme sırasında taşma veya sıfıra bölme hatası oluştuğunda sorgu sonlandırılır.
KAPALI
Bu hatalardan biri oluştuğunda bir uyarı iletisi görüntülenir. Sorgu, toplu iş veya işlem, bir uyarı görüntülense bile hata oluşmamış gibi işlemeye devam eder.
Önemli
SET ARITHABORT, hesaplanan sütunlarda veya dizinlenmiş görünümlerde dizin oluşturduğunuzda veya dizinlerde değişiklik yaptığınızda ON olarak ayarlanmalıdır.
sys.databases katalog görünümündeki is_arithabort_on
sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsArithmeticAbortEnabled
özelliğini inceleyerek de durumu belirleyebilirsiniz.
COMPATIBILITY_LEVEL = { 160 | 150 | 140 | 130 | 120 | 110 | 100 }
Daha fazla bilgi için bkz. alter database uyumluluk düzeyi
CONCAT_NULL_YIELDS_NULL { ON | KAPALI }
ÜZERİNDE
bir birleştirme işleminin sonucu, işlenenlerden biri NULL olduğunda NULL'dır. Örneğin, "This is" ve NULL karakter dizesini birleştirmek"This is" değeri yerine NULL değerine neden olur.
KAPALI
Null değer boş karakter dizesi olarak kabul edilir.
Önemli
CONCAT_NULL_YIELDS_NULL hesaplanan sütunlarda veya dizinlenmiş görünümlerde dizin oluştururken veya dizinlerde değişiklik yaparken ON olarak ayarlanmalıdır.
SQL Server'ın gelecekteki bir sürümünde, CONCAT_NULL_YIELDS_NULL her zaman AÇIK olur ve seçeneği açıkça KAPALI olarak ayarlayan tüm uygulamalar bir hata oluşturur. Bu özelliği yeni geliştirme çalışmalarında kullanmaktan kaçının ve şu anda bu özelliği kullanan uygulamaları değiştirmeyi planlayın.
SET deyimi kullanılarak ayarlanan bağlantı düzeyi ayarları, CONCAT_NULL_YIELDS_NULL için varsayılan veritabanı ayarını geçersiz kılar. Varsayılan olarak, ODBC ve OLE DB istemcileri SQL Server örneğine bağlanırken oturum için CONCAT_NULL_YIELDS_NULL bağlantı düzeyi SET deyimi ayarı gönderir. Daha fazla bilgi için bkz. set CONCAT_NULL_YIELDS_NULL
sys.databases katalog görünümündeki is_concat_null_yields_null_on
sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsNullConcat
özelliğini inceleyerek de durumu belirleyebilirsiniz.
NUMERIC_ROUNDABORT { ON | KAPALI }
ÜZERİNDE
İfadede duyarlık kaybı oluştuğunda bir hata oluşturulur.
KAPALI
Duyarlık kaybı bir hata iletisi oluşturmaz ve sonuç, sonucun depolandığı sütunun veya değişkenin duyarlığına yuvarlanr.
Önemli
hesaplanan sütunlarda veya dizinlenmiş görünümlerde dizin oluştururken veya dizinlerde değişiklik yaparken NUMERIC_ROUNDABORT KAPALI olarak ayarlanmalıdır.
Bu seçeneğin durumunu, sys.databases katalog görünümündeki is_numeric_roundabort_on
sütununda belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsNumericRoundAbortEnabled
özelliğini inceleyerek de durumu belirleyebilirsiniz.
QUOTED_IDENTIFIER { ON | KAPALI }
ÜZERİNDE
Sınırlandırılmış tanımlayıcıları içine almak için çift tırnak işaretleri kullanılabilir.
Çift tırnak işaretleri ile sınırlandırılan tüm dizeler nesne tanımlayıcıları olarak yorumlanır. Teklif edilen tanımlayıcıların tanımlayıcılar için Transact-SQL kurallarına uyması gerekmez. Bunlar anahtar sözcükler olabilir ve Transact-SQL tanımlayıcılarında izin verilmeyen karakterler içerebilir. Çift tırnak işareti (
"
) tanımlayıcının bir parçasıysa, iki çift tırnak işaretiyle (""
) temsil edilebilir.KAPALI
Tanımlayıcılar tırnak içinde olamaz ve tanımlayıcılar için tüm Transact-SQL kurallarını izlemelidir. Değişmez değerler tek veya çift tırnak işaretiyle sınırlandırılabilir.
SQL Server, tanımlayıcıların köşeli ayraçlarla ([
ve ]
) sınırlandırılmasına da olanak tanır. Köşeli ayraçlı tanımlayıcılar, QUOTED_IDENTIFIER ayarı ne olursa olsun her zaman kullanılabilir. Daha fazla bilgi için bkz.
Tablo oluşturulduğunda, QUOTED IDENTIFIER seçeneği her zaman tablonun meta verilerinde ON olarak depolanır. Tablo oluşturulduğunda seçenek KAPALI olarak ayarlansa bile seçenek depolanır.
SET deyimi kullanılarak ayarlanan bağlantı düzeyi ayarları, QUOTED_IDENTIFIER için varsayılan veritabanı ayarını geçersiz kılar. ODBC ve OLE DB istemcileri, varsayılan olarak AÇıK olarak QUOTED_IDENTIFIER bir bağlantı düzeyi SET deyimi ayarı oluşturur. SQL Server örneğine bağlandığınızda istemciler deyimini çalıştırır. Daha fazla bilgi için bkz. set QUOTED_IDENTIFIER
sys.databases katalog görünümündeki is_quoted_identifier_on
sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsQuotedIdentifiersEnabled
özelliğini inceleyerek de durumu belirleyebilirsiniz.
RECURSIVE_TRIGGERS { ON | KAPALI }
ÜZERİNDE
AFTER tetikleyicilerinin özyinelemeli olarak tetiklemesine izin verilir.
KAPALI
sys.databases katalog görünümündeki
is_recursive_triggers_on
sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevininIsRecursiveTriggersEnabled
özelliğini inceleyerek de durumu belirleyebilirsiniz.Not
RECURSIVE_TRIGGERS KAPALI olarak ayarlandığında yalnızca doğrudan özyineleme engellenir. Dolaylı özyineleme özelliğini devre dışı bırakmak için iç içe tetikleyiciler sunucusu seçeneğini de 0 olarak ayarlamanız gerekir.
sys.databases katalog görünümündeki is_recursive_triggers_on
sütununu veya DATABASEPROPERTYEX işlevinin IsRecursiveTriggersEnabled
özelliğini inceleyerek bu seçeneğin durumunu belirleyebilirsiniz.
<target_recovery_time_option> ::=
target_recovery_time_option, Azure SQL Yönetilen Örneği'nda desteklenmez.
Veritabanı başına dolaylı denetim noktalarının sıklığını belirtir. SQL Server 2016'dan (13.x) başlayarak, yeni veritabanları için varsayılan değer 1 dakikaolur ve bu da veritabanının dolaylı denetim noktaları kullandığını gösterir. Eski sürümler için varsayılan değer 0'dır ve bu, veritabanının sıklığı sunucu örneğinin kurtarma aralığı ayarına bağlı olan otomatik denetim noktaları kullandığını gösterir. Microsoft çoğu sistem için 1 dakika önerir.
WITH <sonlandırma> ::=
Veritabanı bir durumdan diğerine geçirildiğinde tamamlanmamış işlemlerin ne zaman geri alınıp alınamayacaını belirtir. Sonlandırma yan tümcesi atlanırsa, veritabanında herhangi bir kilit varsa ALTER DATABASE deyimi süresiz olarak bekler. Yalnızca bir sonlandırma yan tümcesi belirtilebilir ve SET yan tümcelerini izler.
Not
Tüm veritabanı seçenekleri WITH <sonlandırma> yan tümcesini kullanmaz. Daha fazla bilgi için, bu makalenin "Açıklamalar" bölümünün ayar seçenekleri
tamsayıdan sonra geri alma [SECONDS] | HEMEN GERI ALMA
Belirtilen saniye sayısından sonra mı yoksa hemen mi geri alınmayacağını belirtir.
NO_WAIT
İstenen veritabanı durumu veya seçenek değişikliği hemen tamamlanamadıysa isteğin başarısız olduğunu belirtir. Hemen tamamlanması, işlemlerin kendi başına işlenmesini veya geri alınması beklenmediği anlamına gelir.
<temporal_history_retention> ::=
TEMPORAL_HISTORY_RETENTION { ON | KAPALI }
Varsayılan olarak AÇILDI, ancak belirli bir noktaya geri yükleme işleminden sonra otomatik olarak KAPALI olarak ayarlanır. Bu ayarı etkinleştirme hakkında daha fazla bilgi için bkz. Bekletme ilkesini yapılandırma.
Seçenekleri ayarlama
Veritabanı seçeneklerinin geçerli ayarlarını almak için
Veritabanı seçeneğini ayarladıktan sonra yeni ayar hemen etkinleşir.
Yeni oluşturulan tüm veritabanları için veritabanı seçeneklerinden herhangi birinin varsayılan değerlerini değiştirebilirsiniz. Bunu yapmak için model
sistem veritabanında uygun veritabanı seçeneğini değiştirin.
Örnekler
A. Veritabanında anlık görüntü yalıtımını etkinleştirme
Aşağıdaki örnek, AdventureWorks2022
veritabanı için anlık görüntü yalıtım çerçevesi seçeneğini etkinleştirir.
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
Sonuç kümesi, anlık görüntü yalıtım çerçevesinin etkinleştirildiğini gösterir.
ad | snapshot_isolation_state | Açıklama |
---|---|---|
[database_name] | 1 | ÜZERİNDE |
B. Değişiklik izlemeyi etkinleştirme, değiştirme veya devre dışı bırakma
Aşağıdaki örnek, AdventureWorks2022
veritabanı için değişiklik izlemeyi etkinleştirir ve bekletme süresini 2
güne ayarlar.
ALTER DATABASE [database_name]
SET CHANGE_TRACKING = ON
(AUTO_CLEANUP = ON, CHANGE_RETENTION = 2 DAYS);
Aşağıdaki örnekte bekletme süresinin 3
gün olarak nasıl değiştireceği gösterilmektedir.
ALTER DATABASE [database_name]
SET CHANGE_TRACKING (CHANGE_RETENTION = 3 DAYS);
Aşağıdaki örnekte, AdventureWorks2022
veritabanı için değişiklik izlemeyi devre dışı bırakma gösterilmektedir.
ALTER DATABASE [database_name]
SET CHANGE_TRACKING = OFF;
C. Sorgu Deposunu Etkinleştirme
Aşağıdaki örnekte Sorgu Deposu etkinleştirilip Sorgu Deposu parametreleri yapılandırılır.
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. Sorgu Deposu'nı bekleme istatistikleriyle etkinleştirme
Aşağıdaki örnek Sorgu Deposu'na olanak tanır ve parametrelerini yapılandırmaktadır.
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. Özel yakalama ilkesi seçenekleriyle Sorgu Deposu'yu etkinleştirme
Aşağıdaki örnek Sorgu Deposu'na olanak tanır ve parametrelerini yapılandırmaktadır.
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
)
);
İlgili içerik
- İstatistikleri
- DATABASEPROPERTYEX (Transact-SQL)
- sys.databases
- sys.data_spaces
- sys.database_automatic_tuning_options
- sys.database_automatic_tuning_mode
- ALTER DATABASE uyumluluk düzeyi
- ALTER DATABASE Veritabanı Yansıtma
- CREATE DATABASE
- Değişiklik İzlemeyi Etkinleştirme ve Devre Dışı Bırakma (SQL Server)
- DROP DATABASE (Transact-SQL)
- SET TRANSACTION ISOLATION LEVEL (Transact-SQL)
- sp_configure
- Sorgu Deposu ile iş yüklerini izlemeye yönelik en iyi yöntemler
SQL Server
SQL Veritabanı
SQL Yönetilen Örneği
* Azure Synapse
Analiz *
Microsoft Fabric
Azure Synapse Analytics
Sözdizimi
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 }
}
Bağımsız değişken
database_name
Değiştirilecek veritabanının adı.
<auto_option> ::=
Otomatik seçenekleri denetler.
AUTO_CREATE_STATISTICS { ON | KAPALI }
ÜZERİNDE
Sorgu İyileştiricisi, sorgu planlarını ve sorgu performansını geliştirmek için gerektiğinde sorgu koşullarındaki tek sütunlarda istatistikler oluşturur. Bu tek sütunlu istatistikler, Sorgu İyileştiricisi sorguları derlediğinde oluşturulur. Tek sütunlu istatistikler yalnızca mevcut istatistik nesnesinin ilk sütunu olmayan sütunlarda oluşturulur.
Varsayılan değer ON'dır. Çoğu veritabanı için varsayılan ayarı kullanmanızı öneririz.
KAPALI
Sorgu İyileştiricisi, sorgu derlerken sorgu koşullarında tek sütunlarda istatistik oluşturmaz. Bu seçeneğin KAPALI olarak ayarlanması, yetersiz sorgu planlarına ve düşük sorgu performansına neden olabilir.
Bu komut, kullanıcı veritabanına bağlıyken çalıştırılmalıdır.
sys.databases katalog görünümündeki is_auto_create_stats_on
sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsAutoCreateStatistics
özelliğini inceleyerek de durumu belirleyebilirsiniz.
Daha fazla bilgi için, İstatistikler'daki "Veritabanı genelinde istatistik seçeneklerini kullanma" bölümüne bakın.
<db_encryption_option> ::=
Veritabanı şifreleme durumunu denetler.
ŞIFRELEME { ON | KAPALI }
ÜZERİNDE
Veritabanını şifrelenecek şekilde ayarlar.
KAPALI
Veritabanını şifrelenmemesi için ayarlar.
Veritabanı şifrelemesi hakkında daha fazla bilgi için bkz. Saydam veri şifrelemesi (TDE)ve Azure SQL Veritabanı, Azure SQL Yönetilen Örneği ve Azure Synapse Analyticsiçin saydam veri şifrelemesi.
Şifreleme veritabanı düzeyinde etkinleştirildiğinde, tüm dosya grupları şifrelenir. Tüm yeni dosya grupları şifrelenmiş özelliği devralır. Veritabanındaki herhangi bir dosya grubu SALT OKUNUR olarak ayarlanırsa, veritabanı şifreleme işlemi başarısız olur.
sys.dm_database_encryption_keys
dinamik yönetim görünümünü kullanarak veritabanının şifreleme durumunu ve şifreleme taramasının durumunu görebilirsiniz.
<query_store_option> ::=
Sorgu Deposunun bu veri ambarında etkinleştirilip etkinleştirilmediğini denetler.
QUERY_STORE { ON | KAPALI }
ÜZERİNDE
Sorgu Deposu'na olanak tanır.
KAPALI
Sorgu Deposu'nı devre dışı bırakır. OFF varsayılan değerdir.
Not
Azure Synapse Analytics için kullanıcı veritabanından ALTER DATABASE SET QUERY_STORE
yürütmeniz gerekir. Deyimin başka bir veri ambarı örneğinden yürütülmesi desteklenmez.
Not
Azure Synapse Analytics için Sorgu Deposu diğer platformlarda olduğu gibi etkinleştirilebilir ancak ek yapılandırma seçenekleri desteklenmez.
<result_set_caching_option> ::=
için geçerlidir: Azure Synapse Analytics
Sorgu sonucunun veritabanında önbelleğe alınıp alınmayacağını denetler.
RESULT_SET_CACHING { ON | KAPALI }
ÜZERİNDE
Bu veritabanından döndürülen sorgu sonuç kümelerinin veritabanında önbelleğe alındığını belirtir.
KAPALI
Bu veritabanından döndürülen sorgu sonuç kümelerinin veritabanında önbelleğe alınmayacaklarını belirtir.
Bu komut, master
veritabanına bağlıyken çalıştırılmalıdır. Bu veritabanı ayarına yapılan değişiklik hemen geçerlilik kazanır. Depolama maliyetleri sorgu sonuç kümelerini önbelleğe alarak tahakkuk eder. Veritabanı için sonuç önbelleğe alma devre dışı bırakıldıktan sonra, daha önce kalıcı olan sonuç önbelleği Azure Synapse depolama alanından hemen silinir.
Veritabanının sonuç kümesi önbelleğe alma yapılandırmasını denetlemek için bu komutu çalıştırın. Sonuç kümesi önbelleğe alma açıksa, is_result_set_caching_on
1 döndürür.
SELECT name, is_result_set_caching_on FROM sys.databases
WHERE name = <'Your_Database_Name'>
Önbelleğe alınmış sonuç kullanılarak bir sorgu yürütülürse denetlemek için bu komutu çalıştırın.
result_cache_hit
sütunu önbellek isabeti için 1, önbellek isabeti için 0, sonuç kümesi önbelleğinin neden kullanılmaması nedeniyle negatif değerler döndürür. Ayrıntılar için sys.dm_pdw_exec_requests denetleyin.
SELECT request_id, command, result_cache_hit FROM sys.dm_pdw_exec_requests
WHERE request_id = <'Your_Query_Request_ID'>
Not
Sonuç kümesi önbelleği, DECRYPTBYKEYile birlikte kullanılmamalıdır. Bu şifreleme işlevinin kullanılması gerekiyorsa, yürütme sırasında sonuç kümesi önbelleğinin devre dışı bırakıldığından emin olun (oturum düzeyinde
Önemli
Sonuç kümesi önbelleği oluşturma ve önbellekten veri alma işlemleri, veri ambarı örneğinin denetim düğümünde gerçekleşir. Sonuç kümesi önbelleğe alma açık olduğunda, büyük sonuç kümesi döndüren sorguların çalıştırılması (örneğin, >1 milyon satır) denetim düğümünde yüksek CPU kullanımına neden olabilir ve örnekteki genel sorgu yanıtını yavaşlatabilir. Bu sorgular genellikle veri keşfi veya ETL işlemleri sırasında kullanılır. Denetim düğümünün strese girmemesi ve performans sorununa neden olması için kullanıcıların bu tür sorguları çalıştırmadan önce veritabanında off sonuç kümesi önbelleğe alma özelliğini kapatması gerekir.
Sonuç kümesi önbelleğe alma ile performans ayarlama hakkında ayrıntılı bilgi için
İzinler
RESULT_SET_CACHING seçeneğini ayarlamak için kullanıcının sunucu düzeyinde asıl oturum açma (sağlama işlemi tarafından oluşturulan) veya dbmanager
veritabanı rolünün üyesi olması gerekir.
<snapshot_option> ::=
için geçerlidir: Azure Synapse Analytics
Veritabanının işlem yalıtım düzeyini denetler.
READ_COMMITTED_SNAPSHOT { ON | KAPALI }
ÜZERİNDE
Veritabanı düzeyinde READ_COMMITTED_SNAPSHOT seçeneğini etkinleştirir.
KAPALI
Veritabanı düzeyinde READ_COMMITTED_SNAPSHOT seçeneğini kapatın.
Bu komut, master
veritabanına bağlıyken çalıştırılmalıdır. Kullanıcı veritabanı için READ_COMMITTED_SNAPSHOT AÇIK veya KAPALI olarak kapatmak, bu veritabanına yönelik tüm açık bağlantıları sonlar. Bu değişikliği veritabanı bakım penceresi sırasında yapmanız veya ALTER DATABASE komutunu çalıştıran bağlantı dışında veritabanına etkin bir bağlantı kalmayıncaya kadar beklemeniz gerekir. Veritabanının tek kullanıcılı modda olması gerekmez. Oturum düzeyinde READ_COMMITTED_SNAPSHOT ayarının değiştirilmesi desteklenmez. Bir veritabanı için bu ayarı doğrulamak için sys.databases
içindeki is_read_committed_snapshot_on
sütununu denetleyin.
READ_COMMITTED_SNAPSHOT etkin bir veritabanında, birden çok veri sürümü varsa, sürümlerin taranma nedeniyle sorgular daha yavaş performansla karşılaşabilir. Uzun süre açık işlemler de veritabanının boyutunda artışa neden olabilir. Bu sorun, bu işlemler tarafından sürüm temizlemeyi engelleyen veri değişiklikleri olduğunda oluşur.
İzinler
READ_COMMITTED_SNAPSHOT seçeneğini ayarlamak için kullanıcının veritabanında ALTER iznine sahip olması gerekir.
Örnekler
Veritabanı için istatistik ayarını denetleme
SELECT name, is_auto_create_stats_on FROM sys.databases
Veritabanı için Sorgu Deposu'yu etkinleştirme
ALTER DATABASE [database_name]
SET QUERY_STORE = ON;
Veritabanı için sonuç kümesi önbelleğini etkinleştirme
-- Run this command when connecting to the MASTER database
ALTER DATABASE [database_name]
SET RESULT_SET_CACHING ON;
Veritabanı için sonuç kümesi önbelleğe alma ayarını denetleme
SELECT name, is_result_set_caching_on
FROM sys.databases;
Veritabanı için Read_Committed_Snapshot seçeneğini etkinleştirme
master
veritabanına bağlanırken bu komutu çalıştırın.
ALTER DATABASE MyDatabase
SET READ_COMMITTED_SNAPSHOT ON;
İlgili içerik
- DATABASEPROPERTYEX (Transact-SQL)
- sys.databases
- Azure Synapse Analytics dil öğelerini
- DROP DATABASE (Transact-SQL)
- Azure Synapse Analytics için en iyi yöntemler
- Azure Synapse Analytics'te tablo tasarlama
SQL Server
SQL Veritabanı
SQL Yönetilen Örneği
Azure Synapse'i
Analiz
Microsoft Fabric
Microsoft Fabric
Microsoft Fabric Warehouse'u yönetmek için ALTER DATABASE ... SET
kullanın.
Sözdizimi
-- Microsoft Fabric
ALTER DATABASE { warehouse_name | CURRENT }
SET
{
<option_spec> [ ,...n ]
}
<option_spec> ::=
{
<data_lake_log_publishing>
| <vorder>
}
;
<data_lake_log_publishing> ::=
{
DATA_LAKE_LOG_PUBLISHING { PAUSED | AUTO }
}
<vorder> ::=
{
VORDER = OFF
}
Açıklamalar
Şu anda Delta Lake günlüğü yayımlama
İzinler
Kullanıcının Doku çalışma alanında Yönetici, Üye veya Katkıda Bulunan rollerinin üyesi olması gerekir.
Örnekler
A. Delta Lake Günlüklerinin yayımlanmasını duraklatma
Aşağıdaki T-SQL komutu geçerli ambar bağlamında Delta Lake Log yayımlamayı duraklatır.
ALTER DATABASE CURRENT SET DATA_LAKE_LOG_PUBLISHING = PAUSED;
Çalışma alanınızın tüm ambarlarında Delta Lake Log yayımlamasının geçerli durumunu denetlemek için, yeni bir sorgu penceresinde sys.databases
SELECT [name], [DATA_LAKE_LOG_PUBLISHING_DESC] FROM sys.databases;
İlgili içerik
- Microsoft Fabric'te veri ambarı nedir?
- Microsoft Fabric'daki Ambar'da Delta Lake günlüklerini
- Microsoft Fabric Warehouse için V Siparişini Anlama