Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
SQL Veritabanı Altyapısı'ndaki veritabanı seçeneklerini ayarlar. Diğer ALTER DATABASE seçenekleri için bkz. ALTER DATABASE (Transact-SQL).
Note
ile ALTER DATABASE 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 *
Azure Synapse'i
Analiz
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
Note
Birçok veritabanı kümesi seçeneği, mevcut oturum için SET ifadeleri kullanılarak yapılandırılabilir ve uygulamalar bağlandığında genellikle 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 ayarlayabileceğiniz değerlerdir.
Syntax
ALTER DATABASE { database_name | CURRENT }
SET
{
<option_spec> [ ,...n ] [ WITH <termination> ]
}
{ [ FOR SECONDARY ] SET <set_options> }
<option_spec> ::=
{
<accelerated_database_recovery>
| <auto_option>
| <automatic_tuning_option>
| <change_tracking_option>
| <containment_option>
| <cursor_option>
| <data_retention_policy>
| <database_mirroring_option>
| <date_correlation_optimization_option>
| <db_encryption_option>
| <db_state_option>
| <db_update_option>
| <db_user_access_option>
| <delayed_durability_option>
| <external_access_option>
| FILESTREAM ( <FILESTREAM_option> )
| <HADR_options>
| <mixed_page_allocation_option>
| <optimized_locking>
| <parameterization_option>
| <query_store_options>
| <recovery_option>
| <remote_data_archive_option>
| <persistent_log_buffer_option>
| <service_broker_option>
| <snapshot_option>
| <sql_option>
| <suspend_for_snapshot_backup>
| <target_recovery_time_option>
| <termination>
| <temporal_history_retention>
}
;
<accelerated_database_recovery> ::=
{
ACCELERATED_DATABASE_RECOVERY = { ON | OFF }
[ ( PERSISTENT_VERSION_STORE_FILEGROUP = { filegroup name } ) ]
}
<auto_option> ::=
{
AUTO_CLOSE { ON | OFF }
| AUTO_CREATE_STATISTICS { OFF | ON [ ( INCREMENTAL = { ON | OFF } ) ] }
| AUTO_SHRINK { ON | OFF }
| AUTO_UPDATE_STATISTICS { ON | OFF }
| AUTO_UPDATE_STATISTICS_ASYNC { ON | OFF }
}
<automatic_tuning_option> ::=
{
AUTOMATIC_TUNING ( FORCE_LAST_GOOD_PLAN = { DEFAULT | ON | OFF } )
}
<change_tracking_option> ::=
{
CHANGE_TRACKING
{
= OFF
| = ON [ ( <change_tracking_option_list > [,...n] ) ]
| ( <change_tracking_option_list> [,...n] )
}
}
<change_tracking_option_list> ::=
{
AUTO_CLEANUP = { ON | OFF }
| CHANGE_RETENTION = retention_period { DAYS | HOURS | MINUTES }
}
<containment_option> ::=
CONTAINMENT = { NONE | PARTIAL }
<cursor_option> ::=
{
CURSOR_CLOSE_ON_COMMIT { ON | OFF }
| CURSOR_DEFAULT { LOCAL | GLOBAL }
}
<database_mirroring_option>
ALTER DATABASE Database Mirroring
<date_correlation_optimization_option> ::=
DATE_CORRELATION_OPTIMIZATION { ON | OFF }
<db_encryption_option> ::=
ENCRYPTION { ON | OFF | SUSPEND | RESUME }
<db_state_option> ::=
{ ONLINE | OFFLINE | EMERGENCY }
<db_update_option> ::=
{ READ_ONLY | READ_WRITE }
<db_user_access_option> ::=
{ SINGLE_USER | RESTRICTED_USER | MULTI_USER }
<delayed_durability_option> ::=
DELAYED_DURABILITY = { DISABLED | ALLOWED | FORCED }
<external_access_option> ::=
{
DB_CHAINING { ON | OFF }
| TRUSTWORTHY { ON | OFF }
| DEFAULT_FULLTEXT_LANGUAGE = { <lcid> | <language name> | <language alias> }
| DEFAULT_LANGUAGE = { <lcid> | <language name> | <language alias> }
| NESTED_TRIGGERS = { OFF | ON }
| TRANSFORM_NOISE_WORDS = { OFF | ON }
| TWO_DIGIT_YEAR_CUTOFF = { 1753, ..., 2049, ..., 9999 }
}
<FILESTREAM_option> ::=
{
NON_TRANSACTED_ACCESS = { OFF | READ_ONLY | FULL
| DIRECTORY_NAME = <directory_name>
}
<HADR_options> ::=
ALTER DATABASE SET HADR
<mixed_page_allocation_option> ::=
MIXED_PAGE_ALLOCATION { OFF | ON }
<parameterization_option> ::=
PARAMETERIZATION { SIMPLE | FORCED }
<query_store_options> ::=
{
QUERY_STORE
{
= OFF [ ( FORCED ) ]
| = ON [ ( <query_store_option_list> [,...n] ) ]
| ( < query_store_option_list> [,...n] )
| CLEAR [ ALL ]
}
}
<query_store_option_list> ::=
{
OPERATION_MODE = { READ_WRITE | READ_ONLY }
| CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = number )
| DATA_FLUSH_INTERVAL_SECONDS = number
| MAX_STORAGE_SIZE_MB = number
| INTERVAL_LENGTH_MINUTES = number
| SIZE_BASED_CLEANUP_MODE = { AUTO | OFF }
| QUERY_CAPTURE_MODE = { ALL | AUTO | CUSTOM | NONE }
| MAX_PLANS_PER_QUERY = number
| WAIT_STATS_CAPTURE_MODE = { ON | OFF }
| QUERY_CAPTURE_POLICY = ( <query_capture_policy_option_list> [,...n] )
}
<query_capture_policy_option_list> ::=
{
STALE_CAPTURE_POLICY_THRESHOLD = number { DAYS | HOURS }
| EXECUTION_COUNT = number
| TOTAL_COMPILE_CPU_TIME_MS = number
| TOTAL_EXECUTION_CPU_TIME_MS = number
}
<recovery_option> ::=
{
RECOVERY { FULL | BULK_LOGGED | SIMPLE }
| TORN_PAGE_DETECTION { ON | OFF }
| PAGE_VERIFY { CHECKSUM | TORN_PAGE_DETECTION | NONE }
}
<remote_data_archive_option> ::=
{
REMOTE_DATA_ARCHIVE =
{
ON ( SERVER = <server_name>,
{
CREDENTIAL = <db_scoped_credential_name>
| FEDERATED_SERVICE_ACCOUNT = ON | OFF
}
)
| OFF
}
}
<persistent_log_buffer_option> ::=
{
PERSISTENT_LOG_BUFFER
{
= ON (DIRECTORY_NAME= 'path-to-directory-on-a-DAX-volume')
| = OFF
}
}
<service_broker_option> ::=
{
ENABLE_BROKER
| DISABLE_BROKER
| NEW_BROKER
| ERROR_BROKER_CONVERSATIONS
| HONOR_BROKER_PRIORITY { ON | OFF }
}
<snapshot_option> ::=
{
ALLOW_SNAPSHOT_ISOLATION { ON | OFF }
| READ_COMMITTED_SNAPSHOT { ON | OFF }
| MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT = { ON | OFF }
}
<sql_option> ::=
{
ANSI_NULL_DEFAULT { ON | OFF }
| ANSI_NULLS { ON | OFF }
| ANSI_PADDING { ON | OFF }
| ANSI_WARNINGS { ON | OFF }
| ARITHABORT { ON | OFF }
| COMPATIBILITY_LEVEL = { 170 | 160 | 150 | 140 | 130 | 120 | 110 | 100 }
| CONCAT_NULL_YIELDS_NULL { ON | OFF }
| NUMERIC_ROUNDABORT { ON | OFF }
| QUOTED_IDENTIFIER { ON | OFF }
| RECURSIVE_TRIGGERS { ON | OFF }
}
<suspend_for_snapshot_backup> ::=
SET SUSPEND_FOR_SNAPSHOT_BACKUP = { ON | OFF } [ ( MODE = COPY_ONLY ) ]
<target_recovery_time_option> ::=
TARGET_RECOVERY_TIME = target_recovery_time { SECONDS | MINUTES }
<termination>::=
{
ROLLBACK AFTER number [ SECONDS ]
| ROLLBACK IMMEDIATE
| NO_WAIT
}
<temporal_history_retention> ::=
TEMPORAL_HISTORY_RETENTION { ON | OFF }
<data_retention_policy> ::=
DATA_RETENTION { ON | OFF }
<optimized_locking> ::=
{
OPTIMIZED_LOCKING = { ON | OFF }
}
Arguments
database_name
Değiştirilecek veritabanının adı.
CURRENT
Uygulanır: 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.
İKINCIL IÇIN
için geçerlidir: SQL Server 2022 (16.x) ve sonraki sürümler
İkincil çoğaltmaların ayarlarını belirtir. Tüm ikincil çoğaltmalar aynı değerlere sahip olmalıdır.
FOR SECONDARY
ALTER DATABASE SCOPED CONFIGURATION (Transact-SQL) için benzer.
Yalnızca Sorgu Deposu (QUERY_STORE) ve Otomatik Ayarlama (AUTOMATIC_TUNING) ile kullanım için.
SQL Server Management Studio (SSMS) sürüm 21'inden önce söz FOR SECONDARY dizimi geçerli ancak IntelliSense tarafından tanınmıyor. SQL Server 2022 için SSMS IntelliSense söz dizimini FOR SECONDARY geçerli olarak tanımaz, ancak geçerlidir.
< > accelerated_database_recovery ::=
Uygulanır: 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 olarak ayarlanır OFF . 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 grubunu kullanır. Daha fazla bilgi için bkz. hızlandırılmış veritabanı kurtarmayönetme
AÇıK veya KAPALI ACCELERATED_DATABASE_RECOVERY 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İmİÇİ olmadığı sürece bu seçeneğin durumunu değiştiremezsiniz.
< > auto_option ::=
Otomatik seçenekleri denetler.
AUTO_CLOSE { ON | KAPALI }
ONVeritabanı 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_namedeyimini çı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.
OFFSon 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.
Note
AUTO_CLOSE seçeneği, kapsanan bir veritabanında veya SQL Veritabanı'nda kullanılamaz.
Bu seçeneğin durumunu is_auto_close_on katalog görünümündeki sütunu veya IsAutoClose fonksiyonunun özelliğini inceleyerek belirleyebilirsiniz.
AUTO_CLOSE ON olarak ayarlandığında, sys.databases katalog görünümündeki bazı sütunlar ve DATABASEPROPERTYEX fonksiyonu veritabanı veriyi almak için uygun olmadığı için NULL döner. Bu sorunu çözmek için bir USE deyimi çalıştırarak veritabanını açın.
Veritabanı yansıtma için AUTO_CLOSE OFF olarak ayarlanması gerekir.
Veritabanı AUTOCLOSE = ONolarak 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 }
ONSorgu İ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.
OFFSorgu İ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 seçeneğin durumunu is_auto_create_stats_on katalog görünümündeki sütunu inceleyerek belirleyebilirsiniz. Ayrıca IsAutoCreateStatistics fonksiyonunun özelliğini inceleyerek durumu belirleyebilirsiniz.
Daha fazla bilgi için, İstatistik bölümünde "Veritabanı çapında istatistik seçeneklerinin kullanımı" bölümüne bakınız.
ARTıMLı = ON | KAPALI
Şunlara uygulanır: SQL Server (SQL Server 2014 (12.x)) ile başlayarak) ve Azure SQL Database
olarak ONayarlayın AUTO_CREATE_STATISTICS ve olarak ONayarlayınINCREMENTAL. 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 }
ONVeritabanı dosyaları düzenli aralıklarla daraltma için adaydır. Belirli bir gereksiniminiz yoksa
AUTO_SHRINKveritabanı 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_SHRINKyalnızca veritabanını SIMPLE kurtarma modeli olarak ayarlarsanız veya günlüğü yedeklerseniz işlem günlüğünün boyutunu küçültür. olarakOFFayarladığınızdaAUTO_SHRINK, kullanılmayan alan için düzenli aralıklarla yapılan denetimler sırasında veritabanı dosyaları otomatik olarak küçültülür.seçeneği,
AUTO_SHRINKdosyanın yüzde 25'inden fazlası kullanılmayan alan içerdiğinde 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.
OFFKullanılmayan alan için düzenli aralıklarla yapılan denetimler sırasında veritabanı dosyaları otomatik olarak küçülmez.
Bu seçeneğin durumunu is_auto_shrink_on katalog görünümündeki sütunu inceleyerek belirleyebilirsiniz. Ayrıca IsAutoShrink fonksiyonunun özelliğini inceleyerek durumu belirleyebilirsiniz.
Note
AUTO_SHRINK seçeneği, Kapsanan Veritabanında kullanılamaz.
AUTO_UPDATE_STATISTICS { ON | KAPALI }
ONSorgu İ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.
OFFSorgu İ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.
Bu seçeneğin durumunu is_auto_update_stats_on katalog görünümündeki sütunu inceleyerek belirleyebilirsiniz. Ayrıca IsAutoUpdateStatistics fonksiyonunun özelliğini inceleyerek durumu belirleyebilirsiniz.
Daha fazla bilgi için, İstatistik bölümünde "Veritabanı çapında istatistik seçeneklerinin kullanımı" bölümüne bakınız.
AUTO_UPDATE_STATISTICS_ASYNC { ON | KAPALI }
ONAUTO_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.
OFFAUTO_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.
Note
AUTO_UPDATE_STATISTICS AÇıK olarak ayarlanmadığı sürece bu seçeneği KAPALI olarak ayarlamanın hiçbir etkisi olmaz.
Bu seçeneğin durumunu is_auto_update_stats_async_on katalog görünümündeki sütunu inceleyerek belirleyebilirsiniz.
Senkron veya asenkron istatistik güncellemelerinin ne zaman kullanılacağını açıklayan daha fazla bilgi için İstatistikler bölümündeki "İstatistik seçenekleri" bölümüne bakınız.
< > automatic_tuning_option ::=
Geçerlidir: SQL Server (SQL Server 2017 (14.x)'den başlayarak)
FORCE_LAST_GOOD_PLAN seçeneğini etkinleştiriyor veya devre dışı bırakıyor. bu seçeneğin durumunu sys.database_automatic_tuning_optionsgörünümünde görüntüleyebilirsiniz.
FORCE_LAST_GOOD_PLAN = { DEFAULT | ON | KAPALI }
DEFAULTSQL Server için varsayılan değer KAPALI'dır.
ONVeritabanı 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. Bu ifade, Query Store etkin değilse veya Query Store Okuma-Yazma modunda değilse başarısız olur.
OFFVeritabanı Motoru, sys.dm_db_tuning_recommendations görünümdeki sorgu planı değişikliklerinden kaynaklanabilecek olası sorgu performansı gerilemelerini 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 ::=
Uygulanır: SQL Server ve Azure SQL Database
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 ilerleyen bölümlerinde Örnekler bölümüne bakınız.
ONVeritabanı 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 }
ONDeğişiklik izleme bilgileri belirtilen saklama süresinden sonra otomatik olarak kaldırılır.
OFFDeğişiklik izleme verileri veritabanından otomatik olarak kaldırılmaz.
CHANGE_RETENTION = retention_period { GÜNLER | SAATLER | DAKIKALAR }
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 , tutma süresinin sayısal bileşenini belirten bir tam sayıdır.
Varsayılan tutma süresi 2 gündür. En düşük saklama süresi 1 dakikadır. Varsayılan tutma türü DAYS'tir.
OFFVeritabanı 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 ::=
Uygulanır: SQL Server (SQL Server 2012 (11.x) ile başlayarak)
Veritabanı kapsama seçeneklerini denetler.
KAPSAMA = { YOK | PARTIAL}
NONEVeritabanı, kapsanan bir veritabanı değildir.
PARTIALVeritabanı, 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 }
ONbir işlemi işlediğiniz veya geri aldığınızda açılan tüm imleçler kapatılır.
OFFbir 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.
deyimi kullanılarak SET 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.
Bu seçeneğin durumunu is_cursor_close_on_commit_on katalog görünümündeki sütunu veya IsCloseCursorsOnCommitEnabled fonksiyonunun özelliğini inceleyerek belirleyebilirsiniz.
CURSOR_DEFAULT { YEREL | GLOBAL }
Şunlar için geçerlidir: SQL Server
İmleç kapsamının LOCAL veya GLOBAL kullanıp kullanmadığını denetler.
LOCALYEREL'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.
GLOBALGENEL 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.
Bu seçeneğin durumunu is_local_cursor_default katalog görünümündeki sütunu inceleyerek belirleyebilirsiniz. Ayrıca IsLocalCursorsDefault fonksiyonunun özelliğini inceleyerek durumu belirleyebilirsiniz.
< > temporal_history_retention ::=
TEMPORAL_HISTORY_RETENTION { ON | KAPALI }
ON varsayılan olarak ancak belirli bir noktaya geri yükleme işleminden sonra otomatik olarak olarak ayarlanır OFF . Bu ayarı etkinleştirme hakkında daha fazla bilgi için bkz. Bekletme ilkesini yapılandırma.
ONDefault. 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.
OFFZamana bağlı geçmiş saklama ilkesi gerçekleştirmeyin.
< > data_retention_policy ::=
Geçerlidir: Sadece Azure SQL Edge.
DATA_RETENTION { ON | KAPALI }
ONVeritabanında Veri Saklama ilkesi tabanlı temizlemeyi etkinleştirir.
OFFVeritabanında Veri Saklama ilkesi tabanlı temizlemeyi devre dışı bırakır.
<Database_mırrorıng>
Şunlar 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 ::=
Şunlar için geçerlidir: SQL Server
date_correlation_optimization seçeneğini denetler.
DATE_CORRELATION_OPTIMIZATION { ON | KAPALI }
ONSQL Server, YABANCI ANAHTAR kısıtlaması veritabanındaki herhangi iki tabloyu bağlarken tabloların tarih ve zaman sütunlarına sahip olduğu korelasyon istatistiklerini tutar.
Etkinleştirme,
DATE_CORRELATION_OPTIMIZATIONgüvenilmez yedekleme geri yüklenirken saldırı alanı alanını artırır çünkü optimizer bu nesneleri yükseltilmiş ayrıcalıklarla çalıştırır.OFFBağıntı istatistikleri korunmaz.
olarak ayarlamak DATE_CORRELATION_OPTIMIZATIONONiçin, deyimini yürüten ALTER DATABASE bağlantı dışında veritabanına etkin bir bağlantı olmamalıdır. Daha sonra birden çok bağlantı desteklenir.
Bu seçeneğin mevcut ayarı, is_date_correlation_on katalog görünümündeki sütunu inceleyerek belirlenebilir.
< > db_encryption_option ::=
Veritabanı şifreleme durumunu denetler.
ŞIFRELEME { ON | KAPALI | ASKıYA ALMA | RESUME }
ONVeritabanını şifrelenecek şekilde ayarlar.
OFFVeritabanını şifrelenmemesi için ayarlar.
SUSPENDUygulanır: 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.
RESUMEUygulanır: 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.
Veritabanının şifreleme durumunu ve şifreleme taramasının durumunu sys.dm_database_encryption_keys dinamik yönetim görünümünü kullanarak görebilirsiniz.
< > db_state_option ::=
Şunlar için geçerlidir: SQL Server
Veritabanının durumunu denetler.
OFFLINEVeritabanı kapatılır, temiz bir şekilde kapatılır ve çevrimdışı olarak işaretlenir. Veritabanı çevrimdışıyken değiştirilemez.
ONLINEVeritabanı açık ve kullanılabilir.
EMERGENCYVeritabanı 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.
Bu seçeneğin durumunu state katalog görünümündeki ve state_desc sütunlarını inceleyerek belirleyebilirsiniz. Ayrıca Status fonksiyonunun özelliğini inceleyerek 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_ONLYKullanıcılar veritabanındaki verileri okuyabilir ancak değiştiremez.
Note
Sorgu performansını geliştirmek için veritabanını olarak ayarlamadan
READ_ONLYönce istatistikleri güncelleştirin. Veritabanı olarak ayarlandıktanREAD_ONLYsonra ek istatistikler gerekiyorsa, Veritabanı Altyapısı sistem veritabanında istatistiklertempdboluşturur. Sadece okunabilir bir veritabanı için istatistik hakkında daha fazla bilgi için İstatistikler sayfasına bakınız.READ_WRITEVeritabanı 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.
Note
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
Şunlar 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, ALTER DATABASE tüm kullanıcılar belirtilen veritabanıyla bağlantıyı kesene kadar deyimi engellenir. Bu davranışı geçersiz kılmak için yan tümcesine WITH <termination> 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örmek için is_auto_update_stats_async_on katalog görünümünde sütunu sorgulayın. Seçenek ON olarak ayarlandıysa aşağıdaki görevleri gerçekleştirin:
AUTO_UPDATE_STATISTICS_ASYNC KAPALI olarak ayarlayın.
Aktif asenkron istatistik işleri için sys.dm_exec_background_job_queue dinamik yönetim görünümünü sorgulayarak kontrol edin.
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ılarını sınırlamaz. deyiminin sonlandırma yan tümcesi tarafından belirtilen zaman çerçevesini kullanarak veritabanıyla tüm bağlantıların ALTER DATABASE bağlantısını kesin. Veritabanı duruma geçtikten RESTRICTED_USER 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. Bu seçeneğin durumunu user_access katalog görünümündeki sütunu inceleyerek belirleyebilirsiniz. Ayrıca UserAccess fonksiyonunun özelliğini inceleyerek durumu belirleyebilirsiniz.
< > delayed_durability_option ::=
Uygulanır: SQL Server (SQL Server 2014 (12.x)'den başlayarak)
İşlemlerin tamamen dayanıklı mı yoksa gecikmeli dayanıklı mı işlediğini denetler.
DISABLEDSET DISABLEDizleyen 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.ALLOWEDSET ALLOWEDizleyen 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.FORCEDSET FORCEDizleyen 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 ::=
Şunlar 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 }
ONVeritabanı, veritabanları arası sahiplik zincirinin kaynağı veya hedefi olabilir.
OFFVeritabanı, veritabanları arası sahiplik zincirine katılamaz.
Important
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, modelve tempdb sistem veritabanlarında ayarlanamaz.
Bu seçeneğin durumunu is_db_chaining_on katalog görünümündeki sütunu inceleyerek belirleyebilirsiniz.
TRUSTWORTHY { ON | KAPALI }
ONKimliğ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.
OFFKimliğe bürünme bağlamındaki veritabanı modülleri, veritabanının dışındaki kaynaklara erişemez.
TRUSTWORTHY, veritabanı her eklendiğinde olarak ayarlanır
OFF.
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.
Bu seçeneğin durumunu is_trustworthy_on katalog görünümündeki sütunu inceleyerek belirleyebilirsiniz.
DEFAULT_FULLTEXT_LANGUAGE
Uygulanır: SQL Server (SQL Server 2012 (11.x) ile başlayarak)
Tam metin dizinli sütunlar için varsayılan dil değerini belirtir.
Important
Bu seçenek yalnızca CONTAINMENT PARTIAL olarak ayarlandığında izin verir. CONTAINMENT NONE olarak ayarlanırsa hatalar oluşur.
DEFAULT_LANGUAGE
Uygulanır: 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 isimleri ve takma adları 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
Uygulanır: 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
Uygulanır: 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
Uygulanır: 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 ::=
Uygulanır: SQL Server (SQL Server 2012 (11.x) ile başlayarak)
FileTable'ların ayarlarını denetler.
NON_TRANSACTED_ACCESS = { KAPALI | READ_ONLY | FULL }
OFFFileTable verilerine işlem dışı erişim devre dışı bırakıldı.
READ_ONLYBu veritabanındaki FileTable'lardaki FILESTREAM verileri işlem dışı işlemler tarafından okunabilir.
FULLFileTable'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 ::=
Şunlar için geçerlidir: SQL Server
bkz. ALTER DATABASE SET HADR
< > mixed_page_allocation_option ::=
Uygulanır: SQL Server (SQL Server 2016 (13.x)'dan 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 }
OFFVeritabanı her zaman tekdüzen kapsamları kullanarak ilk sayfalar oluşturur. OFF varsayılan değerdir.
ONVeritabanı, karma kapsamları kullanarak ilk sayfalar oluşturabilir.
Bu ayar, her zaman KAPALI olduğu tempdb dışında tüm sistem veritabanları için her zaman AÇıK olur. Sistem veritabanları için ayar değiştirilemez.
< > 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 }
SIMPLESorgular, veritabanının varsayılan davranışına göre parametreleştirilir.
FORCEDSQL Server, veritabanındaki tüm sorguları parametreleştirir.
Bu seçeneğin mevcut ayarı, is_parameterization_forced katalog görünümündeki sütunu inceleyerek belirlenebilir.
< > query_store_options ::=
Uygulanır: SQL Server (SQL Server 2016 (13.x)'dan 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ı.
ONSorgu 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
QUERY_CAPTURE_MODE = CUSTOMözel yakalama ilkeleri kullanabilir. Özel yakalama politikası seçenekleriyle Sorgu Mağazasının nasıl etkinleştirileceğine dair örnekler için, bu makalenin ilerleyen bölümlerinde Örnekler bölümüne bakınız.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.
Note
Azure SQL Veritabanı'nda Sorgu Deposu devre dışı bırakılamaz.
ALTER DATABASE [database] SET QUERY_STORE = OFFyürütülürken'QUERY_STORE=OFF' is not supported in this version of SQL Server.uyarısını döndürür.TEMIZ [ HEPSİ ]
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 en fazla alanı tükendiyse, Sorgu Deposu işlem modunu olarak READ_ONLYdeğ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 büyük tip. Varsayılan değer 30'dur.
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 büyük tip. Varsayılan değer 900 (15 dakika).
MAX_STORAGE_SIZE_MB
Sorgu Deposu'na verilen alanı belirler.
MAX_STORAGE_SIZE_MB
bigint türündedir. SQL Server için varsayılan değer 100 MB'dir (SQL Server 2016 (13.x)'den SQL Server 2017'ye (14.x)). SQL Server 2019 (15.x) ile başlayarak varsayılan değer 1000 MB'dir.
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.
Important
İş yükünüzü yakalamanızın 10 GB'dan fazla disk alanına ihtiyacı olduğunu düşünüyorsanız, muhtemelen iş yükünüzü sorgu planlarını yeniden kullanmak için optimize etmelisiniz (örneğin zorunlu parametreleştirme kullanmak veya Sorgu Mağazası yapılandırmalarını ayarlamak).
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 büyük tip. Varsayılan değer 60'tır.
SIZE_BASED_CLEANUP_MODE { AUTO | KAPALI }
Toplam veri miktarı maksimum boyuta yaklaştığında temizlemenin otomatik olarak etkinleştirilip etkinleştirilmediğini denetler.
AUTOBoyut bazlı temizleme, disk boyutu 90 % MAX_STORAGE_SIZE_MB'ye ulaştığında otomatik olarak aktive olur. Boyut tabanlı temizleme, önce en düşük maliyetli ve en eski sorguları kaldırır. Yaklaşık 80% MAX_STORAGE_SIZE_MB noktasında durur. Bu değer varsayılan yapılandırma değeridir.
OFFBoyut tabanlı temizleme otomatik olarak etkinleştirilmez.
SIZE_BASED_CLEANUP_MODE nvarchar tipidir.
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 nvarchar tipidir.
Note
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.
ALLTüm sorguları yakalar. ALL , SQL Server (SQL Server 2016 (13.x)'den SQL Server 2017'ye (14.x)) kadar varsayılan yapılandırma değeridir.
AUTOYü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.
NONEYeni 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.
CUSTOMUygulanır: SQL Server (SQL Server 2019 (15.x) ile başlayarak)
QUERY_CAPTURE_POLICY seçenekler üzerinde kontrol sağlar. Ö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 tür int. Varsayılan değer 200'dür.
WAIT_STATS_CAPTURE_MODE { ON | KAPALI }
Uygulanır: SQL Server (SQL Server 2017 (14.x))) ile başlayarak)
Sorgu başına bekleme istatistiklerinin yakalanıp yakalanmayacağını denetler.
ONSorgu başına bekleme istatistikleri bilgileri yakalanır. Bu değer varsayılan yapılandırma değeridir.
OFFSorgu başına bekleme istatistikleri bilgileri yakalanmaz.
< > query_capture_policy_option_list ::=
Uygulanır: SQL Server (SQL Server 2019 (15.x) ile başlayarak)
Sorgu Mağazası yakalama politikası seçeneklerini kontrol eder. 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
Örneğin:
EXECUTION_COUNT = 30,
TOTAL_COMPILE_CPU_TIME_MS = 1000,
TOTAL_EXECUTION_CPU_TIME_MS = 100
bu seçenekleri QUERY_CAPTURE_MODE = CUSTOMile özelleştirebilirsiniz:
STALE_CAPTURE_POLICY_THRESHOLD = tam sayı { GÜNLER | SAATLER }
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 = tam sayı
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 tür int.
TOTAL_COMPILE_CPU_TIME_MS = tam sayı
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 int.
TOTAL_EXECUTION_CPU_TIME_MS = tam sayı
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 tür int.
< > recovery_option ::=
Şunlar için geçerlidir: SQL Server
Veritabanı kurtarma seçeneklerini ve disk G/Ç hata denetimini denetler.
FULLİş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 (SQL Server).
BULK_LOGGEDMedya 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 (SQL Server).
SIMPLEEn 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 (SQL Server).
Important
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 (SQL Server).
Bu seçeneğin durumunu recovery_model katalog görünümündeki ve recovery_model_desc sütunlarını inceleyerek belirleyebilirsiniz. Ayrıca Recovery fonksiyonunun özelliğini inceleyerek durumu belirleyebilirsiniz.
TORN_PAGE_DETECTION { ON | KAPALI }
ONTamamlanmamış sayfalar Veritabanı Altyapısı tarafından algılanabilir.
OFFTamamlanmamış sayfalar Veritabanı Altyapısı tarafından algılanamaz.
Important
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.
CHECKSUMSayfanı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_DETECTION8 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.
NONEVeritabanı 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 CHECKSUM.
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.
Note
SQL Server'ın önceki sürümlerinde, PAGE_VERIFY veritabanı seçeneği
tempdbveritabanı için NONE olarak ayarlanmıştır ve değiştirilemez. SQL Server 2008 (10.0.x) ile başlayarak,tempdbveritabanı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.tempdbveritabanı 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 Deyimleri - Bağımsız Değişkenler. 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:
Bu seçeneğin mevcut ayarı, page_verify_option katalog görünümündeki sütunu veya IsTornPageDetectionEnabledDATABASEPROPERTYEX fonksiyonunun özelliğini inceleyerek belirlenebilir.
< > remote_data_archive_option ::=
Uygulanır: SQL Server (SQL Server 2016 (13.x)'dan başlayarak)
Veritabanı için Stretch Database'i etkinleştirir veya devre dışı bırakır. Daha fazla bilgi için bkz. Stretch Database
Important
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
ONVeritabanı 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_ownerizin gerektirir. Bir veritabanı için Stretch Database'i etkinleştirmek içindb_ownerveCONTROL DATABASEizinleri gerektirir.SUNUCU = <server_name>
Azure sunucusunun adresini belirtir. Adın
.database.windows.netbö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
dbmanagerveyasysadminhesabı 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.
OFFVeritabanı 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 ::=
Şunlar 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. Mesaj teslimatı başlatılır ve is_broker_enabledsys.databases katalog görünümünde bayrak doğru 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.
Note
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. Mesaj teslimatı durdurulur ve is_broker_enabled katalog görünümünde bayrak 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 }
ONGö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.
OFFGö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 mevcut ayarı is_broker_priority_honored katalog görünümündeki sütunda bildirilmektedir.
< > snapshot_option ::=
İşlem yalıtım düzeyini hesaplar.
ALLOW_SNAPSHOT_ISOLATION { ON | KAPALI }
ONVeritabanı 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.
OFFVeritabanı 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 deyiminde ALTER DATABASE belirtilen durumdaysa, denetim çağırana hemen döndürülür.
ALTER DATABASE Deyim 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ü izolasyon 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, msdbve tempdb veritabanlarının ALLOW_SNAPSHOT_ISOLATION ayarlarını değiştirebilirsiniz.
tempdbayarını değiştirirseniz, Veritabanı Altyapısı örneği her durdurulduğunda ve yeniden başlatıldığında ayar korunur.
modelayarını değiştirirseniz, bu ayar tempdbdışı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 mevcut ayarı, snapshot_isolation_state katalog görünümündeki sütunu inceleyerek belirlenebilir.
READ_COMMITTED_SNAPSHOT { ON | KAPALI }
ONVeritabanı 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.
OFFVeritabanı 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, tempdbveya msdb sistem veritabanları için AÇIlamıyor.
modelayarını değiştirirseniz, bu ayar tempdbdışında oluşturulan tüm yeni veritabanları için varsayılan ayar olur.
Bu seçeneğin mevcut ayarı, is_read_committed_snapshot_on katalog görünümündeki sütunu inceleyerek belirlenebilir.
Warning
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 }
Uygulanır: SQL Server (SQL Server 2014 (12.x)'den başlayarak)
ONİş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.
OFFBellek 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 mevcut ayarı, is_memory_optimized_elevate_to_snapshot_on katalog görünümündeki sütunu inceleyerek belirlenebilir.
< > sql_option ::=
VERITABANı düzeyinde ANSI uyumluluk seçeneklerini denetler.
ANSI_NULL_DEFAULT { ON | KAPALI }
Null atanabilirliğin veya NOT NULLdeyimlerinde açıkça tanımlanmadığı CREATE TABLE sütun veya CLR kullanıcı tanımlı türlerin varsayılan değerini NULL veya ALTER TABLE değerini belirler. Kısıtlamalarla tanımlanan sütunlar, bu ayar ne olursa olsun kısıtlama kurallarına uyar.
ONTanımlanmamış bir sütunun varsayılan değeridir
NULL.OFFTanımlanmamış bir sütunun varsayılan değeridir
NOT NULL.
deyimi kullanılarak SET 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, varsayılan olarak oturumun bağlantı düzeyi SET deyimi ayarını ANSI_NULL_DEFAULTON 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 veritabanı seçeneğinin ANSI_NULL_DEFAULTON ayarlı olması, veritabanının varsayılan değerini NULL olarak değiştirir.
Bu seçeneğin durumunu is_ansi_null_default_on katalog görünümündeki sütunu inceleyerek belirleyebilirsiniz. Ayrıca IsAnsiNullDefault fonksiyonunun özelliğini inceleyerek durumu belirleyebilirsiniz.
ANSI_NULLS { ON | KAPALI }
ONNull değerle yapılan tüm karşılaştırmalar olarak
UNKNOWNdeğerlendirilir.OFFUnicode olmayan değerlerin null değerle karşılaştırılması, her iki değerin
NULLde olup olmadığını değerlendirirTRUE.
Important
SQL Server'ın ANSI_NULLS gelecekteki bir sürümünde her zaman olacaktır ON ve seçeneğini OFF açıkça 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.
deyimi kullanılarak SET ayarlanan bağlantı düzeyi ayarları için ANSI_NULLSvarsayılan veritabanı ayarını geçersiz kılar. ODBC ve OLE DB istemcileri, varsayılan olarak oturumun bağlantı düzeyi SET deyimi ayarını ANSI_NULLSON 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.
Important
SET ANSI_NULLS ayrıca hesaplanan sütunlarda veya dizinlenmiş görünümlerde dizin oluştururken veya dizinlerde değişiklik yaparken olarak ayarlanmalıdır ON .
Bu seçeneğin durumunu is_ansi_nulls_on katalog görünümündeki sütunu inceleyerek belirleyebilirsiniz. Ayrıca IsAnsiNullsEnabled fonksiyonunun özelliğini inceleyerek durumu belirleyebilirsiniz.
ANSI_PADDING { ON | KAPALI }
ONDizeler dönüştürmeden önce aynı uzunlukta doldurulur. Ayrıca varchar veya nvarchar veri tipine eklemeden önce aynı uzunluğa dolgu yaptım.
OFFKarakter değerlerinde takip eden boşlukları varchar veya nvarchar sütunlarına ekler. Ayrıca, varbinar sütunlara eklenen ikili değerlerde de geride duran sıfırlar bırakılı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.
Important
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.
null izin veren char(n) ve ikili (n) 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. Null izin vermeyen char(n) ve binary(n) sütunları her zaman sütunun uzunluğuna doldurulur.
deyimi kullanılarak SET 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.
Bu seçeneğin durumunu is_ansi_padding_on katalog görünümündeki sütunu inceleyerek belirleyebilirsiniz. Ayrıca IsAnsiPaddingEnabled fonksiyonunun özelliğini inceleyerek durumu belirleyebilirsiniz.
ANSI_WARNINGS { ON | KAPALI }
ONSı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.
OFFSıfıra bölme gibi koşullar oluştuğunda hiçbir uyarı tetiklenmez ve null değerler döndürülür.
Important
SET ANSI_WARNINGS hesaplanan sütunlarda veya dizinlenmiş görünümlerde dizin oluşturduğunuzda veya dizinlerde değişiklik yaptığınızda olarak ayarlanmalıdır ON .
deyimi kullanılarak SET ayarlanan bağlantı düzeyi ayarları için ANSI_WARNINGSvarsayılan veritabanı ayarını geçersiz kılar. ODBC ve OLE DB istemcileri, varsayılan olarak oturumun bağlantı düzeyi SET deyimi ayarını ANSI_WARNINGSON 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.
Bu seçeneğin durumunu is_ansi_warnings_on katalog görünümündeki sütunu inceleyerek belirleyebilirsiniz. Ayrıca IsAnsiWarningsEnabled fonksiyonunun özelliğini inceleyerek durumu belirleyebilirsiniz.
ARITHABORT { ON | KAPALI }
ONSorgu yürütme sırasında taşma veya sıfıra bölme hatası oluştuğunda sorgu sonlandırılır.
OFFBu 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.
Important
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.
Bu seçeneğin durumunu is_arithabort_on katalog görünümündeki sütunu inceleyerek belirleyebilirsiniz. Ayrıca IsArithmeticAbortEnabled fonksiyonunun özelliğini inceleyerek durumu belirleyebilirsiniz.
COMPATIBILITY_LEVEL = { 170 | 160 | 150 | 140 | 130 | 120 | 110 | 100 }
Daha fazla bilgi için bkz. alter database uyumluluk düzeyi
CONCAT_NULL_YIELDS_NULL { ON | KAPALI }
ONBirleştirme işleminin sonucu, işlenenlerden biri olduğunda elde edilir
NULLNULL. Örneğin, "This is" ve NULL karakter dizesini birleştirmek "This is" değeri yerine NULL değerini döndürür.OFFNull değer boş karakter dizesi olarak kabul edilir.
Important
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.
deyimi kullanılarak SET 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.
Bu seçeneğin durumunu is_concat_null_yields_null_on katalog görünümündeki sütunu inceleyerek belirleyebilirsiniz. Ayrıca IsNullConcat fonksiyonunun özelliğini inceleyerek durumu belirleyebilirsiniz.
NUMERIC_ROUNDABORT { ON | KAPALI }
ONİfadede duyarlık kaybı oluştuğunda bir hata oluşturulur.
OFFDuyarlık kaybı bir hata iletisi oluşturmaz ve sonuç, sonucun depolandığı sütunun veya değişkenin duyarlığına yuvarlanr.
Important
NUMERIC_ROUNDABORThesaplanan sütunlarda veya dizinlenmiş görünümlerde dizin oluşturduğunuzda veya dizinlerde değişiklik yaptığınızda olarak ayarlanmalıdırOFF.
Bu seçeneğin durumunu is_numeric_roundabort_on katalog görünümündeki sütunda belirleyebilirsiniz. Ayrıca IsNumericRoundAbortEnabled fonksiyonunun özelliğini inceleyerek durumu belirleyebilirsiniz.
QUOTED_IDENTIFIER { ON | KAPALI }
ONSı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.OFFTanı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 . Veritabanı tanımlayıcıları.
Tablo oluşturulduğunda, QUOTED_IDENTIFIER seçenek her zaman tablonun meta verilerinde ON olarak depolanır. Seçenek, tablo oluşturulduğunda olarak ayarlansa OFF bile depolanır.
deyimi kullanılarak SET ayarlanan bağlantı düzeyi ayarları için QUOTED_IDENTIFIERvarsayılan veritabanı ayarını geçersiz kılar. ODBC ve OLE DB istemcileri, varsayılan olarak için ONbir bağlantı düzeyi SET deyimi ayarı QUOTED_IDENTIFIER 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.
Bu seçeneğin durumunu is_quoted_identifier_on katalog görünümündeki sütunu inceleyerek belirleyebilirsiniz. Ayrıca IsQuotedIdentifiersEnabled fonksiyonunun özelliğini inceleyerek durumu belirleyebilirsiniz.
RECURSIVE_TRIGGERS { ON | KAPALI }
ONAFTER tetikleyicilerinin özyinelemeli olarak tetiklemesine izin verilir.
OFFBu seçeneğin durumunu
is_recursive_triggers_onkatalog görünümündeki sütunu inceleyerek belirleyebilirsiniz. AyrıcaIsRecursiveTriggersEnabledfonksiyonunun özelliğini inceleyerek durumu belirleyebilirsiniz.
Note
olarak ayarlandığında OFFyalnızca doğrudan özyineleme engellenirRECURSIVE_TRIGGERS. Dolaylı özyineleme özelliğini devre dışı bırakmak için iç içe tetikleyiciler sunucusu seçeneğini de 0 olarak ayarlamanız gerekir.
Bu seçeneğin durumunu is_recursive_triggers_on katalog görünümündeki sütunu veya IsRecursiveTriggersEnabled fonksiyonunun özelliğini inceleyerek belirleyebilirsiniz.
< > suspend_for_snapshot_backup ::=
Şunlar 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 | KAPALI }
Veritabanlarını askıya alır veya askıya alır. Varsayılan KAPALI.
MOD = COPY_ONLY
Optional. COPY_ONLY modunu kullanır.
< > target_recovery_time_option ::=
Uygulanır: 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 (13.x) ile itibaren, yeni veritabanları için varsayılan değer 1 dakikadır, bu da veritabanının dolaylı kontrol 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 { SANIYE | DAKIKALAR }
target_recovery_time
Kilitlenme durumunda belirtilen veritabanının kurtarılması için gereken süre üst sınırını belirtir. target_recovery_timetür int.
SECONDStarget_recovery_time saniye sayısı olarak ifade edildiğini gösterir.
MINUTEStarget_recovery_time dakika sayısı olarak ifade edildiğini gösterir.
Dolaylı denetim noktaları hakkında daha fazla bilgi için bkz . Veritabanı denetim noktaları (SQL Server).
OPTIMIZED_LOCKING { ON | KAPALI }
Uygulanır: SQL Server (SQL Server 2025 (17.x)) ile başlayarak)
Optimize edilmiş kilitleme imkanı sağlar. İyileştirilmiş kilitleme varsayılan olarak olarak ayarlanır OFF .
veya OFFayarlamak OPTIMIZED_LOCKINGON için, komutunu çalıştıran ALTER DATABASE bağlantı dışında veritabanına etkin bir bağlantı olmamalıdır. Ancak veritabanının tek kullanıcı modunda olması gerekmez. Veritabanı ONLINEolmadığı sürece bu seçeneğin durumunu değiştiremezsiniz.
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, ALTER DATABASE veritabanında herhangi bir kilit varsa deyimi süresiz olarak bekler. Yalnızca bir sonlandırma yan tümcesi belirtilebilir ve yan tümceleri izler SET .
Note
Tüm veritabanı seçenekleri yan tümcesini kullanmaz WITH <termination> . Daha fazla bilgi için Ayar seçenekleri altındaki tabloya bakın.
ROLLBACK AFTER integer [SECONDS]|ROLLBACK IMMEDIATEBelirtilen 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çenekleri için güncel ayarları almak için sys.databases katalog görünümünü veya DATABASEPROPERTYEX'i kullanın
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 yan tümcesini WITH <termination> 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.
| Opsiyon kategorisi | Diğer seçeneklerle belirtilebilir | Yan tümcesini WITH <termination> kullanabilir |
|---|---|---|
<db_state_option> |
Yes | Yes |
<db_user_access_option> |
Yes | Yes |
<db_update_option> |
Yes | Yes |
<delayed_durability_option> |
Yes | Yes |
<external_access_option> |
Yes | No |
<cursor_option> |
Yes | No |
<auto_option> |
Yes | No |
<sql_option> |
Yes | No |
<recovery_option> |
Yes | No |
<target_recovery_time_option> |
No | Yes |
<database_mirroring_option> |
No | No |
ALLOW_SNAPSHOT_ISOLATION |
No | No |
READ_COMMITTED_SNAPSHOT |
No | Yes |
MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT |
Yes | Yes |
<service_broker_option> |
Yes | No |
DATE_CORRELATION_OPTIMIZATION |
Yes | Yes |
<parameterization_option> |
Yes | Yes |
<change_tracking_option> |
Yes | Yes |
<db_encryption_option> |
Yes | No |
<accelerated_database_recovery> |
No | Yes |
<optimized_locking> |
No | Yes |
SQL Server örneğinin plan önbelleği, aşağıdaki seçeneklerden biri ayarlanarak temizlenir:
OFFLINE
ONLINE
MODIFY_NAME
COLLATE
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.
Examples
A. Veritabanında seçenekleri ayarlama
Aşağıdaki örnek, AdventureWorks2025 ö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 READ_ONLY durumunu olarak değiştirmek veya READ_WRITE 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 AdventureWorks2025 veritabanının durumunu READ_ONLY olarak ayarlar ve veritabanına erişimi tüm kullanıcılara döndürür.
Note
Bu örnek, ilk WITH ROLLBACK IMMEDIATE deyiminde ALTER DATABASE sonlandırma seçeneğini kullanır. Tamamlanmamış tüm işlemler geri alınır ve AdventureWorks2025 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, AdventureWorks2025 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.
| name | snapshot_isolation_state | description |
|---|---|---|
[database_name] |
1 | ON |
D. Değişiklik izlemeyi etkinleştirme, değiştirme veya devre dışı bırakma
Aşağıdaki örnek, AdventureWorks2025 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, AdventureWorks2025 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
Uygulanır: SQL Server (SQL Server 2016 (13.x)'dan 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
Geçerlidir: SQL Server (SQL Server 2017 (14.x)'den 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
Uygulanır: 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
- Statistics
- DATABASEPROPERTYEX (Transact-SQL)
- sys.databases
- sys.data_spaces
- sys.database_automatic_tuning_options
- sys.database_automatic_tuning_mode
- ALTER DATABASE (Transact-SQL) uyumluluk düzeyi
- ALTER DATABASE (Transact-SQL) Veritabanı Yansıtma
- ALTER DATABASE (Transact-SQL) SET HADR
- VERİTABANI OLUŞTUR
- Değişiklik İzlemeyi Etkinleştirme ve Devre Dışı Bırakma (SQL Server)
- DROP DATABASE (Transact-SQL)
- İŞLEM YALıTıM DÜZEYINI AYARLA (Transact-SQL)
- sp_configure
- Sorgu Deposu ile iş yüklerini izlemeye yönelik en iyi yöntemler
* Azure SQL Veritabanı *
Azure Synapse'i
Analiz
SQL Database
Uyumluluk düzeyleri SET seçeneklerdir ancak ALTER DATABASE uyumluluk düzeyiaçıklanmıştır.
Note
Birçok veritabanı kümesi seçeneği, mevcut oturum için SET Statement'ları kullanılarak yapılandırılabilir ve uygulamalar bağlandıklarında genellikle 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.
Syntax
ALTER DATABASE { database_name | CURRENT }
SET
{
<option_spec> [ ,...n ] [ WITH <termination> ]
}
;
{ [ FOR SECONDARY ] SET <set_options> }
<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>
| <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 = { 170 | 160 | 150 | 140 | 130 | 120 | 110 | 100 }
| CONCAT_NULL_YIELDS_NULL { ON | OFF }
| NUMERIC_ROUNDABORT { ON | OFF }
| QUOTED_IDENTIFIER { ON | OFF }
| RECURSIVE_TRIGGERS { ON | OFF }
}
<termination>::=
{
ROLLBACK AFTER integer [ SECONDS ]
| ROLLBACK IMMEDIATE
| NO_WAIT
}
<temporal_history_retention>::=TEMPORAL_HISTORY_RETENTION { ON | OFF }
Arguments
database_name
Değiştirilecek veritabanının adı.
CURRENTCURRENTeylemi geçerli veritabanında çalıştırır.CURRENTtüm bağlamlardaki tüm seçenekler için desteklenmez.CURRENTbaşarısız olursa veritabanı adını belirtin.
< > auto_option ::=
Otomatik seçenekleri denetler.
İKINCIL IÇIN
İkincil çoğaltmaların ayarlarını belirtir. Tüm ikincil çoğaltmalar aynı değerlere sahip olmalıdır.
FOR SECONDARY
ALTER DATABASE SCOPED CONFIGURATION (Transact-SQL) için benzer.
Yalnızca Sorgu Deposu (QUERY_STORE) ve Otomatik Ayarlama (AUTOMATIC_TUNING) ile kullanım için.
SQL Server Management Studio (SSMS) sürüm 21'inden önce söz FOR SECONDARY dizimi geçerli ancak IntelliSense tarafından tanınmıyor.
AUTO_CREATE_STATISTICS { ON | KAPALI }
ONSorgu İ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.
OFFSorgu İ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 seçeneğin durumunu is_auto_create_stats_on katalog görünümündeki sütunu inceleyerek belirleyebilirsiniz. Ayrıca IsAutoCreateStatistics fonksiyonunun özelliğini inceleyerek durumu belirleyebilirsiniz.
Daha fazla bilgi için İstatistik bölümündeki "İstatistik seçenekleri" bölümüne bakınız.
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 }
ONVeritabanı 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.
OFFKullanılmayan alan için düzenli aralıklarla yapılan denetimler sırasında veritabanı dosyaları otomatik olarak küçülmez.
Bu seçeneğin durumunu is_auto_shrink_on katalog görünümündeki sütunu inceleyerek belirleyebilirsiniz. Ayrıca IsAutoShrink fonksiyonunun özelliğini inceleyerek durumu belirleyebilirsiniz.
Note
AUTO_SHRINK seçeneği, kapsanan bir veritabanında kullanılamaz.
AUTO_UPDATE_STATISTICS { ON | KAPALI }
ONSorgu İ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.
OFFSorgu İ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.
Bu seçeneğin durumunu
is_auto_update_stats_onkatalog görünümündeki sütunu inceleyerek belirleyebilirsiniz. AyrıcaIsAutoUpdateStatisticsfonksiyonunun özelliğini inceleyerek durumu belirleyebilirsiniz.Daha fazla bilgi için İstatistik bölümündeki "İstatistik seçenekleri" bölümüne bakınız.
AUTO_UPDATE_STATISTICS_ASYNC { ON | KAPALI }
ONAUTO_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.
OFFAUTO_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.
Bu seçeneğin durumunu is_auto_update_stats_async_on katalog görünümündeki sütunu inceleyerek belirleyebilirsiniz.
Senkron veya asenkron istatistik güncellemelerinin ne zaman kullanılacağını açıklayan daha fazla bilgi için İstatistikler bölümündeki "İstatistik seçenekleri" bölümüne bakınız.
< > automatic_tuning_option ::=
Otomatik ayar için otomatik seçenekleri kontrol eder. Aşağıdaki ayarların seçeneklerini Azure portalında veya T-SQL aracılığıyla sys.database_automatic_tuning_optionsgörünümünde görüntüleyebilirsiniz.
AUTOMATIC_TUNING = { AUTO | DEVRAL | ÖZEL }
AUTOOtomatik 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.
INHERITINHERIT 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.
CUSTOMCUSTOM 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 }
CREATE_INDEX akort otomatik indeks yönetimi seç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_optionsgörünümünde görüntüleyebilirsiniz.
DEFAULTVarsayı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.
ONEtkinleş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 bir dizin olarak işaretlenir.
OFFVeritabanında otomatik olarak eksik dizinler oluşturmaz.
DROP_INDEX = { DEFAULT | ON | KAPALI }
DROP_INDEX akort otomatik indeks yönetimi seç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_optionsgörünümünde görüntüleyebilirsiniz.
DEFAULTVarsayı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.
ONYinelenen veya artık yararlı olmayan dizinleri otomatik olarak performans iş yüküne bırakır.
OFFEksik dizinleri veritabanında otomatik olarak bırakmaz.
FORCE_LAST_GOOD_PLAN = { DEFAULT | ON | KAPALI }
FORCE_LAST_GOOD_PLAN ayar otomatik plan düzeltme seç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_optionsgörünümünde görüntüleyebilirsiniz.
DEFAULTVarsayı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.
ONVeritabanı 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. Query Store etkin değilse veya Okuma-Yazma modunda değilse bu ifade başarısız olur.
OFFVeritabanı Motoru, sys.dm_db_tuning_recommendations görünümdeki sorgu planı değişikliklerinden kaynaklanabilecek olası sorgu performansı gerilemelerini 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 ilerleyen bölümlerinde Örnekler bölümüne bakınız.
ONVeritabanı 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 }
ON
Değişiklik izleme bilgileri belirtilen saklama süresinden sonra otomatik olarak kaldırılır.
OFF
Değişiklik izleme verileri veritabanından kaldırılmaz.
CHANGE_RETENTION = retention_period { GÜNLER | SAATLER | DAKIKALAR }
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 , tutma süresinin sayısal bileşenini belirten bir tam sayıdır.
Varsayılan tutma süresi 2 gündür. En düşük saklama süresi 1 dakikadır. Varsayılan tutma türü DAYS'tir.
OFFVeritabanı 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 }
ONbir işlemi işlediğiniz veya geri aldığınızda açılan tüm imleçler kapatılır.
OFFbir 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.
deyimi kullanılarak SET 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.
Bu seçeneğin durumunu is_cursor_close_on_commit_on katalog görünümündeki sütunu veya IsCloseCursorsOnCommitEnabled fonksiyonunun özelliğini inceleyerek 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.
Veritabanının şifreleme durumunu sys.dm_database_encryption_keys dinamik yönetim görünümünü kullanarak görebilirsiniz.
< > db_update_option ::=
Veritabanında güncelleştirmelere izin verilip verilmeyeceğini denetler.
READ_ONLYKullanıcılar veritabanındaki verileri okuyabilir ancak değiştiremez.
Note
Sorgu performansını geliştirmek için veritabanını olarak ayarlamadan
READ_ONLYönce istatistikleri güncelleştirin. Veritabanı olarak ayarlandıktanREAD_ONLYsonra ek istatistikler gerekiyorsa, Veritabanı Altyapısı içindetempdbistatistikler oluşturur. Sadece okunabilir bir veritabanı için istatistik hakkında daha fazla bilgi için İstatistikler sayfasına bakınız.READ_WRITEVeritabanı 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.
Note
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_USERYalnızca
db_ownersabit veritabanı rolünün üyelerine vedbcreatorvesysadminsabit 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, deyiminin sonlandırma yan tümcesi tarafından belirtilen zaman çerçevesi içindeALTER DATABASEbağlantısı kesilir. Veritabanı duruma geçtiktenRESTRICTED_USERsonra, 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.masterveritabanı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_USERVeritabanına bağlanmak için uygun izinlere sahip tüm kullanıcılara izin verilir. Bu seçeneğin durumunu
user_accesskatalog görünümündeki sütunu veyaUserAccessfonksiyonunun özelliğini inceleyerek belirleyebilirsiniz. Azure SQL Veritabanı'nda, kullanıcı veritabanının içinden yürütülmelidir.masterveritabanı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.
DISABLEDSET DISABLEDizleyen 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.ALLOWEDSET ALLOWEDizleyen 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.FORCEDSET FORCEDizleyen 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 }
SIMPLESorgular, veritabanının varsayılan davranışına göre parametreleştirilir.
FORCEDSQL Server, veritabanındaki tüm sorguları parametreleştirir.
Bu seçeneğin mevcut ayarı, is_parameterization_forced katalog görünümündeki sütunu inceleyerek belirlenebilir.
< > query_store_options ::=
ON|OFF|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.
ONSorgu Deposu'na olanak tanır. ON varsayılan değerdir.
OFFSorgu Deposu'nı devre dışı bırakır.
Note
Sorgu Deposu, Azure SQL Veritabanı tek veritabanında ve Elastik Havuz'da devre dışı bırakılamaz.
ALTER DATABASE [database] SET QUERY_STORE = OFFyürütülürken'QUERY_STORE=OFF' is not supported in this version of SQL Server.uyarısını döndürür.CLEARSorgu Deposu'nun içeriğini kaldırın.
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 en fazla alanı tükendiyse, Sorgu Deposu işlem modunu olarak READ_ONLYdeğ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 büyük tip. Varsayılan değer 30'dur. SQL Database Basic sürümünde varsayılan süre 7 gündür.
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 büyük tip. Varsayılan değer 900 (15 dakika).
MAX_STORAGE_SIZE_MB
Sorgu Deposu'na ayrılan alanı belirler.
MAX_STORAGE_SIZE_MB
bigint türündedir.
Note
Azure SQL Veritabanı'nda varsayılan MAX_STORAGE_SIZE_MB değer aşağıdaki gibi hizmet katmanına göre farklılık gösterir: Premium, İş Açısından Kritik ve Hiper Ölçek: 1.024 MB; Standart ve Genel Amaçlı: 100 MB; Temel: 10 MB.
İzin verilen MAX_STORAGE_SIZE_MB en büyük değer 10.240 MB'tır.
Note
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.
Important
İş yükünüzü yakalamanızın 10 GB'dan fazla disk alanına ihtiyacı olduğunu düşünüyorsanız, muhtemelen iş yükünüzü sorgu planlarını yeniden kullanmak için optimize etmelisiniz (örneğin zorunlu parametreleştirme kullanmak veya Sorgu Mağazası yapılandırmalarını ayarlamak).
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 büyük tip. Varsayılan değer 60'tır.
SIZE_BASED_CLEANUP_MODE = { AUTO | KAPALI }
Toplam veri miktarı maksimum boyuta yaklaştığında temizlemenin otomatik olarak etkinleştirilip etkinleştirilmediğini denetler.
OFFBoyut tabanlı temizleme otomatik olarak etkinleştirilmez.
AUTOBoyut tabanlı temizlik, diskteki boyut 90% max_storage_size_mb'ye ulaştığında otomatik olarak aktive olur. Boyut tabanlı temizleme, önce en düşük maliyetli ve en eski sorguları kaldırır. Yaklaşık 80% max_storage_size_mb noktasında durur. Bu varsayılan yapılandırma değeridir.
SIZE_BASED_CLEANUP_MODE nvarchar tipidir.
QUERY_CAPTURE_MODE { ALL | OTOMATİk | ÖZEL | NONE }
Şu anda etkin olan sorgu yakalama modunu atar. Her mod belirli sorgu yakalama ilkelerini tanımlar.
Note
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.
ALLTüm sorguları yakalar.
AUTOYü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.
NONEYeni 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.
CUSTOMQUERY_CAPTURE_POLICY seçenekleri üzerinde denetime izin verir.
QUERY_CAPTURE_MODE nvarchar tipidir.
MAX_PLANS_PER_QUERY
Her sorgu için tutulan plan sayısı üst sınırını tanımlar. MAX_PLANS_PER_QUERY tür int. Varsayılan değer 200'dür.
WAIT_STATS_CAPTURE_MODE { ON | KAPALI }
Sorgu başına bekleme istatistiklerinin yakalanıp yakalanmayacağını denetler.
ONSorgu başına bekleme istatistikleri bilgileri yakalanır. Bu değer varsayılan yapılandırma değeridir.
OFFSorgu 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 = tam sayı { GÜNLER | SAATLER }
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. NumaraINT'dir.
EXECUTION_COUNT = tam sayı
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 tür int.
TOTAL_COMPILE_CPU_TIME_MS = tam sayı
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 int.
TOTAL_EXECUTION_CPU_TIME_MS = tam sayı
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 tür int.
< > snapshot_option ::=
İşlem yalıtım düzeyini belirler.
ALLOW_SNAPSHOT_ISOLATION { ON | KAPALI }
ONVeritabanı 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 ON olarak ayarlanmalıdır veya işlemdeki her deyimin from yan tümcesindeki herhangi bir başvuruda kilit ipuçlarını olduğu
ALLOW_SNAPSHOT_ISOLATIONOFFveritabanındaki bir tabloya kilitleme ipuçlarını kullanması gerekir.OFFVeritabanı 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), ALTER DATABASE veritabanındaki tüm mevcut işlemler işlenene kadar denetimi çağırana döndürmez. Veritabanı zaten deyiminde ALTER DATABASE belirtilen durumdaysa, denetim çağırana hemen döndürülür.
ALTER DATABASE Deyim 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ü izolasyon işlemlerinin durumunu gösterir.
snapshot_isolation_state_desc = IN_TRANSITION_TO_ONise, 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 mevcut ayarı, snapshot_isolation_state katalog görünümündeki sütunu inceleyerek belirlenebilir.
READ_COMMITTED_SNAPSHOT { ON | KAPALI }
ONVeritabanı 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.
OFFVeritabanı 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, tempdbveya msdb sistem veritabanları için AÇIlamıyor.
modelayarını değiştirirseniz, bu ayar tempdbdışında oluşturulan tüm yeni veritabanları için varsayılan ayar olur.
Bu seçeneğin mevcut ayarı, is_read_committed_snapshot_on katalog görünümündeki sütunu inceleyerek belirlenebilir.
Warning
Bir tablo oluşturulduğunda DURABILITY = SCHEMA_ONLYve READ_COMMITTED_SNAPSHOT daha sonra kullanılarak ALTER DATABASEdeğiştirildiğinde, tablodaki veri kaybolur.
Tip
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 }
ONİş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.
OFFBellek 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 mevcut ayarı, is_memory_optimized_elevate_to_snapshot_on katalog görünümündeki sütunu inceleyerek belirlenebilir.
< > sql_option ::=
VERITABANı düzeyinde ANSI uyumluluk seçeneklerini denetler.
ANSI_NULL_DEFAULT { ON | KAPALI }
Null atanabilirliğin veya deyimlerinde açıkça tanımlanmadığı CREATE TABLE bir sütun veya CLR kullanıcı tanımlı türünün varsayılan değerini NULLNOT NULLveya ALTER TABLE değerini belirler. Kısıtlamalarla tanımlanan sütunlar, bu ayar ne olursa olsun kısıtlama kurallarına uyar.
ONVarsayılan değer
NULLdeğeridir.OFFVarsayılan değer
NOT NULLdeğeridir.
deyimi kullanılarak SET 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, varsayılan olarak oturumun bağlantı düzeyi SET deyimi ayarını ANSI_NULL_DEFAULTON 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, veritabanı seçeneğinin ANSI_NULL_DEFAULTON ayarlı olarak ayarlanması, veritabanının varsayılan ayarını olarak NULLdeğiştirir.
Bu seçeneğin durumunu is_ansi_null_default_on katalog görünümündeki sütunu inceleyerek belirleyebilirsiniz. Ayrıca IsAnsiNullDefault fonksiyonunun özelliğini inceleyerek durumu belirleyebilirsiniz.
ANSI_NULLS { ON | KAPALI }
ONNull değerle yapılan tüm karşılaştırmalar olarak
UNKNOWNdeğerlendirilir.OFFUnicode olmayan değerlerin null değerle karşılaştırılması, her iki değerin
NULLde olup olmadığını değerlendirirTRUE.
Important
SQL Server'ın ANSI_NULLS gelecekteki bir sürümünde her zaman AÇIK olacaktır ve seçeneğini OFF açıkça 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.
deyimi kullanılarak SET ayarlanan bağlantı düzeyi ayarları için ANSI_NULLSvarsayılan veritabanı ayarını geçersiz kılar. ODBC ve OLE DB istemcileri, varsayılan olarak oturumun bağlantı düzeyi SET deyimi ayarını ANSI_NULLSON 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.
Note
SET ANSI_NULLS ayrıca hesaplanan sütunlarda veya dizinlenmiş görünümlerde dizin oluştururken veya dizinlerde değişiklik yaparken olarak ayarlanmalıdır ON .
Bu seçeneğin durumunu is_ansi_nulls_on katalog görünümündeki sütunu inceleyerek belirleyebilirsiniz. Ayrıca IsAnsiNullsEnabled fonksiyonunun özelliğini inceleyerek durumu belirleyebilirsiniz.
ANSI_PADDING { ON | KAPALI }
ONDizeler dönüştürmeden önce aynı uzunlukta doldurulur. Ayrıca varchar veya nvarchar veri tipine eklemeden önce aynı uzunluğa dolgu yaptım.
OFFKarakter değerlerinde takip eden boşlukları varchar veya nvarchar sütunlarına ekler. Ayrıca, varbinar sütunlara eklenen ikili değerlerde de geride duran sıfırlar bırakılı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.
Important
SQL Server'ın ANSI_PADDING gelecekteki bir sürümünde her zaman AÇIK olacaktır ve seçeneğini OFF açıkça 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. Her zaman olarak ONayarlamanızı ANSI_PADDING öneririz.
ANSI_PADDING hesaplanan sütunlarda veya dizinlenmiş görünümlerde dizin oluştururken veya işlerken ON olmalıdır.
null izin veren char(n) ve ikili (n) sütunları, ANSI_PADDING ON olarak ayarlandığında sütun uzunluğuna doldurulur. sondaki boşluklar ve sıfırlar olduğunda ANSI_PADDINGOFFkırpılır.
Null izin vermeyen char(n) ve binary(n) sütunları her zaman sütunun uzunluğuna doldurulur.
deyimi kullanılarak SET ayarlanan bağlantı düzeyi ayarları için ANSI_PADDINGvarsayılan veritabanı düzeyi ayarını geçersiz kılar. ODBC ve OLE DB istemcileri, varsayılan olarak oturumun bağlantı düzeyi SET deyimi ayarını ANSI_PADDINGON 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.
Bu seçeneğin durumunu is_ansi_padding_on katalog görünümündeki sütunu inceleyerek belirleyebilirsiniz. Ayrıca IsAnsiPaddingEnabled fonksiyonunun özelliğini inceleyerek durumu belirleyebilirsiniz.
ANSI_WARNINGS { ON | KAPALI }
ONSı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.
OFFSıfıra bölme gibi koşullar oluştuğunda hiçbir uyarı tetiklenmez ve null değerler döndürülür.
Note
SET ANSI_WARNINGS hesaplanan sütunlarda veya dizinlenmiş görünümlerde dizin oluşturduğunuzda veya dizinlerde değişiklik yaptığınızda olarak ayarlanmalıdır ON .
deyimi kullanılarak SET ayarlanan bağlantı düzeyi ayarları için ANSI_WARNINGSvarsayılan veritabanı ayarını geçersiz kılar. ODBC ve OLE DB istemcileri, varsayılan olarak oturumun bağlantı düzeyi SET deyimi ayarını ANSI_WARNINGSON 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.
Bu seçeneğin durumunu is_ansi_warnings_on katalog görünümündeki sütunu inceleyerek belirleyebilirsiniz. Ayrıca IsAnsiWarningsEnabled fonksiyonunun özelliğini inceleyerek durumu belirleyebilirsiniz.
ARITHABORT { ON | KAPALI }
ONSorgu yürütme sırasında taşma veya sıfıra bölme hatası oluştuğunda sorgu sonlandırılır.
OFFBu 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.
Note
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.
Bu seçeneğin durumunu is_arithabort_on katalog görünümündeki sütunu inceleyerek belirleyebilirsiniz. Ayrıca IsArithmeticAbortEnabled fonksiyonunun özelliğini inceleyerek durumu belirleyebilirsiniz.
COMPATIBILITY_LEVEL = { 170 | 160 | 150 | 140 | 130 | 120 | 110 | 100 }
Daha fazla bilgi için bkz. alter database uyumluluk düzeyi
CONCAT_NULL_YIELDS_NULL { ON | KAPALI }
ONBirleştirme işleminin sonucu, işlenenlerden biri olduğunda elde edilir
NULLNULL. Örneğin, "This is" ve NULL karakter dizesini birleştirmek"This is" değeri yerine NULL değerine neden olur.OFFNull değer boş karakter dizesi olarak kabul edilir.
Note
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.
deyimi kullanılarak SET 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.
Bu seçeneğin durumunu is_concat_null_yields_null_on katalog görünümündeki sütunu inceleyerek belirleyebilirsiniz. Ayrıca IsNullConcat fonksiyonunun özelliğini inceleyerek durumu belirleyebilirsiniz.
NUMERIC_ROUNDABORT { ON | KAPALI }
ONİfadede duyarlık kaybı oluştuğunda bir hata oluşturulur.
OFFDuyarlık kaybı bir hata iletisi oluşturmaz ve sonuç, sonucun depolandığı sütunun veya değişkenin duyarlığına yuvarlanr.
Important
NUMERIC_ROUNDABORT hesaplanan sütunlarda veya dizinlenmiş görünümlerde dizin oluşturduğunuzda veya dizinlerde değişiklik yaptığınızda olarak ayarlanmalıdır OFF .
Bu seçeneğin durumunu is_numeric_roundabort_on katalog görünümündeki sütunda belirleyebilirsiniz. Ayrıca IsNumericRoundAbortEnabled fonksiyonunun özelliğini inceleyerek durumu belirleyebilirsiniz.
QUOTED_IDENTIFIER { ON | KAPALI }
ONSı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.OFFTanı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 . Veritabanı tanımlayıcıları.
Tablo oluşturulduğunda, QUOTED_IDENTIFIER seçenek her zaman tablonun meta verilerinde ON olarak depolanır. Seçenek, tablo oluşturulduğunda olarak ayarlansa OFF bile depolanır.
deyimi kullanılarak SET ayarlanan bağlantı düzeyi ayarları için QUOTED_IDENTIFIERvarsayılan veritabanı ayarını geçersiz kılar. ODBC ve OLE DB istemcileri, varsayılan olarak için ONbir bağlantı düzeyi SET deyimi ayarı QUOTED_IDENTIFIER 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.
Bu seçeneğin durumunu is_quoted_identifier_on katalog görünümündeki sütunu inceleyerek belirleyebilirsiniz. Ayrıca IsQuotedIdentifiersEnabled fonksiyonunun özelliğini inceleyerek durumu belirleyebilirsiniz.
RECURSIVE_TRIGGERS { ON | KAPALI }
ONAFTER tetikleyicilerinin özyinelemeli olarak tetiklemesine izin verilir.
OFFBu seçeneğin durumunu
is_recursive_triggers_onkatalog görünümündeki sütunu inceleyerek belirleyebilirsiniz. AyrıcaIsRecursiveTriggersEnabledfonksiyonunun özelliğini inceleyerek durumu belirleyebilirsiniz.
Note
olarak ayarlandığında OFFyalnızca doğrudan özyineleme engellenirRECURSIVE_TRIGGERS. Dolaylı özyineleme özelliğini devre dışı bırakmak için iç içe tetikleyiciler sunucusu seçeneğini de 0 olarak ayarlamanız gerekir.
Bu seçeneğin durumunu is_recursive_triggers_on katalog görünümündeki sütunu veya IsRecursiveTriggersEnabled fonksiyonunun özelliğini inceleyerek belirleyebilirsiniz.
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, ALTER DATABASE veritabanında herhangi bir kilit varsa deyimi süresiz olarak bekler. Yalnızca bir sonlandırma yan tümcesi belirtilebilir ve yan tümceleri izler SET .
Note
Tüm veritabanı seçenekleri yan tümcesini kullanmaz WITH <termination> . Daha fazla bilgi için Ayar seçenekleri altındaki tabloya bakın.
TAM SAYI SONRASI GERİ GERİ DÖNÜŞ [SANIYELER] | HEMEN GERI DÖNÜŞ
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 | OFF }ONvarsayılan olarak ancak belirli bir noktaya geri yükleme işleminden sonra otomatik olarak olarak ayarlanırOFF. Bu ayarı etkinleştirme hakkında daha fazla bilgi için bkz. Bekletme ilkesini yapılandırma.
Seçenekleri ayarlama
Veritabanı seçenekleri için güncel ayarları almak için sys.databases katalog görünümünü veya DATABASEPROPERTYEX'i kullanın
Veritabanı seçeneğini ayarladıktan sonra yeni ayar hemen etkinleşir.
Tüm veritabanı seçenekleri yan tümcesini WITH <termination> 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.
| Opsiyon kategorisi | Diğer seçeneklerle belirtilebilir | Yan tümcesini WITH <termination> kullanabilir |
|---|---|---|
<auto_option> |
Yes | No |
<change_tracking_option> |
Yes | Yes |
<cursor_option> |
Yes | No |
<db_encryption_option> |
Yes | No |
<db_update_option> |
Yes | Yes |
<db_user_access_option> |
Yes | Yes |
<delayed_durability_option> |
Yes | Yes |
<parameterization_option> |
Yes | Yes |
ALLOW_SNAPSHOT_ISOLATION |
No | No |
READ_COMMITTED_SNAPSHOT |
No | Yes |
MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT |
Yes | Yes |
DATE_CORRELATION_OPTIMIZATION |
Yes | Yes |
<sql_option> |
Yes | No |
Examples
A. Veritabanını READ_ONLY olarak ayarlama
Veritabanının veya dosya grubunun READ_ONLY durumunu olarak değiştirmek veya READ_WRITE 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 AdventureWorks2025 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, AdventureWorks2025 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.
| name | snapshot_isolation_state | description |
|---|---|---|
[database_name] |
1 | ON |
C. Değişiklik izlemeyi etkinleştirme, değiştirme veya devre dışı bırakma
Aşağıdaki örnek, AdventureWorks2025 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, AdventureWorks2025 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
- Statistics
- DATABASEPROPERTYEX (Transact-SQL)
- sys.databases
- sys.data_spaces
- sys.database_automatic_tuning_options
- sys.database_automatic_tuning_mode
- ALTER DATABASE (Transact-SQL) uyumluluk düzeyi
- VERİTABANI OLUŞTUR
- Değişiklik İzlemeyi Etkinleştirme ve Devre Dışı Bırakma (SQL Server)
- DROP DATABASE (Transact-SQL)
- İŞLEM YALıTıM DÜZEYINI AYARLA (Transact-SQL)
- Sorgu Deposu ile iş yüklerini izlemeye yönelik en iyi yöntemler
- sorgu deposu ipuçları
* Fabric'te SQL veritabanı*
Azure Synapse'i
Analiz
Microsoft Fabric'da SQL veritabanı
Bu sayfa, Doku'daki SQL veritabanı için seçenekler içerirALTER DATABASE SET.
Note
Doku'daki SQL veritabanında tüm ALTER DATABASE SET seçenekler şu anda bir önizleme özelliğidir.
Uyumluluk düzeyleri SET seçeneklerdir ancak ALTER DATABASE uyumluluk düzeyiaçıklanmıştır.
Note
Birçok veritabanı kümesi seçeneği, mevcut oturum için SET Statement'ları kullanılarak yapılandırılabilir ve uygulamalar bağlandıklarında genellikle 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.
Syntax
ALTER DATABASE { database_name | CURRENT }
SET
{
<option_spec> [ ,...n ] [ WITH <termination> ]
}
;
<option_spec> ::=
{
<auto_option>
| <automatic_tuning_option>
| <change_tracking_option>
| <cursor_option>
| <db_update_option>
| <db_user_access_option>
| <delayed_durability_option>
| <parameterization_option>
| <query_store_options>
| <snapshot_option>
| <sql_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
{
( <change_tracking_option_list> [,...n] )
}
}
<change_tracking_option_list> ::=
{
CHANGE_RETENTION = retention_period { DAYS | HOURS | MINUTES }
}
<cursor_option> ::=
{
CURSOR_CLOSE_ON_COMMIT { 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> ::=
{
MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT { ON | OFF }
}
<sql_option> ::=
{
ANSI_NULL_DEFAULT { ON | OFF }
| ANSI_NULLS { ON | OFF }
| ANSI_PADDING { ON | OFF }
| ANSI_WARNINGS { ON | OFF }
| ARITHABORT { ON | OFF }
| COMPATIBILITY_LEVEL = { 170 | 160 | 150 | 140 | 130 | 120 | 110 | 100 }
| CONCAT_NULL_YIELDS_NULL { ON | OFF }
| NUMERIC_ROUNDABORT { ON | OFF }
| QUOTED_IDENTIFIER { ON | OFF }
| RECURSIVE_TRIGGERS { ON | OFF }
}
<termination>::=
{
ROLLBACK AFTER integer [ SECONDS ]
| ROLLBACK IMMEDIATE
| NO_WAIT
}
<temporal_history_retention>::=TEMPORAL_HISTORY_RETENTION { ON | OFF }
Arguments
database_name
Değiştirilecek veritabanının adı.
CURRENTCURRENTeylemi geçerli veritabanında çalıştırır.CURRENTtüm bağlamlardaki tüm seçenekler için desteklenmez.CURRENTbaşarısız olursa veritabanı adını belirtin.
< > auto_option ::=
Otomatik seçenekleri denetler.
AUTO_CREATE_STATISTICS { ON | KAPALI }
ONSorgu İ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.
OFFSorgu İ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 seçeneğin durumunu is_auto_create_stats_on katalog görünümündeki sütunu inceleyerek belirleyebilirsiniz. Ayrıca IsAutoCreateStatistics fonksiyonunun özelliğini inceleyerek durumu belirleyebilirsiniz.
Daha fazla bilgi için İstatistik bölümündeki "İstatistik seçenekleri" bölümüne bakınız.
ARTıMLı = ON | KAPALI
olarak ONayarlayın AUTO_CREATE_STATISTICS ve olarak ONayarlayınINCREMENTAL. Bu ayar, artımlı istatistikler desteklendiği her durumda otomatik olarak oluşturulan istatistikleri artımlı olarak oluşturur. Varsayılan değer OFF değeridir. Daha fazla bilgi için bkz. CREATE STATISTICS.
AUTO_SHRINK { ON | KAPALI }
ONVeritabanı dosyaları düzenli aralıklarla daraltma için adaydır. Belirli bir gereksiniminiz yoksa
AUTO_SHRINKveritabanı seçeneğiniONolarak ayarlamayın.
Hem veri dosyası hem de günlük dosyaları otomatik olarak küçültülebilir.
AUTO_SHRINK yalnızca veritabanını SIMPLE kurtarma modeli olarak ayarlarsanız veya günlüğü yedeklerseniz işlem günlüğünün boyutunu küçültür. olarak OFFayarlandığında, kullanılmayan alan için düzenli aralıklarla yapılan denetimler sırasında veritabanı dosyaları otomatik olarak küçülmez.
seçeneği AUTO_SHRINK , 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.
OFFKullanılmayan alan için düzenli aralıklarla yapılan denetimler sırasında veritabanı dosyaları otomatik olarak küçülmez.
Bu seçeneğin durumunu is_auto_shrink_on katalog görünümündeki sütunu inceleyerek belirleyebilirsiniz. Ayrıca IsAutoShrink fonksiyonunun özelliğini inceleyerek durumu belirleyebilirsiniz.
AUTO_UPDATE_STATISTICS { ON | KAPALI }
ONSorgu İ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.
seçeneği
AUTO_UPDATE_STATISTICSdizinler için oluşturulan istatistikler, sorgu koşullarında tek sütunlar ve deyimi kullanılarakCREATE STATISTICSoluşturulan istatistikler için geçerlidir. Bu seçenek filtrelenmiş istatistikler için de geçerlidir.Varsayılan değer:
ON. Çoğu veritabanı için varsayılan ayarı kullanmanızı öneririz.İstatistiklerin
AUTO_UPDATE_STATISTICS_ASYNCzaman uyumlu olarak mı yoksa zaman uyumsuz olarak mı güncelleştirileceğini belirtmek için seçeneğini kullanın.OFFSorgu İ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.
Bu seçeneğin durumunu
is_auto_update_stats_onkatalog görünümündeki sütunu inceleyerek belirleyebilirsiniz. AyrıcaIsAutoUpdateStatisticsfonksiyonunun özelliğini inceleyerek durumu belirleyebilirsiniz.Daha fazla bilgi için İstatistik bölümündeki "İstatistik seçenekleri" bölümüne bakınız.
AUTO_UPDATE_STATISTICS_ASYNC { ON | KAPALI }
ONseçeneği için istatistik güncelleştirmelerinin
AUTO_UPDATE_STATISTICSzaman uyumsuz olduğunu belirtir. Sorgu İyileştiricisi, sorguları derlemeden önce istatistik güncelleştirmelerinin tamamlanmasını beklemez.olarak ayarlanmadığı sürece bu seçeneğin
ONolarak ayarlanmasınınONhiçbir etkisi olmaz.AUTO_UPDATE_STATISTICSVarsayılan olarak,
AUTO_UPDATE_STATISTICS_ASYNCseçeneği olarakOFFayarlanır ve Sorgu İyileştiricisi istatistikleri zaman uyumlu olarak güncelleştirir.OFFseçeneği için
AUTO_UPDATE_STATISTICSistatistik güncelleştirmelerinin zaman uyumlu olduğunu belirtir. Sorgu İyileştiricisi, sorguları derlemeden önce istatistik güncelleştirmelerinin tamamlanmasını bekler.olarak ayarlanmadığı sürece bu seçeneğin
OFFolarak ayarlanmasınınONhiçbir etkisi olmaz.AUTO_UPDATE_STATISTICS
Bu seçeneğin durumunu is_auto_update_stats_async_on katalog görünümündeki sütunu inceleyerek belirleyebilirsiniz.
Senkron veya asenkron istatistik güncellemelerinin ne zaman kullanılacağını açıklayan daha fazla bilgi için İstatistikler bölümündeki "İstatistik seçenekleri" bölümüne bakınız.
< > automatic_tuning_option ::=
Otomatik ayar için otomatik seçenekleri kontrol eder. Görünümde T-SQL aracılığıyla aşağıdaki ayarların sys.database_automatic_tuning_optionsseçeneklerini görüntüleyebilirsiniz.
AUTOMATIC_TUNING = { AUTO | DEVRAL | ÖZEL }
AUTOOtomatik ayarlama değerinin otomatik ayarlama için varsayılanları uygulayacak
AUTOşekilde ayarlanması. Varsayılan olarakFORCE_LAST_GOOD_PLANetkindir veCREATE_INDEXDROP_INDEXdevre dışıdır.INHERITOtomatik ayarlama değerinin otomatik ayarlama için varsayılanları uygulayacak
INHERITşekilde ayarlanması. Varsayılan olarakFORCE_LAST_GOOD_PLANetkindir veCREATE_INDEXDROP_INDEXdevre dışıdır.CUSTOMCUSTOMdeğerini kullanarak, üç ayrı ayar seçeneğiniFORCE_LAST_GOOD_PLAN,CREATE_INDEXveDROP_INDEXyapılandırabilirsiniz.
CREATE_INDEX = { DEFAULT | ON | KAPALI }
CREATE_INDEX akort otomatik indeks yönetimi seçeneğini etkinleştirir veya devre dışı bırakır. Bu seçeneğin durumunu T-SQL aracılığıyla görünümünde sys.database_automatic_tuning_optionsgörüntüleyebilirsiniz.
DEFAULTVarsayılan ayarları devralır.
ONEtkinleş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 bir dizin olarak işaretlenir.
OFFVeritabanında otomatik olarak eksik dizinler oluşturmaz.
DROP_INDEX = { DEFAULT | ON | KAPALI }
DROP_INDEX akort otomatik indeks yönetimi seçeneğini etkinleştirir veya devre dışı bırakır. Bu seçeneğin durumunu T-SQL aracılığıyla görünümünde sys.database_automatic_tuning_optionsgörüntüleyebilirsiniz.
DEFAULTVarsayı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.
ONYinelenen veya artık yararlı olmayan dizinleri otomatik olarak performans iş yüküne bırakır.
OFFEksik dizinleri veritabanında otomatik olarak bırakmaz.
FORCE_LAST_GOOD_PLAN = { DEFAULT | ON | KAPALI }
FORCE_LAST_GOOD_PLAN ayar otomatik plan düzeltme seçeneğini etkinleştirir veya devre dışı bırakır. Bu seçeneğin durumunu T-SQL aracılığıyla görünümünde sys.database_automatic_tuning_optionsgörüntüleyebilirsiniz.
DEFAULTVarsayı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, değeri olan varsayılan değerdir
ON.ONVeritabanı 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. Query Store etkin değilse veya Okuma-Yazma modunda değilse bu ifade başarısız olur.
OFFVeritabanı Motoru, sys.dm_db_tuning_recommendations görünümdeki sorgu planı değişikliklerinden kaynaklanabilecek olası sorgu performansı gerilemelerini 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 ilerleyen bölümlerinde Örnekler bölümüne bakınız.
CHANGE_RETENTION = retention_period { DAYS | HOURS | MINUTES }Değişiklik izleme bilgilerini veritabanında tutmak için en düşük süreyi belirtir.
retention_period , tutma süresinin sayısal bileşenini belirten bir tam sayıdır.
Varsayılan tutma süresi 2 gündür. En düşük saklama süresi 1 dakikadır. Varsayılan tutma türü DAYS'tir.
< > cursor_option ::=
İmleç seçeneklerini denetler.
CURSOR_CLOSE_ON_COMMIT { ON | KAPALI }
ONbir işlemi işlediğiniz veya geri aldığınızda açılan tüm imleçler kapatılır.
OFFbir işlem işlendiğinde imleçler açık kalır; bir işlemi geri döndürmek, veya
STATIColarakINSENSITIVEtanımlanan imleçler dışında tüm imleçleri kapatır.
deyimi kullanılarak SET ayarlanan bağlantı düzeyi ayarları için CURSOR_CLOSE_ON_COMMITvarsayı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.
Bu seçeneğin durumunu is_cursor_close_on_commit_on katalog görünümündeki sütunu veya IsCloseCursorsOnCommitEnabled fonksiyonunun özelliğini inceleyerek 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_update_option ::=
Veritabanında güncelleştirmelere izin verilip verilmeyeceğini denetler.
READ_ONLYKullanıcılar veritabanındaki verileri okuyabilir ancak değiştiremez.
Note
Sorgu performansını geliştirmek için veritabanını olarak ayarlamadan
READ_ONLYönce istatistikleri güncelleştirin. Veritabanı olarak ayarlandıktanREAD_ONLYsonra ek istatistikler gerekiyorsa, Veritabanı Altyapısı içindetempdbistatistikler oluşturur. Sadece okunabilir bir veritabanı için istatistik hakkında daha fazla bilgi için İstatistikler sayfasına bakınız.READ_WRITEVeritabanı 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.
< > db_user_access_option ::=
Veritabanına kullanıcı erişimini denetler.
RESTRICTED_USERYalnızca
db_ownersabit veritabanı rolünün üyelerine vedbcreatorvesysadminsabit 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, deyiminin sonlandırma yan tümcesi tarafından belirtilen zaman çerçevesi içindeALTER DATABASEbağlantısı kesilir. Veritabanı RESTRICTED_USER durumuna geçtikten sonra, nitelenmemiş kullanıcıların bağlantı girişimleri reddedilir.MULTI_USERVeritabanına bağlanmak için uygun izinlere sahip tüm kullanıcılara izin verilir. Bu seçeneğin durumunu
user_accesskatalog görünümündeki sütunu veyaUserAccessfonksiyonunun özelliğini inceleyerek belirleyebilirsiniz.
< > delayed_durability_option ::=
İşlemlerin tamamen dayanıklı mı yoksa gecikmeli dayanıklı mı işlediğini denetler.
DISABLEDSET DISABLEDizleyen 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.ALLOWEDSET ALLOWEDizleyen 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.FORCEDSET FORCEDizleyen 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 }
SIMPLESorgular, veritabanının varsayılan davranışına göre parametreleştirilir.
FORCEDSQL Server, veritabanındaki tüm sorguları parametreleştirir.
Bu seçeneğin mevcut ayarı, is_parameterization_forced katalog görünümündeki sütunu inceleyerek belirlenebilir.
< > query_store_options ::=
ON|OFF|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.
ONSorgu Deposu'na olanak tanır. ON varsayılan değerdir.
OFFSorgu Deposu'nı devre dışı bırakır.
Note
Microsoft Fabric'teki SQL veritabanında Sorgu Deposu devre dışı bırakılamaz.
ALTER DATABASE [database] SET QUERY_STORE = OFFyürütülürken'QUERY_STORE=OFF' is not supported in this version of SQL Server.uyarısını döndürür.CLEARSorgu Deposu'nun içeriğini kaldırın.
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 en fazla alanı tükendiyse, Sorgu Deposu işlem modunu olarak READ_ONLYdeğ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 türündedir. Varsayılan değer 30 değeridir.
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ığı bağımsız değişkeni kullanılarak DATA_FLUSH_INTERVAL_SECONDS yapılandırılır.
DATA_FLUSH_INTERVAL_SECONDS
bigint türündedir. Varsayılan değer 900 (15 dakika).
MAX_STORAGE_SIZE_MB
Sorgu Deposu'na ayrılan alanı belirler.
MAX_STORAGE_SIZE_MB
bigint türündedir. Şu anda Doku'daki SQL veritabanında varsayılan sınır 100 MB'tır. İzin verilen MAX_STORAGE_SIZE_MB en büyük değer 10.240 MB'tır.
Note
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.
Important
İş yükünüzü yakalamanızın 10 GB'dan fazla disk alanına ihtiyacı olduğunu düşünüyorsanız, muhtemelen iş yükünüzü sorgu planlarını yeniden kullanmak için optimize etmelisiniz (örneğin zorunlu parametreleştirme kullanmak veya Sorgu Mağazası yapılandırmalarını ayarlamak).
Sorgu yakalama ilkesi üzerinde ek denetim için olarak ayarlayabilirsiniz QUERY_CAPTURE_MODECUSTOM .
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 bağımsız değişken kullanılarak INTERVAL_LENGTH_MINUTES yapılandırılır.
INTERVAL_LENGTH_MINUTES
bigint türündedir. Varsayılan değer 60'tır.
SIZE_BASED_CLEANUP_MODE = { AUTO | KAPALI }
Toplam veri miktarı maksimum boyuta yaklaştığında temizlemenin otomatik olarak etkinleştirilip etkinleştirilmediğini denetler.
OFFBoyut tabanlı temizleme otomatik olarak etkinleştirilmez.
AUTOBoyut tabanlı temizlik, diskteki boyut 90% max_storage_size_mb'ye ulaştığında otomatik olarak aktive olur. Boyut tabanlı temizleme, önce en düşük maliyetli ve en eski sorguları kaldırır. Yaklaşık 80% max_storage_size_mb noktasında durur. Bu varsayılan yapılandırma değeridir.
SIZE_BASED_CLEANUP_MODE nvarchar tipidir.
QUERY_CAPTURE_MODE { ALL | OTOMATİk | ÖZEL | NONE }
Şu anda etkin olan sorgu yakalama modunu atar. Her mod belirli sorgu yakalama ilkelerini tanımlar.
Note
İmleçler, Saklı Yordamlar içindeki sorgular ve Yerel olarak derlenmiş sorgular, sorgu yakalama modu , AUTOveya CUSTOMolarak ayarlandığında ALLher zaman yakalanır.
ALLTüm sorguları yakalar.
AUTOYürütme sayısına ve kaynak tüketimine göre ilgili sorguları yakalayın. Bu varsayılan seçenektir.
NONEYeni 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.
CUSTOMSeçenekler üzerinde denetime
QUERY_CAPTURE_POLICYizin verir.
QUERY_CAPTURE_MODE
nvarchar tü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 tür int. Varsayılan değer 200'dür.
WAIT_STATS_CAPTURE_MODE { ON | KAPALI }
Sorgu başına bekleme istatistiklerinin yakalanıp yakalanmayacağını denetler.
ONSorgu başına bekleme istatistikleri bilgileri yakalanır. Bu değer varsayılan yapılandırma değeridir.
OFFSorgu 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 = tam sayı { GÜNLER | SAATLER }
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. NumaraINT'dir.
EXECUTION_COUNT = tam sayı
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 tür int.
TOTAL_COMPILE_CPU_TIME_MS = tam sayı
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 int.
TOTAL_EXECUTION_CPU_TIME_MS = tam sayı
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 tür int.
MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT { ON | KAPALI }
ONİş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.
OFFBellek 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 mevcut ayarı, is_memory_optimized_elevate_to_snapshot_on katalog görünümündeki sütunu inceleyerek belirlenebilir.
< > sql_option ::=
VERITABANı düzeyinde ANSI uyumluluk seçeneklerini denetler.
ANSI_NULL_DEFAULT { ON | KAPALI }
Null atanabilirliğin veya deyimlerinde açıkça tanımlanmadığı CREATE TABLE bir sütun veya CLR kullanıcı tanımlı türünün varsayılan değerini NULLNOT NULLveya ALTER TABLE değerini belirler. Kısıtlamalarla tanımlanan sütunlar, bu ayar ne olursa olsun kısıtlama kurallarına uyar.
ONVarsayılan değer
NULLdeğeridir.OFFVarsayılan değer
NOT NULLdeğeridir.
deyimi kullanılarak SET ayarlanan bağlantı düzeyi ayarları için ANSI_NULL_DEFAULTvarsayılan veritabanı düzeyi ayarını geçersiz kılar. ODBC ve OLE DB istemcileri, varsayılan olarak oturumun bağlantı düzeyi SET deyimi ayarını ANSI_NULL_DEFAULTON 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, veritabanı seçeneğinin ANSI_NULL_DEFAULTON ayarlı olarak ayarlanması, veritabanının varsayılan ayarını olarak NULLdeğiştirir.
Bu seçeneğin durumunu is_ansi_null_default_on katalog görünümündeki sütunu inceleyerek belirleyebilirsiniz. Ayrıca IsAnsiNullDefault fonksiyonunun özelliğini inceleyerek durumu belirleyebilirsiniz.
ANSI_NULLS { ON | KAPALI }
ONNull değerle yapılan tüm karşılaştırmalar olarak
UNKNOWNdeğerlendirilir.OFFUnicode olmayan değerlerin null değerle karşılaştırılması, her iki değerin
NULLde olup olmadığını değerlendirirTRUE.
Important
SQL Server'ın ANSI_NULLS gelecekteki bir sürümünde her zaman AÇIK olacaktır 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.
deyimi kullanılarak SET ayarlanan bağlantı düzeyi ayarları için ANSI_NULLSvarsayılan veritabanı ayarını geçersiz kılar. ODBC ve OLE DB istemcileri, varsayılan olarak oturum için AÇıK olarak bir bağlantı düzeyi SET deyimi ayarı ANSI_NULLS 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.
Note
SET ANSI_NULLS ayrıca hesaplanan sütunlarda veya dizinlenmiş görünümlerde dizin oluştururken veya dizinlerde değişiklik yaparken ON olarak ayarlanmalıdır.
Bu seçeneğin durumunu is_ansi_nulls_on katalog görünümündeki sütunu inceleyerek belirleyebilirsiniz. Ayrıca IsAnsiNullsEnabled fonksiyonunun özelliğini inceleyerek durumu belirleyebilirsiniz.
ANSI_PADDING { ON | KAPALI }
ONDizeler dönüştürmeden önce aynı uzunlukta doldurulur. Ayrıca varchar veya nvarchar veri tipine eklemeden önce aynı uzunluğa dolgu yaptım.
OFFKarakter değerlerinde takip eden boşlukları varchar veya nvarchar sütunlarına ekler. Ayrıca, varbinar sütunlara eklenen ikili değerlerde de geride duran sıfırlar bırakılı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.
Important
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.
null izin veren char(n) ve ikili (n) 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. Null izin vermeyen char(n) ve binary(n) sütunları her zaman sütunun uzunluğuna doldurulur.
deyimi kullanılarak SET 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.
Bu seçeneğin durumunu is_ansi_padding_on katalog görünümündeki sütunu inceleyerek belirleyebilirsiniz. Ayrıca IsAnsiPaddingEnabled fonksiyonunun özelliğini inceleyerek durumu belirleyebilirsiniz.
ANSI_WARNINGS { ON | KAPALI }
ONSı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.
OFFSıfıra bölme gibi koşullar oluştuğunda hiçbir uyarı tetiklenmez ve null değerler döndürülür.
Note
SET ANSI_WARNINGS hesaplanan sütunlarda veya dizinlenmiş görünümlerde dizin oluşturduğunuzda veya dizinlerde değişiklik yaptığınızda olarak ayarlanmalıdır ON .
deyimi kullanılarak SET ayarlanan bağlantı düzeyi ayarları için ANSI_WARNINGSvarsayılan veritabanı ayarını geçersiz kılar. ODBC ve OLE DB istemcileri, varsayılan olarak oturumun bağlantı düzeyi SET deyimi ayarını ANSI_WARNINGSON 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.
Bu seçeneğin durumunu is_ansi_warnings_on katalog görünümündeki sütunu inceleyerek belirleyebilirsiniz. Ayrıca IsAnsiWarningsEnabled fonksiyonunun özelliğini inceleyerek durumu belirleyebilirsiniz.
ARITHABORT { ON | KAPALI }
ONSorgu yürütme sırasında taşma veya sıfıra bölme hatası oluştuğunda sorgu sonlandırılır.
OFFBu 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.
Note
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.
Bu seçeneğin durumunu is_arithabort_on katalog görünümündeki sütunu inceleyerek belirleyebilirsiniz. Ayrıca IsArithmeticAbortEnabled fonksiyonunun özelliğini inceleyerek durumu belirleyebilirsiniz.
COMPATIBILITY_LEVEL = { 170 | 160 | 150 | 140 | 130 | 120 | 110 | 100 }
Daha fazla bilgi için bkz. alter database uyumluluk düzeyi
CONCAT_NULL_YIELDS_NULL { ON | KAPALI }
ONBirleştirme işleminin sonucu, işlenenlerden biri olduğunda elde edilir
NULLNULL. Örneğin, "This is" ve NULL karakter dizesini birleştirmek"This is" değeri yerine NULL değerine neden olur.OFFNull değer boş karakter dizesi olarak kabul edilir.
Note
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.
deyimi kullanılarak SET 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.
Bu seçeneğin durumunu is_concat_null_yields_null_on katalog görünümündeki sütunu inceleyerek belirleyebilirsiniz. Ayrıca IsNullConcat fonksiyonunun özelliğini inceleyerek durumu belirleyebilirsiniz.
NUMERIC_ROUNDABORT { ON | KAPALI }
ONİfadede duyarlık kaybı oluştuğunda bir hata oluşturulur.
OFFDuyarlık kaybı bir hata iletisi oluşturmaz ve sonuç, sonucun depolandığı sütunun veya değişkenin duyarlığına yuvarlanr.
Important
NUMERIC_ROUNDABORT hesaplanan sütunlarda veya dizinlenmiş görünümlerde dizin oluşturduğunuzda veya dizinlerde değişiklik yaptığınızda olarak ayarlanmalıdır OFF .
Bu seçeneğin durumunu is_numeric_roundabort_on katalog görünümündeki sütunda belirleyebilirsiniz. Ayrıca IsNumericRoundAbortEnabled fonksiyonunun özelliğini inceleyerek durumu belirleyebilirsiniz.
QUOTED_IDENTIFIER { ON | KAPALI }
ONSı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.OFFTanı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 . Veritabanı tanımlayıcıları.
Tablo oluşturulduğunda, QUOTED_IDENTIFIER seçenek her zaman tablonun meta verilerinde ON olarak depolanır. Seçenek, tablo oluşturulduğunda olarak ayarlansa OFF bile depolanır.
deyimi kullanılarak SET ayarlanan bağlantı düzeyi ayarları için QUOTED_IDENTIFIERvarsayılan veritabanı ayarını geçersiz kılar. ODBC ve OLE DB istemcileri, varsayılan olarak AÇıK olarak bir bağlantı düzeyi SET deyimi ayarı QUOTED_IDENTIFIER 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.
Bu seçeneğin durumunu is_quoted_identifier_on katalog görünümündeki sütunu inceleyerek belirleyebilirsiniz. Ayrıca IsQuotedIdentifiersEnabled fonksiyonunun özelliğini inceleyerek durumu belirleyebilirsiniz.
RECURSIVE_TRIGGERS { ON | KAPALI }
ONAFTER tetikleyicilerinin özyinelemeli olarak tetiklemesine izin verilir.
OFFBu seçeneğin durumunu
is_recursive_triggers_onkatalog görünümündeki sütunu inceleyerek belirleyebilirsiniz. AyrıcaIsRecursiveTriggersEnabledfonksiyonunun özelliğini inceleyerek durumu belirleyebilirsiniz.
Note
olarak ayarlandığında OFFyalnızca doğrudan özyineleme engellenirRECURSIVE_TRIGGERS. Dolaylı özyineleme özelliğini devre dışı bırakmak için iç içe tetikleyiciler sunucusu seçeneğini de 0 olarak ayarlamanız gerekir.
Bu seçeneğin durumunu is_recursive_triggers_on katalog görünümündeki sütunu veya IsRecursiveTriggersEnabled fonksiyonunun özelliğini inceleyerek belirleyebilirsiniz.
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, ALTER DATABASE veritabanında herhangi bir kilit varsa deyimi süresiz olarak bekler. Yalnızca bir sonlandırma yan tümcesi belirtilebilir ve yan tümceleri izler SET .
Note
Tüm veritabanı seçenekleri yan tümcesini kullanmaz WITH <termination> . Daha fazla bilgi için Ayar seçenekleri altındaki tabloya bakın.
ROLLBACK AFTER integer [SECONDS]|ROLLBACK IMMEDIATEBelirtilen 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 | OFF }ONvarsayılan olarak ancak belirli bir noktaya geri yükleme işleminden sonra otomatik olarak olarak ayarlanırOFF. Bu ayarı etkinleştirme hakkında daha fazla bilgi için bkz. Bekletme ilkesini yapılandırma.
Seçenekleri ayarlama
Veritabanı seçenekleri için güncel ayarları almak için sys.databases katalog görünümünü veya DATABASEPROPERTYEX'i kullanın
Veritabanı seçeneğini ayarladıktan sonra yeni ayar hemen etkinleşir.
Tüm veritabanı seçenekleri yan tümcesini WITH <termination> 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.
| Opsiyon kategorisi | Diğer seçeneklerle belirtilebilir | Yan tümcesini WITH <termination> kullanabilir |
|---|---|---|
<auto_option> |
Yes | No |
<change_tracking_option> |
Yes | Yes |
<cursor_option> |
Yes | No |
<db_update_option> |
Yes | Yes |
<db_user_access_option> |
Yes | Yes |
<delayed_durability_option> |
Yes | Yes |
<parameterization_option> |
Yes | Yes |
ALLOW_SNAPSHOT_ISOLATION |
No | No |
READ_COMMITTED_SNAPSHOT |
No | Yes |
MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT |
Yes | Yes |
DATE_CORRELATION_OPTIMIZATION |
Yes | Yes |
<sql_option> |
Yes | No |
Examples
A. Veritabanını READ_ONLY olarak ayarlama
Veritabanının veya dosya grubunun READ_ONLY durumunu olarak değiştirmek veya READ_WRITE 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 AdventureWorks2025 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, AdventureWorks2025 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.
| name | snapshot_isolation_state | description |
|---|---|---|
[database_name] |
1 | ON |
C. Değişiklik izlemeyi değiştirme
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);
D. Özel yakalama ilkesi seçenekleriyle Sorgu Deposu'yu değiş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
- Microsoft Fabric'te SQL veritabanı için Performans Panosu
- Statistics
- DATABASEPROPERTYEX (Transact-SQL)
- sys.databases
- sys.database_automatic_tuning_options
- sys.database_automatic_tuning_mode
- ALTER DATABASE (Transact-SQL) uyumluluk düzeyi
- Değişiklik İzlemeyi Etkinleştirme ve Devre Dışı Bırakma (SQL Server)
- İŞLEM YALıTıM DÜZEYINI AYARLA (Transact-SQL)
- Sorgu Deposu ile iş yüklerini izlemeye yönelik en iyi yöntemler
- sorgu deposu ipuçları
* Azure SQL Yönetilen Örneği *
Azure Synapse'i
Analiz
Azure SQL Yönetilen Örneği
Uyumluluk düzeyleri SET seçeneklerdir ancak ALTER DATABASE uyumluluk düzeyiaçıklanmıştır.
Note
Birçok veritabanı kümesi seçeneği, mevcut oturum için SET Statement'ları kullanılarak yapılandırılabilir ve uygulamalar bağlandıklarında genellikle 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.
Syntax
ALTER DATABASE { database_name | CURRENT }
SET
{
<optionspec> [ ,...n ]
}
;
{ [ FOR SECONDARY ] SET <set_options> }
<optionspec> ::=
{
<auto_option>
| <change_tracking_option>
| <cursor_option>
| <db_encryption_option>
| <delayed_durability_option>
| <parameterization_option>
| <query_store_options>
| <snapshot_option>
| <sql_option>
| <termination>
| <temporal_history_retention>
}
;
<auto_option> ::=
{
AUTO_CREATE_STATISTICS { OFF | ON [ ( INCREMENTAL = { ON | OFF } ) ] }
| AUTO_SHRINK { ON | OFF }
| AUTO_UPDATE_STATISTICS { ON | OFF }
| AUTO_UPDATE_STATISTICS_ASYNC { ON | OFF }
}
<automatic_tuning_option> ::=
{
AUTOMATIC_TUNING ( FORCE_LAST_GOOD_PLAN = { DEFAULT | ON | OFF } )
}
<change_tracking_option> ::=
{
CHANGE_TRACKING
{
= OFF
| = ON [ ( <change_tracking_option_list > [,...n] ) ]
| ( <change_tracking_option_list> [,...n] )
}
}
<change_tracking_option_list> ::=
{
AUTO_CLEANUP = { ON | OFF }
| CHANGE_RETENTION = retention_period { DAYS | HOURS | MINUTES }
}
<cursor_option> ::=
{
CURSOR_CLOSE_ON_COMMIT { ON | OFF }
}
<db_encryption_option> ::=
ENCRYPTION { ON | OFF }
<delayed_durability_option> ::=DELAYED_DURABILITY = { DISABLED | ALLOWED | FORCED }
<parameterization_option> ::=
PARAMETERIZATION { SIMPLE | FORCED }
<query_store_options> ::=
{
QUERY_STORE
{
= OFF
| = ON [ ( <query_store_option_list> [,... n] ) ]
| ( < query_store_option_list> [,... n] )
| CLEAR [ ALL ]
}
}
<query_store_option_list> ::=
{
OPERATION_MODE = { READ_WRITE | READ_ONLY }
| CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = number )
| DATA_FLUSH_INTERVAL_SECONDS = number
| MAX_STORAGE_SIZE_MB = number
| INTERVAL_LENGTH_MINUTES = number
| SIZE_BASED_CLEANUP_MODE = { AUTO | OFF }
| QUERY_CAPTURE_MODE = { ALL | AUTO | CUSTOM | NONE }
| MAX_PLANS_PER_QUERY = number
| WAIT_STATS_CAPTURE_MODE = { ON | OFF }
| QUERY_CAPTURE_POLICY = ( <query_capture_policy_option_list> [,...n] )
}
<query_capture_policy_option_list> ::=
{
STALE_CAPTURE_POLICY_THRESHOLD = number { DAYS | HOURS }
| EXECUTION_COUNT = number
| TOTAL_COMPILE_CPU_TIME_MS = number
| TOTAL_EXECUTION_CPU_TIME_MS = number
}
<snapshot_option> ::=
{
ALLOW_SNAPSHOT_ISOLATION { ON | OFF }
| READ_COMMITTED_SNAPSHOT { ON | OFF }
| MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT { ON | OFF }
}
<sql_option> ::=
{
ANSI_NULL_DEFAULT { ON | OFF }
| ANSI_NULLS { ON | OFF }
| ANSI_PADDING { ON | OFF }
| ANSI_WARNINGS { ON | OFF }
| ARITHABORT { ON | OFF }
| COMPATIBILITY_LEVEL = { 170 | 160 | 150 | 140 | 130 | 120 | 110 | 100 }
| CONCAT_NULL_YIELDS_NULL { ON | OFF }
| NUMERIC_ROUNDABORT { ON | OFF }
| QUOTED_IDENTIFIER { ON | OFF }
| RECURSIVE_TRIGGERS { ON | OFF }
}
<temporal_history_retention>::= TEMPORAL_HISTORY_RETENTION { ON | OFF }
Arguments
database_name
Değiştirilecek veritabanının adı.
CURRENT
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.
İKINCIL IÇIN
İkincil çoğaltmaların ayarlarını belirtir. Tüm ikincil çoğaltmalar aynı değerlere sahip olmalıdır.
FOR SECONDARY
ALTER DATABASE SCOPED CONFIGURATION (Transact-SQL) için benzer.
Yalnızca Sorgu Deposu (QUERY_STORE) ve Otomatik Ayarlama (AUTOMATIC_TUNING) ile kullanım için.
SQL Server Management Studio (SSMS) sürüm 21'inden önce söz FOR SECONDARY dizimi geçerli ancak IntelliSense tarafından tanınmıyor.
< > auto_option ::=
Otomatik seçenekleri denetler.
AUTO_CREATE_STATISTICS { ON | KAPALI }
ONSorgu İ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.
OFFSorgu İ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 seçeneğin durumunu
is_auto_create_stats_onkatalog görünümündeki sütunu inceleyerek belirleyebilirsiniz. AyrıcaIsAutoCreateStatisticsfonksiyonunun özelliğini inceleyerek durumu belirleyebilirsiniz.Daha fazla bilgi için İstatistik bölümündeki "İstatistik seçenekleri" bölümüne bakınız.
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 }
ONVeritabanı 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.
OFFKullanılmayan alan için düzenli aralıklarla yapılan denetimler sırasında veritabanı dosyaları otomatik olarak küçülmez.
Bu seçeneğin durumunu is_auto_shrink_on katalog görünümündeki sütunu inceleyerek belirleyebilirsiniz. Ayrıca IsAutoShrink fonksiyonunun özelliğini inceleyerek durumu belirleyebilirsiniz.
Note
AUTO_SHRINK seçeneği, Kapsanan Veritabanında kullanılamaz.
AUTO_UPDATE_STATISTICS { ON | KAPALI }
ONSorgu İ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.
OFFSorgu İ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.
Bu seçeneğin durumunu is_auto_update_stats_on katalog görünümündeki sütunu inceleyerek belirleyebilirsiniz. Ayrıca IsAutoUpdateStatistics fonksiyonunun özelliğini inceleyerek durumu belirleyebilirsiniz.
Daha fazla bilgi için, İstatistik bölümünde "Veritabanı çapında istatistik seçeneklerinin kullanımı" bölümüne bakınız.
AUTO_UPDATE_STATISTICS_ASYNC { ON | KAPALI }
ONAUTO_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.
OFFAUTO_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.
Bu seçeneğin durumunu is_auto_update_stats_async_on katalog görünümündeki sütunu inceleyerek belirleyebilirsiniz.
Eşzamanlı veya asenkron istatistik güncellemelerinin ne zaman kullanılacağını açıklayan daha fazla bilgi için, İstatistik bölümünde "Veritabanı çapında istatistik seçeneklerinin kullanılması" bölümüne bakınız.
< > automatic_tuning_option ::=
Otomatik ayar için otomatik seçenekleri kontrol eder.
FORCE_LAST_GOOD_PLAN = { DEFAULT | ON | KAPALI }
FORCE_LAST_GOOD_PLAN seçeneğini etkinleştiriyor veya devre dışı bırakıyor.
DEFAULTAzure SQL Yönetilen Örneği için varsayılan değer ON'dır.
ONVeritabanı 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. Query Store etkin değilse veya Okuma-Yazma modunda değilse bu ifade başarısız olur. Bu varsayılan değerdir.
OFFVeritabanı Motoru, sys.dm_db_tuning_recommendations görünümdeki sorgu planı değişikliklerinden kaynaklanabilecek olası sorgu performansı gerilemelerini 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 ilerleyen bölümlerinde Örnekler bölümüne bakınız.
ONVeritabanı 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 }
ONDeğişiklik izleme bilgileri belirtilen saklama süresinden sonra otomatik olarak kaldırılır.
OFFDeğişiklik izleme verileri veritabanından kaldırılmaz.
CHANGE_RETENTION = retention_period { GÜNLER | SAATLER | DAKIKALAR }
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 , tutma süresinin sayısal bileşenini belirten bir tam sayıdır.
Varsayılan tutma süresi 2 gündür. En düşük saklama süresi 1 dakikadır. Varsayılan tutma türü DAYS'tir.
OFFVeritabanı 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 }
ONbir işlemi işlediğiniz veya geri aldığınızda açılan tüm imleçler kapatılır.
OFFbir 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.
deyimi kullanılarak SET 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.
Bu seçeneğin durumunu is_cursor_close_on_commit_on katalog görünümündeki sütunu veya DATABASEPROPERTYEX fonksiyonunun IsCloseCursorsOnCommitEnabled özelliğini inceleyerek 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.
Veritabanının şifreleme durumunu sys.dm_database_encryption_keys dinamik yönetim görünümünü kullanarak görebilirsiniz.
< > delayed_durability_option ::=
İşlemlerin tamamen dayanıklı mı yoksa gecikmeli dayanıklı mı işlediğini denetler.
DISABLEDSET DISABLEDizleyen 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.ALLOWEDSET ALLOWEDizleyen 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.FORCEDSET FORCEDizleyen 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 }
SIMPLESorgular, veritabanının varsayılan davranışına göre parametreleştirilir.
FORCED
SQL Server, veritabanındaki tüm sorguları parametreleştirir.
Bu seçeneğin mevcut ayarı, is_parameterization_forced katalog görünümündeki sütunu inceleyerek belirlenebilir.
< > query_store_options ::=
ON|OFF|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.
ONSorgu Deposu'na olanak tanır.
OFFSorgu Deposu'nı devre dışı bırakır. Bu varsayılan değerdir.
CLEARSorgu Deposu'nun içeriğini kaldırın.
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 en fazla alanı tükendiyse, Sorgu Deposu işlem modunu olarak READ_ONLYdeğ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 büyük tip. Varsayılan değer 30'dur. SQL Database Basic sürümünde varsayılan süre 7 gündür.
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 büyük tip. Varsayılan değer 900 (15 dakika).
MAX_STORAGE_SIZE_MB
Sorgu Deposu'na ayrılan alanı belirler.
MAX_STORAGE_SIZE_MB
bigint türündedir. Varsayılan değer 100 MB'dir.
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.
Important
- İş yükünüzü yakalamanızın 10 GB'dan fazla disk alanına ihtiyacı olduğunu düşünüyorsanız, muhtemelen iş yükünüzü sorgu planlarını yeniden kullanmak için optimize etmelisiniz (örneğin zorunlu parametreleştirme kullanmak veya Sorgu Mağazası yapılandırmalarını ayarlamak).
- SQL Server 2019'dan (15.x) başlayarak ve Azure SQL Veritabanı'nda sorgu yakalama ilkesi üzerinde ek denetim için
QUERY_CAPTURE_MODECUSTOM olarak ayarlayabilirsiniz. -
MAX_STORAGE_SIZE_MBayarı 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 büyük tip. Varsayılan değer 60'tır.
SIZE_BASED_CLEANUP_MODE = { AUTO | KAPALI }
Toplam veri miktarı maksimum boyuta yaklaştığında temizlemenin otomatik olarak etkinleştirilip etkinleştirilmediğini denetler.
OFFBoyut tabanlı temizleme otomatik olarak etkinleştirilmez.
AUTOBoyut tabanlı temizlik, diskteki boyut 90% max_storage_size_mb'ye ulaştığında otomatik olarak aktive olur. Boyut tabanlı temizleme, önce en düşük maliyetli ve en eski sorguları kaldırır. Yaklaşık 80% max_storage_size_mb noktasında durur. Bu varsayılan yapılandırma değeridir.
SIZE_BASED_CLEANUP_MODE nvarchar tipidir.
QUERY_CAPTURE_MODE { ALL | OTOMATİk | ÖZEL | NONE }
Şu anda etkin olan sorgu yakalama modunu atar.
ALLTüm sorgular yakalanır.
AUTOYü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.
NONEYeni 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 nvarchar tipidir.
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 tür int. Varsayılan değer 200'dür.
WAIT_STATS_CAPTURE_MODE { ON | KAPALI }
Sorgu başına bekleme istatistiklerinin yakalanıp yakalanmayacağını denetler.
ONSorgu başına bekleme istatistikleri bilgileri yakalanır. Bu değer varsayılan yapılandırma değeridir.
OFFSorgu 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 = tam sayı { GÜNLER | SAATLER }
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 = tam sayı
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 tür int.
TOTAL_COMPILE_CPU_TIME_MS = tam sayı
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 int.
TOTAL_EXECUTION_CPU_TIME_MS = tam sayı
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 tür int.
< > snapshot_option ::=
İşlem yalıtım düzeyini belirler.
ALLOW_SNAPSHOT_ISOLATION { ON | KAPALI }
ONVeritabanı 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.
OFFVeritabanı 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), ALTER DATABASE veritabanındaki tüm mevcut işlemler işlenene kadar denetimi çağırana döndürmez. Veritabanı zaten deyiminde ALTER DATABASE belirtilen durumdaysa, denetim çağırana hemen döndürülür.
ALTER DATABASE Deyim 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ü izolasyon işlemlerinin durumunu gösterir.
snapshot_isolation_state_desc = IN_TRANSITION_TO_ONise, 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, msdbve tempdb veritabanlarının ALLOW_SNAPSHOT_ISOLATION ayarlarını değiştirebilirsiniz.
tempdbayarı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 tempdbdışı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 mevcut ayarı, snapshot_isolation_state katalog görünümündeki sütunu inceleyerek belirlenebilir.
READ_COMMITTED_SNAPSHOT { ON | KAPALI }
ONVeritabanı 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.
OFFVeritabanı 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, tempdbveya msdb sistem veritabanları için AÇIlamıyor.
model sistem veritabanının ayarını değiştirirseniz, bu ayar tempdbdışında oluşturulan tüm yeni veritabanları için varsayılan ayar olur.
Bu seçeneğin mevcut ayarı, is_read_committed_snapshot_on katalog görünümündeki sütunu inceleyerek belirlenebilir.
Warning
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 }
ONİş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.
OFFBellek 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 mevcut ayarı, is_memory_optimized_elevate_to_snapshot_on katalog görünümündeki sütunu inceleyerek belirlenebilir.
< > sql_option ::=
VERITABANı düzeyinde ANSI uyumluluk seçeneklerini denetler.
ANSI_NULL_DEFAULT { ON | KAPALI }
Null atanabilirliğin veya deyimlerinde açıkça tanımlanmadığı CREATE TABLE bir sütun veya CLR kullanıcı tanımlı türünün varsayılan değerini NULLNOT NULLveya ALTER TABLE değerini belirler. Kısıtlamalarla tanımlanan sütunlar, bu ayar ne olursa olsun kısıtlama kurallarına uyar.
ONVarsayılan değer
NULLdeğeridir.OFFVarsayılan değer
NOT NULLdeğeridir.
deyimi kullanılarak SET ayarlanan bağlantı düzeyi ayarları için ANSI_NULL_DEFAULTvarsayılan veritabanı düzeyi ayarını geçersiz kılar. ODBC ve OLE DB istemcileri, varsayılan olarak oturumun bağlantı düzeyi SET deyimi ayarını ANSI_NULL_DEFAULTON 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, veritabanı seçeneğinin ANSI_NULL_DEFAULTON ayarlı olarak ayarlanması, veritabanının varsayılan ayarını olarak NULLdeğiştirir.
Bu seçeneğin durumunu is_ansi_null_default_on katalog görünümündeki sütunu inceleyerek belirleyebilirsiniz. Ayrıca IsAnsiNullDefault fonksiyonunun özelliğini inceleyerek durumu belirleyebilirsiniz.
ANSI_NULLS { ON | KAPALI }
ONNull değerle yapılan tüm karşılaştırmalar olarak
UNKNOWNdeğerlendirilir.OFFUnicode olmayan değerlerin null değerle karşılaştırılması, her iki değerin
NULLde olup olmadığını değerlendirirTRUE.
Important
SQL Server'ın ANSI_NULLS gelecekteki bir sürümünde her zaman AÇIK olacaktır ve seçeneğini OFF açıkça 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.
deyimi kullanılarak SET ayarlanan bağlantı düzeyi ayarları için ANSI_NULLSvarsayılan veritabanı ayarını geçersiz kılar. ODBC ve OLE DB istemcileri, varsayılan olarak oturum için olarak bir bağlantı düzeyi SET deyimi ayarı ANSI_NULLSON 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.
Important
SET ANSI_NULLS ayrıca hesaplanan sütunlarda veya dizinlenmiş görünümlerde dizin oluştururken veya dizinlerde değişiklik yaparken olarak ayarlanmalıdır ON .
Bu seçeneğin durumunu is_ansi_nulls_on katalog görünümündeki sütunu inceleyerek belirleyebilirsiniz. Ayrıca IsAnsiNullsEnabled fonksiyonunun özelliğini inceleyerek durumu belirleyebilirsiniz.
ANSI_PADDING { ON | KAPALI }
ONDizeler dönüştürmeden önce aynı uzunlukta doldurulur. Ayrıca varchar veya nvarchar veri tipine eklemeden önce aynı uzunluğa dolgu yaptım.
OFFKarakter değerlerinde takip eden boşlukları varchar veya nvarchar sütunlarına ekler. Ayrıca, varbinar sütunlara eklenen ikili değerlerde de geride duran sıfırlar bırakılı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.
Important
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.
null izin veren char(n) ve ikili (n) 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. Null izin vermeyen char(n) ve binary(n) sütunları her zaman sütunun uzunluğuna doldurulur.
deyimi kullanılarak SET 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.
Bu seçeneğin durumunu is_ansi_padding_on katalog görünümündeki sütunu inceleyerek belirleyebilirsiniz. Ayrıca IsAnsiPaddingEnabled fonksiyonunun özelliğini inceleyerek durumu belirleyebilirsiniz.
ANSI_WARNINGS { ON | KAPALI }
ONSı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.
OFFSıfıra bölme gibi koşullar oluştuğunda hiçbir uyarı tetiklenmez ve null değerler döndürülür.
Important
SET ANSI_WARNINGS hesaplanan sütunlarda veya dizinlenmiş görünümlerde dizin oluşturduğunuzda veya dizinlerde değişiklik yaptığınızda olarak ayarlanmalıdır ON .
deyimi kullanılarak SET ayarlanan bağlantı düzeyi ayarları için ANSI_WARNINGSvarsayılan veritabanı ayarını geçersiz kılar. ODBC ve OLE DB istemcileri, varsayılan olarak oturumun bağlantı düzeyi SET deyimi ayarını ANSI_WARNINGSON 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.
Bu seçeneğin durumunu is_ansi_warnings_on katalog görünümündeki sütunu inceleyerek belirleyebilirsiniz. Ayrıca IsAnsiWarningsEnabled fonksiyonunun özelliğini inceleyerek durumu belirleyebilirsiniz.
ARITHABORT { ON | KAPALI }
ONSorgu yürütme sırasında taşma veya sıfıra bölme hatası oluştuğunda sorgu sonlandırılır.
OFFBu 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.
Important
SET ARITHABORT hesaplanan sütunlarda veya dizinlenmiş görünümlerde dizin oluştururken veya dizinlerde değişiklik yaparken (ON) etkinleştirilmelidir.
Bu seçeneğin durumunu is_arithabort_on katalog görünümündeki sütunu inceleyerek belirleyebilirsiniz. Ayrıca IsArithmeticAbortEnabled fonksiyonunun özelliğini inceleyerek durumu belirleyebilirsiniz.
COMPATIBILITY_LEVEL = { 170 | 160 | 150 | 140 | 130 | 120 | 110 | 100 }
Daha fazla bilgi için bkz. alter database uyumluluk düzeyi
CONCAT_NULL_YIELDS_NULL { ON | KAPALI }
ONBirleştirme işleminin sonucu, işlenenlerden biri olduğunda elde edilir
NULLNULL. Örneğin, "This is" ve NULL karakter dizesini birleştirmek"This is" değeri yerine NULL değerine neden olur.OFFNull değer boş karakter dizesi olarak kabul edilir.
Important
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.
deyimi kullanılarak SET 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.
Bu seçeneğin durumunu is_concat_null_yields_null_on katalog görünümündeki sütunu inceleyerek belirleyebilirsiniz. Ayrıca IsNullConcat fonksiyonunun özelliğini inceleyerek durumu belirleyebilirsiniz.
NUMERIC_ROUNDABORT { ON | KAPALI }
ONİfadede duyarlık kaybı oluştuğunda bir hata oluşturulur.
OFFDuyarlık kaybı bir hata iletisi oluşturmaz ve sonuç, sonucun depolandığı sütunun veya değişkenin duyarlığına yuvarlanr.
Important
NUMERIC_ROUNDABORT hesaplanan sütunlarda veya dizinlenmiş görünümlerde dizin oluşturduğunuzda veya dizinlerde değişiklik yaptığınızda olarak ayarlanmalıdır OFF .
Bu seçeneğin durumunu is_numeric_roundabort_on katalog görünümündeki sütunda belirleyebilirsiniz. Ayrıca IsNumericRoundAbortEnabled fonksiyonunun özelliğini inceleyerek durumu belirleyebilirsiniz.
QUOTED_IDENTIFIER { ON | KAPALI }
ONSı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.OFFTanı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 . Veritabanı tanımlayıcıları.
Tablo oluşturulduğunda, QUOTED_IDENTIFIER seçenek her zaman tablonun meta verilerinde ON olarak depolanır. Seçenek, tablo oluşturulduğunda olarak ayarlansa OFF bile depolanır.
deyimi kullanılarak SET ayarlanan bağlantı düzeyi ayarları için QUOTED_IDENTIFIERvarsayılan veritabanı ayarını geçersiz kılar. ODBC ve OLE DB istemcileri, varsayılan olarak için ONbir bağlantı düzeyi SET deyimi ayarı QUOTED_IDENTIFIER 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.
Bu seçeneğin durumunu is_quoted_identifier_on katalog görünümündeki sütunu inceleyerek belirleyebilirsiniz. Ayrıca IsQuotedIdentifiersEnabled fonksiyonunun özelliğini inceleyerek durumu belirleyebilirsiniz.
RECURSIVE_TRIGGERS { ON | KAPALI }
ONAFTER tetikleyicilerinin özyinelemeli olarak tetiklemesine izin verilir.
OFFBu seçeneğin durumunu
is_recursive_triggers_onkatalog görünümündeki sütunu inceleyerek belirleyebilirsiniz. AyrıcaIsRecursiveTriggersEnabledfonksiyonunun özelliğini inceleyerek durumu belirleyebilirsiniz.Note
olarak ayarlandığında
OFFyalnızca doğrudan özyineleme engellenirRECURSIVE_TRIGGERS. Dolaylı özyineleme özelliğini devre dışı bırakmak için iç içe tetikleyiciler sunucusu seçeneğini de 0 olarak ayarlamanız gerekir.
Bu seçeneğin durumunu is_recursive_triggers_on katalog görünümündeki sütunu veya IsRecursiveTriggersEnabled fonksiyonunun özelliğini inceleyerek belirleyebilirsiniz.
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, ALTER DATABASE veritabanında herhangi bir kilit varsa deyimi süresiz olarak bekler. Yalnızca bir sonlandırma yan tümcesi belirtilebilir ve yan tümceleri izler SET .
Note
Tüm veritabanı seçenekleri yan tümcesini kullanmaz WITH <termination> .
ROLLBACK AFTER integer [SECONDS]|ROLLBACK IMMEDIATEBelirtilen 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 | OFF }ONvarsayılan olarak ancak belirli bir noktaya geri yükleme işleminden sonra otomatik olarak olarak ayarlanırOFF. Bu ayarı etkinleştirme hakkında daha fazla bilgi için bkz. Bekletme ilkesini yapılandırma.
Seçenekleri ayarlama
Veritabanı seçenekleri için güncel ayarları almak için sys.databases katalog görünümünü veya DATABASEPROPERTYEX'i kullanın
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.
Examples
A. Veritabanında anlık görüntü yalıtımını etkinleştirme
Aşağıdaki örnek, AdventureWorks2025 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.
| name | snapshot_isolation_state | description |
|---|---|---|
[database_name] |
1 | ON |
B. Değişiklik izlemeyi etkinleştirme, değiştirme veya devre dışı bırakma
Aşağıdaki örnek, AdventureWorks2025 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, AdventureWorks2025 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
- Statistics
- DATABASEPROPERTYEX (Transact-SQL)
- sys.databases
- sys.data_spaces
- sys.database_automatic_tuning_options
- sys.database_automatic_tuning_mode
- ALTER DATABASE (Transact-SQL) uyumluluk düzeyi
- VERİTABANI OLUŞTUR
- Değişiklik İzlemeyi Etkinleştirme ve Devre Dışı Bırakma (SQL Server)
- DROP DATABASE (Transact-SQL)
- İŞLEM YALıTıM DÜZEYINI AYARLA (Transact-SQL)
- sp_configure
- Sorgu Deposu ile iş yüklerini izlemeye yönelik en iyi yöntemler
* Azure Synapse
Analiz *
Azure Synapse Analytics
Syntax
ALTER DATABASE { database_name }
SET
{
<optionspec> [ ,...n ]
}
;
<option_spec>::=
{
<auto_option>
| <db_encryption_option>
| <query_store_options>
| <result_set_caching>
| <snapshot_option>
}
;
<auto_option> ::=
{
AUTO_CREATE_STATISTICS { OFF | ON }
}
<db_encryption_option> ::=
{
ENCRYPTION { ON | OFF }
}
<query_store_option> ::=
{
QUERY_STORE { OFF | ON }
}
<result_set_caching_option> ::=
{
RESULT_SET_CACHING { ON | OFF }
}
<snapshot_option> ::=
{
READ_COMMITTED_SNAPSHOT { ON | OFF }
}
Arguments
database_name
Değiştirilecek veritabanının adı.
< > auto_option ::=
Otomatik seçenekleri denetler.
AUTO_CREATE_STATISTICS { ON | KAPALI }
ONSorgu İ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.
OFFSorgu İ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.
Bu seçeneğin durumunu is_auto_create_stats_on katalog görünümündeki sütunu inceleyerek belirleyebilirsiniz. Ayrıca IsAutoCreateStatistics fonksiyonunun özelliğini inceleyerek durumu belirleyebilirsiniz.
Daha fazla bilgi için, İstatistik bölümünde "Veritabanı çapında istatistik seçeneklerinin kullanımı" bölümüne bakınız.
< > db_encryption_option ::=
Veritabanı şifreleme durumunu denetler.
ŞIFRELEME { ON | KAPALI }
ONVeritabanını şifrelenecek şekilde ayarlar.
OFFVeritabanı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 }
ONSorgu Deposu'na olanak tanır.
OFFSorgu Deposu'nı devre dışı bırakır. OFF varsayılan değerdir.
Note
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.
Note
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 }
ONBu veritabanından döndürülen sorgu sonuç kümelerinin veritabanında önbelleğe alındığını belirtir.
OFFBu 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. Detaylar için sys.dm_pdw_exec_requests kontrol edin.
SELECT request_id, command, result_cache_hit FROM sys.dm_pdw_exec_requests
WHERE request_id = <'Your_Query_Request_ID'>
Note
Sonuç kümesi önbelleğe alma işlemi DECRYPTBYKEY ile 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 ( oturum düzeyinde veya veritabanı düzeyinde) emin olun.
Important
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
Permissions
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 }
ONVeritabanı düzeyinde READ_COMMITTED_SNAPSHOT seçeneğini etkinleştirir.
OFFVeritabanı 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 is_read_committed_snapshot_oniçindeki sys.databases 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.
Permissions
READ_COMMITTED_SNAPSHOT seçeneğini ayarlamak için kullanıcının veritabanında ALTER iznine sahip olması gerekir.
Examples
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
Azure Synapse'i
Analiz
Microsoft Fabric Veri Ambarı
Microsoft Fabric Veri Ambarı
Microsoft Fabric'te Bir Microsoft Fabric Ambarı yönetmek için kullanın ALTER DATABASE ... SET .
Syntax
-- Microsoft Fabric Data Warehouse
ALTER DATABASE { warehouse_name | CURRENT }
SET
{
<option_spec> [ ,...n ]
}
<option_spec> ::=
{
<data_lake_log_publishing>
| <vorder>
| <timestamp>
| <result_set_caching>
| <proactive_statistics_refresh>
}
;
<data_lake_log_publishing> ::=
{
DATA_LAKE_LOG_PUBLISHING { PAUSED | AUTO }
}
<vorder> ::=
{
VORDER = OFF
}
<timestamp> ::=
{
TIMESTAMP = {CURRENT_TIMESTAMP | 'YYYY-MM-DDTHH:MM:SS.SS' }
}
<result_set_caching> ::=
{
RESULT_SET_CACHING { ON | OFF }
}
<proactive_statistics_refresh> ::=
{
PROACTIVE_STATISTICS_REFRESH = { ON | OFF }
}
Arguments
DATA_LAKE_LOG_PUBLISHING
Delta Lake günlüğü yayımlamayı duraklatır veya sürdürür. Daha fazla bilgi için bkz . Delta Lake günlüğü yayımlama.
VORDER
V-Order davranışını devre dışı bırakabilir. Daha fazla bilgi için bkz. Bir ambarda V Siparişi davranışını devre dışı bırakma .
TIMESTAMP
Doku Veri Ambarı'ndaki mevcut bir ambar anlık görüntüsü için zaman damgasını güncelleştirir. Zaman damgası UTC saat diliminde sağlanmalıdır. Daha fazla bilgi için Depo anlık görüntüleri sayfasına bakınız.
RESULT_SET_CACHING
Hedef öğe için sonuç kümesi önbelleğini etkinleştirir veya devre dışı bırakır. Bu özelliğin varsayılan ayarıdır ON. Daha fazla bilgi için bkz . Sonuç kümesi önbelleğe alma.
PROACTIVE_STATISTICS_REFRESH
Şunlar için geçerlidir: Microsoft Fabric'te Microsoft Fabric Ambarı.
Hedef ürün için proaktif istatistik yenilemesini etkinleştirir veya devre dışı bırakır. Varsayılan değer: ON. Çoğu eşya için varsayılan ayarı kullanmalısınız. Daha fazla bilgi için bkz. İstatistikler.
Permissions
Kullanıcının Doku çalışma alanında Yönetici, Üye veya Katkıda Bulunan rollerinin üyesi olması gerekir.
Examples
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ızdaki tüm depolarda Delta Lake Log yayınlama durumunu kontrol etmek için, yeni bir sorgu penceresinde sys.databases sorgulamak için aşağıdaki T-SQL kodunu kullanın:
SELECT [name], [DATA_LAKE_LOG_PUBLISHING_DESC] FROM sys.databases;
B. Sonuç kümesi önbelleğini ayarlama ve denetleme
Aşağıdaki T-SQL komutu, öğenin MyDataWarehouse geçerli SELECT sorgulara sonuç kümesi önbelleği oluşturmaya ve uygulamaya başlamasını sağlar. Daha fazla bilgi için bkz . Sonuç kümesi önbelleğe alma.
ALTER DATABASE [MyDataWarehouse] SET RESULT_SET_CACHING ON;
Ardından is_result_set_caching_on sütunundan sonuç kümesi önbelleğinin etkinleştirildiğini onaylamak için denetlenebilir.
SELECT [name], [is_result_set_caching_on] 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