Aracılığıyla paylaş


ALTER DATABASE SET seçenekleri (Transact-SQL)

Microsoft SQL Server, Azure SQL Veritabanı ve Azure Synapse Analytics'teki veritabanı seçeneklerini ayarlar. Diğer ALTER DATABASE seçenekleri için bkz. ALTER DATABASE.

Not

ALTER DATABASE ile bazı seçenekleri ayarlamak için özel veritabanı erişimi gerekebilir. ALTER DATABASE deyimi zamanında tamamlanmazsa, veritabanındaki diğer oturumların ALTER DATABASE oturumunu engelleyip engellemediğini denetleyin.

Söz dizimi kuralları hakkında daha fazla bilgi için bkz.Transact-SQL söz dizimi kuralları.

Ürün seçin

Aşağıdaki satırda, ilgilendiğiniz ürün adını seçin. Bunu yaptığınızda, seçtiğiniz ürün için uygun olan bu web sayfasında farklı içerik görüntülenir.

* SQL Server *  

SQL Veritabanı

SQL Yönetilen Örneği

Azure Synapse'i
Analiz

Microsoft Fabric

 

SQL Server

Veritabanı yansıtma, Always On kullanılabilirlik grupları ve uyumluluk düzeyleri SET seçeneklerdir, ancak uzunlukları nedeniyle ayrı makalelerde açıklanmıştır. Daha fazla bilgi için bkz. ALTER DATABASE Database Mirroring, ALTER DATABASE SET HADRve ALTER DATABASE uyumluluk düzeyi.

Veritabanı kapsamlı yapılandırmalar, tek tek veritabanı düzeyinde çeşitli veritabanı yapılandırmaları ayarlamak için kullanılır. Daha fazla bilgi için bkz. ALTER DATABASE SCOPED CONFIGURATION.

Not

Birçok veritabanı kümesi seçeneği, SET deyimleri kullanılarak geçerli oturum için yapılandırılabilir ve genellikle bağlandığında uygulamalar tarafından yapılandırılır. Oturum düzeyi ayar seçenekleri ALTER DATABASE SET değerlerini geçersiz kılar. Aşağıdaki bölümlerde açıklanan veritabanı seçenekleri, diğer ayar seçeneği değerlerini açıkça sağlamayan oturumlar için ayarlayabileceğiniz değerlerdir.

Sözdizimi

ALTER DATABASE { database_name | CURRENT }
SET
{
    <option_spec> [ ,...n ] [ WITH <termination> ]
}

<option_spec> ::=
{
    <accelerated_database_recovery>
  | <auto_option>
  | <automatic_tuning_option>
  | <change_tracking_option>
  | <containment_option>
  | <cursor_option>
  | <database_mirroring_option>
  | <date_correlation_optimization_option>
  | <db_encryption_option>
  | <db_state_option>
  | <db_update_option>
  | <db_user_access_option>
  | <delayed_durability_option>
  | <external_access_option>
  | FILESTREAM ( <FILESTREAM_option> )
  | <HADR_options>
  | <mixed_page_allocation_option>
  | <parameterization_option>
  | <query_store_options>
  | <recovery_option>
  | <remote_data_archive_option>
  | <persistent_log_buffer_option>
  | <service_broker_option>
  | <snapshot_option>
  | <sql_option>
  | <suspend_for_snapshot_backup>
  | <target_recovery_time_option>
  | <termination>
  | <temporal_history_retention>
  | <data_retention_policy>
}
;

<accelerated_database_recovery> ::=
{
    ACCELERATED_DATABASE_RECOVERY = { ON | OFF }
     [ ( PERSISTENT_VERSION_STORE_FILEGROUP = { filegroup name } ) ];
}

<auto_option> ::=
{
    AUTO_CLOSE { ON | OFF }
  | AUTO_CREATE_STATISTICS { OFF | ON [ ( INCREMENTAL = { ON | OFF } ) ] }
  | AUTO_SHRINK { ON | OFF }
  | AUTO_UPDATE_STATISTICS { ON | OFF }
  | AUTO_UPDATE_STATISTICS_ASYNC { ON | OFF }
}

<automatic_tuning_option> ::=
{
    AUTOMATIC_TUNING ( FORCE_LAST_GOOD_PLAN = { DEFAULT | ON | OFF } )
}

<change_tracking_option> ::=
{
    CHANGE_TRACKING
   {
       = OFF
     | = ON [ ( <change_tracking_option_list > [,...n] ) ]
     | ( <change_tracking_option_list> [,...n] )
   }
}

<change_tracking_option_list> ::=
{
   AUTO_CLEANUP = { ON | OFF }
 | CHANGE_RETENTION = retention_period { DAYS | HOURS | MINUTES }
}

<containment_option> ::=
   CONTAINMENT = { NONE | PARTIAL }

<cursor_option> ::=
{
    CURSOR_CLOSE_ON_COMMIT { ON | OFF }
  | CURSOR_DEFAULT { LOCAL | GLOBAL }
}

<database_mirroring_option>
  ALTER DATABASE Database Mirroring

<date_correlation_optimization_option> ::=
    DATE_CORRELATION_OPTIMIZATION { ON | OFF }

<db_encryption_option> ::=
    ENCRYPTION { ON | OFF | SUSPEND | RESUME }

<db_state_option> ::=
    { ONLINE | OFFLINE | EMERGENCY }

<db_update_option> ::=
    { READ_ONLY | READ_WRITE }

<db_user_access_option> ::=
    { SINGLE_USER | RESTRICTED_USER | MULTI_USER }

<delayed_durability_option> ::=
    DELAYED_DURABILITY = { DISABLED | ALLOWED | FORCED }

<external_access_option> ::=
{
    DB_CHAINING { ON | OFF }
  | TRUSTWORTHY { ON | OFF }
  | DEFAULT_FULLTEXT_LANGUAGE = { <lcid> | <language name> | <language alias> }
  | DEFAULT_LANGUAGE = { <lcid> | <language name> | <language alias> }
  | NESTED_TRIGGERS = { OFF | ON }
  | TRANSFORM_NOISE_WORDS = { OFF | ON }
  | TWO_DIGIT_YEAR_CUTOFF = { 1753, ..., 2049, ..., 9999 }
}

<FILESTREAM_option> ::=
{
    NON_TRANSACTED_ACCESS = { OFF | READ_ONLY | FULL
  | DIRECTORY_NAME = <directory_name>
}

<HADR_options> ::=
    ALTER DATABASE SET HADR

<mixed_page_allocation_option> ::=
    MIXED_PAGE_ALLOCATION { OFF | ON }

<parameterization_option> ::=
    PARAMETERIZATION { SIMPLE | FORCED }

<query_store_options> ::=
{
    QUERY_STORE
    {
          = OFF [ ( FORCED ) ]
        | = ON [ ( <query_store_option_list> [,...n] ) ]
        | ( < query_store_option_list> [,...n] )
        | CLEAR [ ALL ]
    }
}

<query_store_option_list> ::=
{
      OPERATION_MODE = { READ_WRITE | READ_ONLY }
    | CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = number )
    | DATA_FLUSH_INTERVAL_SECONDS = number
    | MAX_STORAGE_SIZE_MB = number
    | INTERVAL_LENGTH_MINUTES = number
    | SIZE_BASED_CLEANUP_MODE = { AUTO | OFF }
    | QUERY_CAPTURE_MODE = { ALL | AUTO | CUSTOM | NONE }
    | MAX_PLANS_PER_QUERY = number
    | WAIT_STATS_CAPTURE_MODE = { ON | OFF }
    | QUERY_CAPTURE_POLICY = ( <query_capture_policy_option_list> [,...n] )
}

<query_capture_policy_option_list> :: =
{
      STALE_CAPTURE_POLICY_THRESHOLD = number { DAYS | HOURS }
    | EXECUTION_COUNT = number
    | TOTAL_COMPILE_CPU_TIME_MS = number
    | TOTAL_EXECUTION_CPU_TIME_MS = number
}

<recovery_option> ::=
{
    RECOVERY { FULL | BULK_LOGGED | SIMPLE }
  | TORN_PAGE_DETECTION { ON | OFF }
  | PAGE_VERIFY { CHECKSUM | TORN_PAGE_DETECTION | NONE }
}

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

<persistent_log_buffer_option> ::=
{
    PERSISTENT_LOG_BUFFER 
    {
          = ON (DIRECTORY_NAME= 'path-to-directory-on-a-DAX-volume')
        | = OFF
    }
}

<service_broker_option> ::=
{
    ENABLE_BROKER
  | DISABLE_BROKER
  | NEW_BROKER
  | ERROR_BROKER_CONVERSATIONS
  | HONOR_BROKER_PRIORITY { ON | OFF }
}

<snapshot_option> ::=
{
    ALLOW_SNAPSHOT_ISOLATION { ON | OFF }
  | READ_COMMITTED_SNAPSHOT { ON | OFF }
  | MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT = { ON | OFF }
}

<sql_option> ::=
{
    ANSI_NULL_DEFAULT { ON | OFF }
  | ANSI_NULLS { ON | OFF }
  | ANSI_PADDING { ON | OFF }
  | ANSI_WARNINGS { ON | OFF }
  | ARITHABORT { ON | OFF }
  | COMPATIBILITY_LEVEL = { 160 | 150 | 140 | 130 | 120 | 110 | 100 }
  | CONCAT_NULL_YIELDS_NULL { ON | OFF }
  | NUMERIC_ROUNDABORT { ON | OFF }
  | QUOTED_IDENTIFIER { ON | OFF }
  | RECURSIVE_TRIGGERS { ON | OFF }
}

<suspend_for_snapshot_backup> ::=
    SET SUSPEND_FOR_SNAPSHOT_BACKUP = { ON | OFF } [ ( MODE = COPY_ONLY ) ]

<target_recovery_time_option> ::=
    TARGET_RECOVERY_TIME = target_recovery_time { SECONDS | MINUTES }

<termination>::=
{
    ROLLBACK AFTER number [ SECONDS ]
  | ROLLBACK IMMEDIATE
  | NO_WAIT
}

<temporal_history_retention> ::=
    TEMPORAL_HISTORY_RETENTION { ON | OFF }

<data_retention_policy> ::=
    DATA_RETENTION { ON | OFF }

Bağımsız değişken

database_name

Değiştirilecek veritabanının adı.

GEÇERLİ

için geçerlidir: SQL Server (SQL Server 2012 (11.x) ile başlayarak)

Eylemi geçerli veritabanında çalıştırır. CURRENT tüm bağlamlardaki tüm seçenekler için desteklenmez. CURRENT başarısız olursa veritabanı adını belirtin.

<accelerated_database_recovery> ::=

için geçerlidir: SQL Server (SQL Server 2019 (15.x) ile başlayarak)

hızlandırılmış veritabanı kurtarma (ADR)etkinleştirir. ADR, SQL Server 2019 (15.x) ve sonraki sürümlerde varsayılan olarak KAPALI olarak ayarlanır. Bu söz dizimini kullanarak, Kalıcı Sürüm Deposu (PVS) verileri için belirli bir dosya grubu belirleyebilirsiniz. Hiçbir dosya grubu belirtilmezse, PVS PRIMARY dosya grubunda depolanır. Daha fazla bilgi için bkz. hızlandırılmış veritabanı kurtarmayönetme .

<auto_option> ::=

Otomatik seçenekleri denetler.

AUTO_CLOSE { ON | KAPALI }

  • ÜZERİNDE

    Veritabanı temiz bir şekilde kapatılır ve son kullanıcı çıktıktan sonra kaynakları serbest bırakılır.

    Kullanıcı veritabanını yeniden kullanmaya çalıştığında veritabanı otomatik olarak yeniden açılır. Örneğin, bir kullanıcı bir USE database_name deyimini çıkardığında bu davranış oluşur. veritabanı, AUTO_CLOSE AÇILDI olarak ayarlandığında temiz bir şekilde kapanabilir. Bu durumda veritabanı, veritabanı Altyapısı bir sonraki yeniden başlatıldığında kullanıcı veritabanını kullanmaya çalışana kadar yeniden açılmaz.

    Veritabanı kapatıldıktan sonra, bir uygulama veritabanını kullanmayı bir sonraki denemesinde önce veritabanının açılması ve ardından durum çevrimiçi olarak değiştirilmesi gerekir. Bu işlem biraz zaman alabilir ve uygulama zaman aşımlarına neden olabilir.

  • KAPALI

    Son kullanıcı çıktıktan sonra veritabanı açık kalır.

    AUTO_CLOSE seçeneği, veritabanı dosyalarının normal dosyalar olarak yönetilmesine izin verdiğinden masaüstü veritabanları için kullanışlıdır. Bunlar taşınabilir, kopyalanabilir ve yedeklenebilir, hatta diğer kullanıcılara e-postayla gönderilebilir. AUTO_CLOSE işlemi zaman uyumsuzdur; veritabanını tekrar tekrar açmak ve kapatmak performansı düşürmez.

Not

AUTO_CLOSE seçeneği, kapsanan bir veritabanında veya SQL Veritabanı'nda kullanılamaz. sys.databases katalog görünümündeki is_auto_close_on sütununu veya DATABASEPROPERTYEX işlevinin IsAutoClose özelliğini inceleyerek bu seçeneğin durumunu belirleyebilirsiniz.

AUTO_CLOSE ON olarak ayarlandığında, sys.databases katalog görünümündeki bazı sütunlar ve veritabanı verileri almak için kullanılamadığından DATABASEPROPERTYEX işlevi NULL döndürür. 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 }

  • ÜZERİNDE

    Sorgu İyileştiricisi, sorgu planlarını ve sorgu performansını geliştirmek için gerektiğinde sorgu koşullarındaki tek sütunlarda istatistikler oluşturur. Bu tek sütunlu istatistikler, Sorgu İyileştiricisi sorguları derlediğinde oluşturulur. Tek sütunlu istatistikler yalnızca mevcut istatistik nesnesinin ilk sütunu olmayan sütunlarda oluşturulur.

    Varsayılan ayar ON'dır. Çoğu veritabanı için varsayılan ayarı kullanmanızı öneririz.

  • KAPALI

    Sorgu İyileştiricisi, sorgu derlerken sorgu koşullarında tek sütunlarda istatistik oluşturmaz. Bu seçeneğin KAPALI olarak ayarlanması, yetersiz sorgu planlarına ve düşük sorgu performansına neden olabilir.

sys.databases katalog görünümündeki is_auto_create_stats_on sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsAutoCreateStatistics özelliğini inceleyerek de durumu belirleyebilirsiniz.

Daha fazla bilgi için İstatistikler'ndeki "Veritabanı genelinde istatistik seçeneklerini kullanma" bölümüne bakın.

ARTıMLı = ON | KAPALI

için geçerlidir: SQL Server (SQL Server 2014 (12.x) ile başlayarak) ve Azure SQL Veritabanı

AUTO_CREATE_STATISTICS AÇıK olarak ayarlayın ve ARTıMLı'yı ON olarak ayarlayın. Bu, artımlı istatistikler desteklendiği her durumda otomatik olarak artımlı olarak oluşturulan istatistikleri ayarlar. Varsayılan değer KAPALI'dır. Daha fazla bilgi için bkz. create STATISTICS.

AUTO_SHRINK { ON | KAPALI }

  • ÜZERİNDE

    Veritabanı dosyaları düzenli aralıklarla daraltma için adaydır. Belirli bir gereksiniminiz yoksa AUTO_SHRINK veritabanı seçeneğini ON olarak ayarlamayın. Daha fazla bilgi için bkz. veritabanını küçültme.

    Hem veri dosyaları hem de günlük dosyaları otomatik olarak küçültülebilir. AUTO_SHRINK işlem günlüğünün boyutunu yalnızca veritabanını SIMPLE kurtarma modeli olarak ayarlarsanız veya günlüğü yedeklerseniz azaltır. AUTO_SHRINK KAPALI olarak ayarladığınızda, kullanılmayan alan için düzenli denetimler sırasında veritabanı dosyaları otomatik olarak küçültülür.

    dosyanın yüzde 25'inden fazlası kullanılmayan alan içerdiğinde AUTO_SHRINK seçeneği dosyaları küçültür. Dosyayı iki boyuttan birine küçültür (hangisi daha büyükse):

    • Dosyanın yüzde 25'inin kullanılmayan alan boyutu
    • Dosyanın oluşturulduğu zaman boyutu

    Salt okunur veritabanını küçültemezsiniz.

  • KAPALI

    Kullanılmayan alan için düzenli aralıklarla yapılan denetimler sırasında veritabanı dosyaları otomatik olarak küçülmez.

sys.databases katalog görünümündeki is_auto_shrink_on sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsAutoShrink özelliğini inceleyerek de durumu belirleyebilirsiniz.

Not

AUTO_SHRINK seçeneği, Kapsanan Veritabanında kullanılamaz.

AUTO_UPDATE_STATISTICS { ON | KAPALI }

  • ÜZERİNDE

    Sorgu İyileştiricisi'nin bir sorgu tarafından kullanıldığında ve güncel olma durumlarında istatistikleri güncelleştirdiğini belirtir. Ekleme, güncelleştirme, silme veya birleştirme işlemleri tablodaki veya dizinli görünümdeki veri dağıtımını değiştirdikten sonra istatistikler güncel değildir. Sorgu İyileştiricisi, son istatistik güncelleştirmelerinden bu yana yapılan veri değişikliklerinin sayısını sayarak ve değişikliklerin sayısını bir eşikle karşılaştırarak istatistiklerin ne zaman güncel olabileceğini belirler. Eşik, tablodaki veya dizinli görünümdeki satır sayısını temel alır.

    Sorgu İyileştiricisi, sorgu derlemeden ve önbelleğe alınmış bir sorgu planı çalıştırmadan önce güncel olmayan istatistikleri denetler. Sorgu İyileştiricisi, hangi istatistiklerin güncel olmayabileceğini belirlemek için sorgu koşulundaki sütunları, tabloları ve dizine alınan görünümleri kullanır. Sorgu İyileştirici bu bilgileri bir sorgu derlemeden önce belirler. Önbelleğe alınmış bir sorgu planını çalıştırmadan önce Veritabanı Altyapısı, sorgu planının up-totarih istatistiklerine başvurduğunu doğrular.

    AUTO_UPDATE_STATISTICS seçeneği dizinler için oluşturulan istatistikler, sorgu koşulundaki tek sütunlar ve CREATE STATISTICS deyimi kullanılarak oluşturulan istatistikler için geçerlidir. Bu seçenek filtrelenmiş istatistikler için de geçerlidir.

    Varsayılan değer ON'dır. Çoğu veritabanı için varsayılan ayarı kullanmanızı öneririz.

    İstatistiklerin zaman uyumlu mu yoksa zaman uyumsuz olarak mı güncelleştirileceğini belirtmek için AUTO_UPDATE_STATISTICS_ASYNC seçeneğini kullanın.

  • KAPALI

    Sorgu İyileştirici'nin bir sorgu tarafından kullanıldığında istatistikleri güncelleştirmediğini belirtir. Sorgu İyileştiricisi ayrıca güncel olmayan istatistikleri güncelleştirmez. Bu seçeneğin KAPALI olarak ayarlanması, yetersiz sorgu planlarına ve düşük sorgu performansına neden olabilir.

sys.databases katalog görünümündeki is_auto_update_stats_on sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsAutoUpdateStatistics özelliğini inceleyerek de durumu belirleyebilirsiniz.

Daha fazla bilgi için İstatistikler'ndeki "Veritabanı genelinde istatistik seçeneklerini kullanma" bölümüne bakın.

AUTO_UPDATE_STATISTICS_ASYNC { ON | KAPALI }

  • ÜZERİNDE

    AUTO_UPDATE_STATISTICS seçeneği için istatistik güncelleştirmelerinin zaman uyumsuz olduğunu belirtir. Sorgu İyileştiricisi, sorguları derlemeden önce istatistik güncelleştirmelerinin tamamlanmasını beklemez.

    AUTO_UPDATE_STATISTICS AÇıK olarak ayarlanmadığı sürece bu seçeneğiN ON olarak ayarlanmasının hiçbir etkisi olmaz.

    Varsayılan olarak, AUTO_UPDATE_STATISTICS_ASYNC seçeneği KAPALI'dır ve Sorgu İyileştiricisi istatistikleri zaman uyumlu olarak güncelleştirir.

  • KAPALI

    AUTO_UPDATE_STATISTICS seçeneği için istatistik güncelleştirmelerinin zaman uyumlu olduğunu belirtir. Sorgu İyileştiricisi, sorguları derlemeden önce istatistik güncelleştirmelerinin tamamlanmasını bekler.

    Not

    AUTO_UPDATE_STATISTICS AÇıK olarak ayarlanmadığı sürece bu seçeneği KAPALI olarak ayarlamanın hiçbir etkisi olmaz.

sys.databases katalog görünümündeki is_auto_update_stats_async_on sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz.

Zaman uyumlu veya zaman uyumsuz istatistik güncelleştirmelerinin ne zaman kullanılacağını açıklayan daha fazla bilgi için, İstatistikler'deki "İstatistik seçenekleri" bölümüne bakın.

<automatic_tuning_option> ::=

için geçerlidir: SQL Server (SQL Server 2017 (14.x) ile başlayarak)

FORCE_LAST_GOOD_PLAN Otomatik ayarlama seçeneğini etkinleştirir veya devre dışı bırakır. bu seçeneğin durumunu sys.database_automatic_tuning_optionsgörünümünde görüntüleyebilirsiniz.

FORCE_LAST_GOOD_PLAN = { DEFAULT | ON | KAPALI }

  • TEMERRÜT

    SQL Server için varsayılan değer KAPALI'dır.

  • ÜZERİNDE

    Veritabanı Altyapısı, yeni sorgu planının performans regresyonlarına neden olduğu Transact-SQL sorgularda bilinen son iyi planı otomatik olarak zorlar. Veritabanı Altyapısı, zorlamalı planla Transact-SQL sorgunun sorgu performansını sürekli izler.

    Performans kazançları varsa Veritabanı Altyapısı bilinen son iyi planı kullanmaya devam eder. Performans kazanımları algılanmamışsa Veritabanı Altyapısı yeni bir sorgu planı oluşturur. Sorgu Deposu etkinleştirilmemişse veya Sorgu Deposu Okuma-Yazma modunda değilse deyimi başarısız olur.

  • KAPALI

    Veritabanı Altyapısı, sys.dm_db_tuning_recommendations görünümde sorgu planı değişikliklerinin neden olduğu olası sorgu performansı regresyonlarını bildirir. Ancak bu öneriler otomatik olarak uygulanmaz. Kullanıcılar, görünümde gösterilen Transact-SQL betikleri uygulayarak etkin önerileri izleyebilir ve tanımlanan sorunları çözebilir. Varsayılan değer KAPALI'dır.

<change_tracking_option> ::=

için geçerlidir: SQL Server ve Azure SQL Veritabanı

Değişiklik izleme seçeneklerini denetler. Değişiklik izlemeyi etkinleştirebilir, seçenekleri ayarlayabilir, seçenekleri değiştirebilir ve değişiklik izlemeyi devre dışı bırakabilirsiniz. Örnekler için bu makalenin devamında yer alan Örnekler bölümüne bakın.

  • ÜZERİNDE

    Veritabanı için değişiklik izlemeyi etkinleştirir. Değişiklik izlemeyi etkinleştirdiğinizde, AUTO CLEANUP ve CHANGE RETENTION seçeneklerini de ayarlayabilirsiniz.

  • AUTO_CLEANUP = { ON | KAPALI }

    • ÜZERİNDE

      Değişiklik izleme bilgileri belirtilen saklama süresinden sonra otomatik olarak kaldırılır.

    • KAPALI

      Değişiklik izleme verileri veritabanından otomatik olarak kaldırılmaz.

  • CHANGE_RETENTION = retention_period { DAYS | SAAT | DAKİkA }

    Değişiklik izleme bilgilerini veritabanında tutmak için en düşük süreyi belirtir. Veriler yalnızca AUTO_CLEANUP değeri AÇILDI olduğunda kaldırılır.

    retention_period, bekletme süresinin sayısal bileşenini belirten bir tamsayıdır.

    Varsayılan saklama süresi2 gün . En düşük saklama süresi 1 dakikadır. Varsayılan bekletme türüDAYS'dır.

  • KAPALI Veritabanı için değişiklik izlemeyi devre dışı bırakır. Veritabanında değişiklik izlemeyi devre dışı bırakmadan önce tüm tablolarda değişiklik izlemeyi devre dışı bırakın.

<containment_option> ::=

için geçerlidir: SQL Server (SQL Server 2012 (11.x) ile başlayarak)

Veritabanı kapsama seçeneklerini denetler.

KAPSAMA = { YOK | PARTIAL}

  • Hiç kimse

    Veritabanı, kapsanan bir veritabanı değildir.

  • KISMİ

    Veritabanı, kapsanan bir veritabanıdır. Veritabanında çoğaltma, değişiklik verisi yakalama veya değişiklik izleme etkinse veritabanı kapsamasını kısmi olarak ayarlama işlemi başarısız olur. Hata denetimi bir hatadan sonra durur. Kapsanan veritabanları hakkında daha fazla bilgi için bkz. Kapsanan Veritabanları.

<cursor_option> ::=

İmleç seçeneklerini denetler.

CURSOR_CLOSE_ON_COMMIT { ON | KAPALI }

  • ÜZERİNDE

    bir işlemi işlediğiniz veya geri aldığınızda açılan tüm imleçler kapatılır.

  • KAPALI

    bir işlem işlendiğinde imleçler açık kalır; bir işlemi geri döndürmek, DUYARSIZ veya STATIK olarak tanımlanan imleçler dışında tüm imleçleri kapatır.

SET deyimi kullanılarak ayarlanan bağlantı düzeyi ayarları, CURSOR_CLOSE_ON_COMMIT için varsayılan veritabanı ayarını geçersiz kılar. ODBC ve OLE DB istemcileri, oturum için varsayılan olarak OFF olarak CURSOR_CLOSE_ON_COMMIT bir bağlantı düzeyi SET deyimi ayarı gönderir. SQL Server örneğine bağlandığınızda istemciler deyimini çalıştırır. Daha fazla bilgi için bkz. set CURSOR_CLOSE_ON_COMMIT.

sys.databases katalog görünümündeki is_cursor_close_on_commit_on sütununu veya DATABASEPROPERTYEX işlevinin IsCloseCursorsOnCommitEnabled özelliğini inceleyerek bu seçeneğin durumunu belirleyebilirsiniz.

CURSOR_DEFAULT { YEREL | GLOBAL }

için geçerlidir: SQL Server

İmleç kapsamının LOCAL veya GLOBAL kullanıp kullanmadığını denetler.

  • YÖRESEL

    YEREL'i belirttiğinizde ve imleci genel olarak tanımlamadığınızda, imlecin kapsamı yereldir. Özellikle, kapsam imleci oluşturduğunuz toplu iş, saklı yordam veya tetikleyici için yereldir. İmleç adı yalnızca bu kapsamda geçerlidir.

    toplu iş, saklı yordam veya tetikleyicideki yerel imleç değişkenleri ya da bir saklı yordam OUTPUT parametresi tarafından imleç başvurulabilir. Toplu işlem, saklı yordam veya tetikleyici sona erdiğinde imleç örtük olarak serbest bırakılır. bir OUTPUT parametresinde geri geçirilmediği sürece imleç serbest bırakılır. İmleç output parametresinde geri geçirilebilir. İmleç bu şekilde geri geçerse, imlece başvuran son değişken serbest bırakıldığında veya kapsam dışına çıktığında imleç serbest bırakılır.

  • KÜRESEL

    GENEL belirtildiğinde ve bir imleç oluşturulduğunda YEREL olarak tanımlanmadığında, imlecin kapsamı bağlantı için geneldir. İmleç adına, bağlantı tarafından yürütülen herhangi bir saklı yordamda veya toplu işlemde başvurulabilir.

    İmleç örtük olarak yalnızca bağlantı kesildiğinde serbest bırakılır. Daha fazla bilgi için bkz. DECLARE CURSOR.

sys.databases katalog görünümündeki is_local_cursor_default sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsLocalCursorsDefault özelliğini inceleyerek de durumu belirleyebilirsiniz.

<temporal_history_retention> ::=

TEMPORAL_HISTORY_RETENTION { ON | KAPALI }

Varsayılan olarak AÇILDI, ancak belirli bir noktaya geri yükleme işleminden sonra otomatik olarak KAPALI olarak ayarlanır. Bu ayarı etkinleştirme hakkında daha fazla bilgi için bkz. Bekletme ilkesini yapılandırma.

  • ÜZERİNDE

    Temerrüt. Zamansal tablo bekletme ilkesini etkinleştirir. Daha fazla bilgi için bkz. sistem tabanlı zamana bağlı tablolarda geçmiş verilerin elde tutulmasını yönetme.

  • KAPALI

    Zamana bağlı geçmiş saklama ilkesi gerçekleştirmeyin.

<data_retention_policy> ::=

için geçerlidir: Yalnızca Azure SQL Edge.

DATA_RETENTION { ON | KAPALI }

  • ÜZERİNDE

    Veritabanında Veri Saklama ilkesi tabanlı temizlemeyi etkinleştirir.

  • KAPALI

    Veritabanında Veri Saklama ilkesi tabanlı temizlemeyi devre dışı bırakır.

<database_mirroring>

için geçerlidir: SQL Server

Bağımsız değişken açıklamaları için bkz. ALTER DATABASE Database Mirroring.

<date_correlation_optimization_option> ::=

için geçerlidir: SQL Server

date_correlation_optimization seçeneğini denetler.

DATE_CORRELATION_OPTIMIZATION { ON | KAPALI }

  • ÜZERİNDE

    SQL Server, YABANCı ANAHTAR kısıtlamasının veritabanındaki iki tabloyu birbirine bağladığı ve tabloların datetime sütunları bağıntı istatistikleri tutar.

  • KAPALI

    Bağıntı istatistikleri korunmaz.

DATE_CORRELATION_OPTIMIZATION ON olarak ayarlamak için ALTER DATABASE deyimini yürüten bağlantı dışında veritabanına etkin bağlantı olmaması gerekir. Daha sonra birden çok bağlantı desteklenir.

Bu seçeneğin geçerli ayarı, sys.databases katalog görünümündeki is_date_correlation_on sütunu incelenerek belirlenebilir.

<db_encryption_option> ::=

Veritabanı şifreleme durumunu denetler.

ŞIFRELEME { ON | KAPALI | ASKıYA ALMA | RESUME }

  • ÜZERİNDE

    Veritabanını şifrelenecek şekilde ayarlar.

  • KAPALI

    Veritabanını şifrelenmemesi için ayarlar.

  • ASMAK

    için geçerlidir: SQL Server (SQL Server 2019 (15.x) ile başlayarak)

    Saydam veri şifrelemesi etkinleştirildikten veya devre dışı bırakıldıktan veya şifreleme anahtarı değiştirildikten sonra şifreleme taramasını duraklatmak için kullanılabilir.

  • ÖZGEÇMİŞ

    için geçerlidir: SQL Server (SQL Server 2019 (15.x) ile başlayarak)

    Önceden duraklatılmış bir şifreleme taramasını sürdürmek için kullanılabilir.

Veritabanı şifrelemesi hakkında daha fazla bilgi için bkz. Saydam veri şifrelemesi (TDE)ve Azure SQL Veritabanı, Azure SQL Yönetilen Örneği ve Azure Synapse Analyticsiçin saydam veri şifrelemesi.

Şifreleme veritabanı düzeyinde etkinleştirildiğinde, tüm dosya grupları şifrelenir. Tüm yeni dosya grupları şifrelenmiş özelliği devralır. Veritabanındaki herhangi bir dosya grubu SALT OKUNUR olarak ayarlanırsa, veritabanı şifreleme işlemi başarısız olur.

sys.dm_database_encryption_keys dinamik yönetim görünümünü kullanarak veritabanının şifreleme durumunu ve şifreleme taramasının durumunu görebilirsiniz.

<db_state_option> ::=

için geçerlidir: SQL Server

Veritabanının durumunu denetler.

  • ÇEVRİMDIŞI

    Veritabanı kapatılır, temiz bir şekilde kapatılır ve çevrimdışı olarak işaretlenir. Veritabanı çevrimdışıyken değiştirilemez.

  • ÇEVRİMİÇİ

    Veritabanı açık ve kullanılabilir.

  • ACİL

    Veritabanı READ_ONLY olarak işaretlenir, günlük devre dışı bırakılır ve erişim sysadmin sabit sunucu rolünün üyeleriyle sınırlıdır. ACIL DURUM öncelikli olarak sorun giderme amacıyla kullanılır. Örneğin, bozuk bir günlük dosyası nedeniyle şüpheli olarak işaretlenen bir veritabanı EMERGENCY durumuna ayarlanabilir. Bu ayar, sistem yöneticisinin veritabanına salt okunur erişimini etkinleştirebilir. Veritabanını yalnızca sysadmin sabit sunucu rolünün üyeleri EMERGENCY durumuna ayarlayabilir.

Bir veritabanını çevrimdışı veya acil durum durumuna değiştirmek için konu veritabanı için ALTER DATABASE izni gerekir ve sunucu düzeyi, veritabanını çevrimdışından çevrimiçine taşıma izni ALTER ANY DATABASE.

sys.databases katalog görünümündeki state ve state_desc sütunlarını inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin Status özelliğini inceleyerek de durumu belirleyebilirsiniz. Daha fazla bilgi için bkz. Veritabanı Durumları.

GERI YÜKLEME olarak işaretlenen bir veritabanı ÇEVRİmİÇİ, ÇEVRİmİÇİ veya ACIL DURUM olarak ayarlanamaz. Veritabanı, etkin bir geri yükleme işlemi sırasında veya veritabanının veya günlük dosyasının geri yükleme işlemi bozuk bir yedekleme dosyası nedeniyle başarısız olduğunda GERI YÜKLEME durumunda olabilir.

<db_update_option> ::=

Veritabanında güncelleştirmelere izin verilip verilmeyeceğini denetler.

  • READ_ONLY

    Kullanıcılar veritabanındaki verileri okuyabilir ancak değiştiremez.

    Not

    Sorgu performansını geliştirmek için veritabanını READ_ONLY olarak ayarlamadan önce istatistikleri güncelleştirin. Veritabanı READ_ONLY olarak ayarlandıktan sonra ek istatistikler gerekiyorsa, Veritabanı Altyapısı tempdb sistem veritabanında istatistikler oluşturur. Salt okunur veritabanı istatistikleri hakkında daha fazla bilgi için bkz. İstatistikler.

  • READ_WRITE

    Veritabanı okuma ve yazma işlemleri için kullanılabilir.

Bu durumu değiştirmek için veritabanına özel erişime sahip olmanız gerekir. Daha fazla bilgi için SINGLE_USER yan tümcesine bakın.

Not

Azure SQL Veritabanı federasyon veritabanlarında SET { READ_ONLY | READ_WRITE } devre dışı bırakılır.

<db_user_access_option> ::=

Veritabanına kullanıcı erişimini denetler.

SINGLE_USER

için geçerlidir: SQL Server

Veritabanına aynı anda yalnızca bir kullanıcının erişebileceğini belirtir. SINGLE_USER belirtirseniz ve başka bir kullanıcı veritabanına bağlanırsa, tüm kullanıcılar belirtilen veritabanıyla bağlantıyı kesene kadar ALTER DATABASE deyimi engellenir. Bu davranışı geçersiz kılmak için WITH <sonlandırma> yan tümcesine bakın.

Seçeneği ayarlayan kullanıcı oturumu kapatsa bile veritabanı SINGLE_USER modunda kalır. Bu noktada, veritabanına farklı bir kullanıcı ancak yalnızca bir kullanıcı bağlanabilir.

Veritabanını SINGLE_USER olarak ayarlamadan önce AUTO_UPDATE_STATISTICS_ASYNC seçeneğinin KAPALI olarak ayarlandığını doğrulayın. ON olarak ayarlandığında, istatistikleri güncelleştirmek için kullanılan arka plan iş parçacığı veritabanına karşı bir bağlantı alır ve veritabanına tek kullanıcı modunda erişemezsiniz. Bu seçeneğin durumunu görüntülemek için sys.databases katalog görünümündeki is_auto_update_stats_async_on sütununu sorgula. Seçenek ON olarak ayarlandıysa aşağıdaki görevleri gerçekleştirin:

  1. AUTO_UPDATE_STATISTICS_ASYNC KAPALI olarak ayarlayın.

  2. sys.dm_exec_background_job_queue dinamik yönetim görünümünü sorgulayarak etkin zaman uyumsuz istatistik işlerini denetleyin.

Etkin işler varsa, işlerin tamamlanmasına izin verin veya KILL STATS JOBkullanarak bunları el ile sonlandırın.

RESTRICTED_USER

Veritabanına bağlanmak için yalnızca db_owner sabit veritabanı rolünün üyelerine ve dbcreator ve sysadmin sabit sunucu rollerine izin verir. RESTRICTED_USER sayısını sınırlamaz. ALTER DATABASE deyiminin sonlandırma yan tümcesi tarafından belirtilen zaman çerçevesini kullanarak veritabanıyla tüm bağlantıların bağlantısını kesin. Veritabanı RESTRICTED_USER durumuna geçtikten sonra, nitelenmemiş kullanıcıların bağlantı girişimleri reddedilir.

MULTI_USER

Veritabanına bağlanmak için uygun izinlere sahip tüm kullanıcılara izin verilir. sys.databases katalog görünümündeki user_access sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin UserAccess özelliğini inceleyerek de durumu belirleyebilirsiniz.

<delayed_durability_option> ::=

için geçerlidir: SQL Server (SQL Server 2014 (12.x) ile başlayarak)

İşlemlerin tamamen dayanıklı mı yoksa gecikmeli dayanıklı mı işlediğini denetler.

  • SAKAT

    SET DISABLED izleyen tüm işlemler tamamen dayanıklıdır. Atomik blokta veya işleme deyiminde ayarlanan tüm dayanıklılık seçenekleri yoksayılır.

  • IZİN VERİLEN

    SET ALLOWED izleyen tüm işlemler, atomik blokta veya işleme deyiminde ayarlanan dayanıklılık seçeneğine bağlı olarak tamamen dayanıklı veya gecikmeli dayanıklıdır.

  • ZORLA

    SET FORCED izleyen tüm işlemler gecikmeli dayanıklıdır. Atomik blokta veya işleme deyiminde ayarlanan tüm dayanıklılık seçenekleri yoksayılır.

<external_access_option> ::=

için geçerlidir: SQL Server

Veritabanına başka bir veritabanındaki nesneler gibi dış kaynaklar tarafından erişilip erişilemeyeceğini denetler.

DB_CHAINING { ON | KAPALI }

  • ÜZERİNDE

    Veritabanı, veritabanları arası sahiplik zincirinin kaynağı veya hedefi olabilir.

  • KAPALI

    Veritabanı, veritabanları arası sahiplik zincirine katılamaz.

Önemli

VERITABANı sahipliği arasında zincirleme sunucusu seçeneği 0 (KAPALI) olduğunda SQL Server örneği bu ayarı tanır. Veritabanları arası sahiplik zinciri 1 (ON) olduğunda, tüm kullanıcı veritabanları bu seçeneğin değerinden bağımsız olarak veritabanları arası sahiplik zincirlerine katılabilir. Bu seçenek sp_configurekullanılarak ayarlanır.

Bu seçeneği ayarlamak için veritabanında CONTROL SERVER izni gerekir.

DB_CHAINING seçeneği master, modelve tempdb sistem veritabanlarında ayarlanamaz.

sys.databases katalog görünümündeki is_db_chaining_on sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz.

TRUSTWORTHY { ON | KAPALI }

  • ÜZERİNDE

    Kimliğe bürünme bağlamı kullanan veritabanı modülleri (örneğin, kullanıcı tanımlı işlevler veya saklı yordamlar), veritabanı dışındaki kaynaklara erişebilir.

  • KAPALI

    Kimliğe bürünme bağlamındaki veritabanı modülleri, veritabanının dışındaki kaynaklara erişemez.

    TRUSTWORTHY, veritabanı her eklendiğinde KAPALI olarak ayarlanır.

Varsayılan olarak, msdb veritabanı dışındaki tüm sistem veritabanlarıNDA TRUSTWORTHY ayarı KAPALI olarak ayarlanmıştır. model ve tempdb veritabanları için değer değiştirilemez. master veritabanı için GÜVENİlİR seçeneğini asla AÇI olarak ayarlamamanızı öneririz.

Bu seçeneği ayarlamak için veritabanında CONTROL SERVER izni gerekir.

sys.databases katalog görünümündeki is_trustworthy_on sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz.

DEFAULT_FULLTEXT_LANGUAGE

için geçerlidir: SQL Server (SQL Server 2012 (11.x) ile başlayarak)

Tam metin dizinli sütunlar için varsayılan dil değerini belirtir.

Önemli

Bu seçenek yalnızca CONTAINMENT PARTIAL olarak ayarlandığında izin verir. CONTAINMENT NONE olarak ayarlanırsa hatalar oluşur.

DEFAULT_LANGUAGE

için geçerlidir: SQL Server (SQL Server 2012 (11.x) ile başlayarak)

Yeni oluşturulan tüm oturum açma işlemleri için varsayılan dili belirtir. Dil, yerel kimlik (lcid), dil adı veya dil diğer adı sağlanarak belirtilebilir. Kabul edilebilir dil adlarının ve diğer adlarının listesi için bkz. sys.syslanguages. Bu seçenek yalnızca CONTAINMENT PARTIAL olarak ayarlandığında izin verir. CONTAINMENT NONE olarak ayarlanırsa hatalar oluşur.

NESTED_TRIGGERS

için geçerlidir: SQL Server (SQL Server 2012 (11.x) ile başlayarak)

AFTER tetikleyicisinin art arda bulunup bulunamayacağını belirtir; diğer bir ifadeyle başka bir tetikleyici başlatan ve başka bir tetikleyici başlatan bir eylem gerçekleştirin. Bu seçenek yalnızca CONTAINMENT PARTIAL olarak ayarlandığında izin verir. CONTAINMENT NONE olarak ayarlanırsa hatalar oluşur.

TRANSFORM_NOISE_WORDS

için geçerlidir: SQL Server (SQL Server 2012 (11.x) ile başlayarak)

Bir tam metin sorgusundaki boole işleminin başarısız olmasına neden olan kirli sözcükler veya stopword'ler hata iletisini bastırmak için kullanılır. Bu seçenek yalnızca CONTAINMENT PARTIAL olarak ayarlandığında izin verir. CONTAINMENT NONE olarak ayarlanırsa hatalar oluşur.

TWO_DIGIT_YEAR_CUTOFF

için geçerlidir: SQL Server (SQL Server 2012 (11.x) ile başlayarak)

İki basamaklı yılların dört basamaklı yıl olarak yorumlanması için kesme yılını temsil eden 1753 ile 9999 arasında bir tamsayı belirtir. Bu seçenek yalnızca CONTAINMENT PARTIAL olarak ayarlandığında izin verir. CONTAINMENT NONE olarak ayarlanırsa hatalar oluşur.

<FILESTREAM_option> ::=

için geçerlidir: SQL Server (SQL Server 2012 (11.x) ile başlayarak)

FileTable'ların ayarlarını denetler.

NON_TRANSACTED_ACCESS = { KAPALI | READ_ONLY | FULL }

  • KAPALI

    FileTable verilerine işlem dışı erişim devre dışı bırakıldı.

  • READ_ONLY

    Bu veritabanındaki FileTable'lardaki FILESTREAM verileri işlem dışı işlemler tarafından okunabilir.

  • DOLU

    FileTable'larda FILESTREAM verilerine tam, işlem dışı erişimi etkinleştirir.

DIRECTORY_NAME = <directory_name>

Windows uyumlu bir dizin adı. Bu ad, SQL Server örneğindeki tüm veritabanı düzeyindeki dizin adları arasında benzersiz olmalıdır. Harmanlama ayarlarından bağımsız olarak benzersizlik karşılaştırması büyük/küçük harfe duyarlı değildir. Bu seçenek, bu veritabanında bir FileTable oluşturulmadan önce ayarlanmalıdır.

<HADR_options> ::=

için geçerlidir: SQL Server

bkz. ALTER DATABASE SET HADR.

<mixed_page_allocation_option> ::=

için geçerlidir: SQL Server (SQL Server 2016 (13.x) ile başlayarak)

Veritabanının bir tablonun veya dizinin ilk sekiz sayfası için karışık bir kapsam kullanarak ilk sayfalar oluşturup oluşturamayacağını denetler.

MIXED_PAGE_ALLOCATION { KAPALI | ON }

  • KAPALI

    Veritabanı her zaman tekdüzen kapsamları kullanarak ilk sayfalar oluşturur. OFF varsayılan değerdir.

  • ÜZERİNDE

    Veritabanı, karma kapsamları kullanarak ilk sayfalar oluşturabilir.

Bu ayar tüm sistem veritabanları için ON'dır. tempdb sistem veritabanı, KAPALI'yi destekleyen tek sistem veritabanıdır.

<PARAMETERIZATION_option> ::=

Parametreleştirme seçeneğini denetler. Parametreleştirme hakkında daha fazla bilgi için bkz. Sorgu İşleme Mimarisi Kılavuzu.

PARAMETRELEŞTIRME { SIMPLE | FORCED }

  • BASİT

    Sorgular, veritabanının varsayılan davranışına göre parametreleştirilir.

  • ZORLA

    SQL Server, veritabanındaki tüm sorguları parametreleştirir.

Bu seçeneğin geçerli ayarı, sys.databases katalog görünümündeki is_parameterization_forced sütunu incelenerek belirlenebilir.

<query_store_options> ::=

için geçerlidir: SQL Server (SQL Server 2016 (13.x) ile başlayarak)

ON | KAPALI [ ( ZORLAMALı ) ] | CLEAR [ ALL ]

Bu veritabanında Sorgu Deposu'nun etkinleştirilip etkinleştirilmediğini denetler ve ayrıca Sorgu Deposu'nun içeriğini kaldırmayı denetler. Daha fazla bilgi için bkz. Sorgu Deposu Kullanım Senaryoları.

  • ÜZERİNDE

    Sorgu Deposu'na olanak tanır.

    Sorgu Deposu ipuçları, CE Geri Bildirimi, Paralellik Derecesi (DOP) geri bildirimi ve Bellek Verme geri bildirimi (MGF) kalıcılığı gibi SQL Server 2022'nin (16.x) birçok yeni performans özelliği Sorgu Deposu'nun etkinleştirilmesini gerektiriyor. Diğer SQL Server örneklerinden geri yüklenen veritabanları ve SQL Server 2022 'ye (16.x) yerinde yükseltmeden yükseltilen veritabanları için, bu veritabanları önceki Sorgu Deposu ayarlarını korur. Sorgu Deposu'na neden olabilecek ek yüklerle ilgili endişeler varsa, yöneticiler ile özel yakalama ilkelerinden yararlanabilir. Özel yakalama ilkesi seçenekleriyle Sorgu Deposu'nun nasıl etkinleştirileceğine ilişkin örnekler için, bu makalenin devamında yer alan Örnekler bölümüne bakın.

  • KAPALI [ ( ZORLAMALı ) ]

    Sorgu Deposu'nı devre dışı bırakır. FORCED isteğe bağlıdır. FORCED, çalışan tüm Sorgu Deposu arka plan görevlerini durdurur ve Sorgu Deposu kapatıldığında zaman uyumlu temizlemeyi atlar. Sorgu Deposu'un mümkün olan en hızlı şekilde kapanmasına neden olur. FORCED, SQL Server 2016 (13.x) SP2 CU14, SQL Server 2017 (14.x) CU21, SQL Server 2019 (15.x) CU6 ve sonraki derlemeler için geçerlidir.

    Not

    Azure SQL Veritabanı'nda Sorgu Deposu devre dışı bırakılamaz. ALTER DATABASE [database] SET QUERY_STORE = OFF yürütülürken 'QUERY_STORE=OFF' is not supported in this version of SQL Server.uyarısını döndürür.

  • CLEAR [ ALL ]

    Sorguyla ilgili verileri Sorgu Deposu'ndan kaldırır. ALL isteğe bağlıdır. ALL, sorguyla ilgili verileri ve meta verileri Sorgu Deposu'ndan kaldırır.

OPERATION_MODE { READ_ONLY | READ_WRITE }

Sorgu Deposu'nun işlem modunu açıklar.

READ_WRITE

Sorgu Deposu, sorgu planı ve çalışma zamanı yürütme istatistikleri bilgilerini toplar ve kalıcı hale toplar.

READ_ONLY

Bilgiler Sorgu Deposu'ndan okunabilir, ancak yeni bilgiler eklenmez. Sorgu Deposu'nun verilen en fazla alanı tükendiyse, Sorgu Deposu işlem modunu READ_ONLY olarak değiştirir.

CLEANUP_POLICY

Sorgu Deposu'nun veri saklama ilkesini açıklar. STALE_QUERY_THRESHOLD_DAYS, sorgu bilgilerinin Sorgu Deposu'nda tutulduğu gün sayısını belirler. STALE_QUERY_THRESHOLD_DAYS biginttürüdür. 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 biginttürüdür. Varsayılan değer 900 (15 dk) .

MAX_STORAGE_SIZE_MB

Sorgu Deposu'na verilen alanı belirler. MAX_STORAGE_SIZE_MB, biginttürüdür. SQL Server (SQL Server 2016 (13.x) ile SQL Server 2017 (14.x) arasında varsayılan değer 100 MB . SQL Server 2019 (15.x) ile başlayarak varsayılan değer 1000 MB.

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ığı seçeneği veya Management Studio Sorgu Deposu iletişim kutusu seçeneği tarafından ayarlanır. Aralık varsayılan değeri 900 saniyedir (veya 15 dakika).

Sorgu Deposu depolama boyutu denetimleri arasındaki MAX_STORAGE_SIZE_MB sınırını aştıysa salt okunur moda geçer. SIZE_BASED_CLEANUP_MODE etkinleştirilirse, MAX_STORAGE_SIZE_MB sınırını zorlamak için temizleme mekanizması da tetikler.

Yeterli alan temizlendikten sonra Sorgu Deposu modu otomatik olarak yeniden okuma-yazma moduna geçer.

Önemli

İş yükü yakalamanızın 10 GB'tan fazla disk alanına ihtiyacı olduğunu düşünüyorsanız, sorgu planlarını yeniden kullanmak için iş yükünüzü yeniden düşünmeli ve iyileştirmelisiniz (örneğin, zorlamalı parametrelemekullanarak veya Sorgu Deposu yapılandırmalarını ayarlamalısınız. SQL Server 2019'dan (15.x) başlayarak ve Azure SQL Veritabanı'nda sorgu yakalama ilkesi üzerinde ek denetim için QUERY_CAPTURE_MODE CUSTOM olarak ayarlayabilirsiniz.

INTERVAL_LENGTH_MINUTES

Çalışma zamanı yürütme istatistikleri verilerinin Sorgu Deposu'nda toplandığı zaman aralığını belirler. Alan kullanımını iyileştirmek için, çalışma zamanı istatistikleri deposundaki çalışma zamanı yürütme istatistikleri sabit bir zaman aralığı boyunca toplanır. Bu sabit zaman penceresi INTERVAL_LENGTH_MINUTES bağımsız değişkeni kullanılarak yapılandırılır. INTERVAL_LENGTH_MINUTES biginttürüdür. Varsayılan değer 60.

SIZE_BASED_CLEANUP_MODE { AUTO | KAPALI }

Toplam veri miktarı maksimum boyuta yaklaştığında temizlemenin otomatik olarak etkinleştirilip etkinleştirilmediğini denetler.

  • OTOMATİK

    Diskte boyut 90% MAX_STORAGE_SIZE_MBulaştığında boyut tabanlı temizleme otomatik olarak etkinleştirilir. Boyut tabanlı temizleme, önce en düşük maliyetli ve en eski sorguları kaldırır. Yaklaşık 80% MAX_STORAGE_SIZE_MBdurur. Bu değer varsayılan yapılandırma değeridir.

  • KAPALI

    Boyut tabanlı temizleme otomatik olarak etkinleştirilmez.

SIZE_BASED_CLEANUP_MODE nvarchartürüdür.

QUERY_CAPTURE_MODE { ALL | OTOMATİk | ÖZEL | NONE }

Şu anda etkin olan sorgu yakalama modunu atar. Her mod belirli sorgu yakalama ilkelerini tanımlar. QUERY_CAPTURE_MODE nvarchartürüdür.

Not

sorgu yakalama modu ALL, AUTO veya CUSTOM olarak ayarlandığında imleçler, Saklı Yordamlar içindeki sorgular ve Yerel olarak derlenmiş sorgular her zaman yakalanır.

  • TÜM

    Tüm sorguları yakalar. ALL, SQL Server (SQL Server 2016 (13.x) ile SQL Server 2017 (14.x) arasında varsayılan yapılandırma değeridir.

  • OTOMATİK

    Yürütme sayısına ve kaynak tüketimine göre ilgili sorguları yakalayın. Bu, SQL Server (SQL Server 2019 (15.x) ile başlayarak) ve Azure SQL Veritabanı için varsayılan yapılandırma değeridir.

  • Hiç kimse

    Yeni sorguları yakalamayı durdurun. Sorgu Deposu, zaten yakalanan sorgular için derleme ve çalışma zamanı istatistiklerini toplamaya devam eder. Önemli sorguları yakalamayı kaçırabileceğiniz için bu yapılandırmayı dikkatli kullanın.

  • TÖRE

    için geçerlidir: SQL Server (SQL Server 2019 (15.x) ile başlayarak)

    QUERY_CAPTURE_POLICY seçenekleri üzerinde denetime izin verir. Özel yakalama ilkeleri, sorgu deposunun iş yükünüzdeki en önemli sorguları yakalamasına yardımcı olabilir. Özelleştirilebilir seçenekler için <query_capture_policy_option_list> bakın.

MAX_PLANS_PER_QUERY

Her sorgu için tutulan plan sayısı üst sınırını tanımlar. MAX_PLANS_PER_QUERYtürüdür. Varsayılan değer 200değeridir.

WAIT_STATS_CAPTURE_MODE { ON | KAPALI }

için geçerlidir: SQL Server (SQL Server 2017 'den başlayarak (14.x)))

Sorgu başına bekleme istatistiklerinin yakalanıp yakalanmayacağını denetler.

  • ÜZERİNDE

    Sorgu başına bekleme istatistikleri bilgileri yakalanır. Bu değer varsayılan yapılandırma değeridir.

  • KAPALI

    Sorgu başına bekleme istatistikleri bilgileri yakalanmaz.

<query_capture_policy_option_list> :: =

için geçerlidir: SQL Server (SQL Server 2019 (15.x) ile başlayarak)

Sorgu Deposu yakalama ilkesi seçeneklerini denetler. STALE_CAPTURE_POLICY_THRESHOLD dışında, bu seçenekler sorguların tanımlanan Eski Yakalama İlkesi Eşiği değerinde yakalanması için gerçekleşmesi gereken OR koşullarını tanımlar.

SQL Server 2019 (15.x) ile başlayarak, aşağıdaki eşiklerden herhangi birine basıldığında QUERY_CAPTURE_MODE = AUTO ayarı Sorgu Deposu ayrıntılarını yakalar:

  • EXECUTION_COUNT = 30 yürütme = yürütme sayısı
  • TOTAL_COMPILE_CPU_TIME_MS = 1 saniye = milisaniye cinsinden derleme süresi
  • TOTAL_EXECUTION_CPU_TIME_MS = 100 ms = milisaniye cinsinden yürütme CPU süresi

Mesela:

EXECUTION_COUNT = 30,
TOTAL_COMPILE_CPU_TIME_MS = 1000,
TOTAL_EXECUTION_CPU_TIME_MS = 100

bu seçenekleri QUERY_CAPTURE_MODE = CUSTOMile özelleştirebilirsiniz:

  • STALE_CAPTURE_POLICY_THRESHOLD = tamsayı { GÜN | HOURS }

    Bir sorgunun yakalanması gerekip gerekmediğini belirlemek için değerlendirme aralığını tanımlar. Varsayılan değer 1 gündür ve 1 saatten yedi güne ayarlanabilir.

  • EXECUTION_COUNT = tamsayı

    Bir sorgunun değerlendirme süresi boyunca yürütülme sayısını tanımlar. Varsayılan değer 30'dur. Bu, varsayılan Eski Yakalama İlkesi Eşiği için sorgunun Sorgu Deposu'nda kalıcı olması için bir günde en az 30 kez yürütülmesi gerektiği anlamına gelir. EXECUTION_COUNT, inttürüdür.

  • TOTAL_COMPILE_CPU_TIME_MS = tamsayı

    Değerlendirme süresi boyunca sorgu tarafından kullanılan toplam derleme CPU süresini tanımlar. Varsayılan değer 1000'dir ve bu da varsayılan Eski Yakalama İlkesi Eşiği için sorgunun Sorgu Deposu'nda kalıcı olması için sorgu derlemesi sırasında harcanan cpu süresinin bir gün içinde toplam en az bir saniye olması gerektiği anlamına gelir. TOTAL_COMPILE_CPU_TIME_MStürüdür.

  • TOTAL_EXECUTION_CPU_TIME_MS = tamsayı

    Değerlendirme süresi boyunca sorgu tarafından kullanılan toplam yürütme CPU süresini tanımlar. Varsayılan değer 100'dür. Bu, varsayılan Eski Yakalama İlkesi Eşiği için sorgunun Sorgu Deposu'nda kalıcı olması için bir günde yürütme sırasında harcanan toplam CPU süresi en az 100 ms olması gerektiği anlamına gelir. TOTAL_EXECUTION_CPU_TIME_MS, inttürüdür.

<recovery_option> ::=

için geçerlidir: SQL Server

Veritabanı kurtarma seçeneklerini ve disk G/Ç hata denetimini denetler.

  • DOLU

    İşlem günlüğü yedeklemelerini kullanarak medya hatasından sonra tam kurtarma sağlar. Bir veri dosyası zarar görürse, medya kurtarma tüm kaydedilmiş işlemleri geri yükleyebilir. Daha fazla bilgi için bkz. Kurtarma modelleri.

  • BULK_LOGGED

    Medya hatasından sonra kurtarma sağlar. Belirli büyük ölçekli veya toplu işlemler için en iyi performansı ve en az miktarda günlük alanı kullanımını birleştirir. En az günlüğe kaydedilebilecek işlemler hakkında bilgi için bkz. İşlem günlüğü. BULK_LOGGED kurtarma modeli altında, bu işlemlerin günlüğe kaydedilmesi çok azdır. Daha fazla bilgi için bkz. Kurtarma modelleri.

  • BASİT

    En az günlük alanı kullanan basit bir yedekleme stratejisi sağlanır. Günlük alanı, sunucu hatası kurtarma için artık gerekli olmadığında otomatik olarak yeniden kullanılabilir. Daha fazla bilgi için bkz. Kurtarma modelleri.

    Önemli

    Basit kurtarma modelinin yönetilmesi diğer iki modele göre daha kolaydır, ancak bir veri dosyası zarar görürse daha fazla veri kaybına maruz kalma pahasına. En son veritabanı veya değişiklik veritabanı yedeğinden bu yana yapılan tüm değişiklikler kaybolur ve el ile yeniden giriş yapılması gerekir.

Varsayılan kurtarma modeli, model sistem veritabanının kurtarma modeli tarafından belirlenir. Uygun kurtarma modelini seçme hakkında daha fazla bilgi için bkz. Kurtarma modelleri.

sys.databases katalog görünümündeki recovery_model ve recovery_model_desc sütunlarını inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin Recovery özelliğini inceleyerek de durumu belirleyebilirsiniz.

TORN_PAGE_DETECTION { ON | KAPALI }

  • ÜZERİNDE

    Tamamlanmamış sayfalar Veritabanı Altyapısı tarafından algılanabilir.

  • KAPALI

    Tamamlanmamış sayfalar Veritabanı Altyapısı tarafından algılanamaz.

Önemli

Söz dizimi yapısı ON | TORN_PAGE_DETECTION OFF, SQL Server'ın gelecekteki bir sürümünde kaldırılacaktır. Yeni geliştirme çalışmalarında bu söz dizimi yapısını kullanmaktan kaçının ve söz dizimi yapısını kullanan uygulamaları değiştirmeyi planlayın. Bunun yerine PAGE_VERIFY seçeneğini kullanın.

PAGE_VERIFY { SAĞLAMA TOPLAMı | TORN_PAGE_DETECTION | NONE }

Disk G/Ç yolu hatalarından kaynaklanan bozuk veritabanı sayfalarını bulur. Veritabanı bozulması sorunlarının nedeni disk G/Ç yolu hataları olabilir. Bu hatalar genellikle sayfa diske yazılırken oluşan güç kesintilerinden veya disk donanım hatalarından kaynaklanır.

  • SAĞLAMA TOPLAMI

    Sayfanın tamamında bir sağlama toplamı hesaplar ve diske bir sayfa yazıldığında değeri sayfa üst bilgisinde depolar. Sayfa diskten okunduğunda sağlama toplamı yeniden derlenir ve sayfa üst bilgisinde depolanan sağlama toplamı değeriyle karşılaştırılır. Değerler eşleşmiyorsa, hata iletisi 824 (sağlama toplamı hatasını gösterir) hem SQL Server hata günlüğüne hem de Windows olay günlüğüne bildirilir. Sağlama toplamı hatası G/Ç yolu sorununu gösterir. Kök nedeni belirlemek için donanım, üretici yazılımı sürücüleri, BIOS, filtre sürücüleri (virüs yazılımı gibi) ve diğer G/Ç yolu bileşenlerinin araştırılması gerekir.

  • TORN_PAGE_DETECTION

    8 kilobaytlık (KB) veritabanı sayfasında her 512 baytlık kesim için belirli bir 2 bitlik desen kaydeder ve sayfa diske yazıldığında veritabanı sayfası üst bilgisinde depolanır. Sayfa diskten okunduğunda, sayfa üst bilgisinde depolanan kopmuş bitler gerçek sayfa kesimi bilgileriyle karşılaştırılır.

    Eşleşmeyen değerler, sayfanın yalnızca bir bölümünün diske yazıldığını gösterir. Bu durumda, hata iletisi 824 (bozuk sayfa hatasını gösterir) hem SQL Server hata günlüğüne hem de Windows olay günlüğüne bildirilir. Sayfa gerçekten tamamlanmamış bir yazma işlemiyse, yırtılmış sayfalar genellikle veritabanı kurtarma tarafından algılanır. Ancak, diğer G/Ç yolu hataları herhangi bir zamanda sayfayı yırtmasına neden olabilir.

  • Hiç kimse

    Veritabanı sayfası yazma işlemleri CHECKSUM veya TORN_PAGE_DETECTION değeri oluşturmaz. SQL Server, sayfa üst bilgisinde CHECKSUM veya TORN_PAGE_DETECTION değeri olsa bile okuma sırasında sağlama toplamını veya bozuk sayfayı doğrulamaz.

PAGE_VERIFY seçeneğini kullanırken aşağıdaki önemli noktaları göz önünde bulundurun:

  • Varsayılan değer CHECKSUM' dir.

  • Bir kullanıcı veya sistem veritabanı SQL Server 2005 (9.x) veya sonraki bir sürüme yükseltildiğinde, PAGE_VERIFY değeri (NONE veya TORN_PAGE_DETECTION) değiştirilmez. CHECKSUM olarak değiştirmenizi öneririz.

    Not

    SQL Server'ın önceki sürümlerinde, PAGE_VERIFY veritabanı seçeneği tempdb veritabanı için NONE olarak ayarlanmıştır ve değiştirilemez. SQL Server 2008 (10.0.x) ile başlayarak, tempdb veritabanının varsayılan değeri SQL Server'ın yeni yüklemeleri için CHECKSUM değeridir. Bir yükleme SQL Server'ı yükseltirken varsayılan değer NONE olarak kalır. Seçenek değiştirilebilir. tempdb veritabanı için CHECKSUM kullanmanızı öneririz.

  • TORN_PAGE_DETECTION daha az kaynak kullanabilir, ancak CHECKSUM korumasının en düşük alt kümesini sağlar.

  • PAGE_VERIFY, veritabanını çevrimdışına almadan, veritabanını kilitlemeden veya başka bir şekilde bu veritabanında eşzamanlılık engellenmeden ayarlanabilir.

  • CHECKSUM, TORN_PAGE_DETECTION için birbirini dışlar. Her iki seçenek de aynı anda etkinleştirilemiyor.

Bozuk bir sayfa veya sağlama toplamı hatası algılandığında, verileri geri yükleyerek veya hata yalnızca dizin sayfalarıyla sınırlıysa dizini yeniden oluşturarak kurtarabilirsiniz. Sağlama toplamı hatasıyla karşılaşırsanız, etkilenen veritabanı sayfasının veya sayfaların türünü belirlemek için DBCC CHECKDB'yi çalıştırın. Geri yükleme seçenekleri hakkında daha fazla bilgi için bkz. RESTORE Bağımsız Değişkenleri. Verilerin geri yüklenmesi veri bozulması sorununu çözse de, devam eden hataları önlemek için kök neden (örneğin, disk donanım hatası) en kısa sürede tanılanmalı ve düzeltilmelidir.

SQL Server sağlama toplamı, bozuk sayfa veya diğer G/Ç hatasıyla başarısız olan tüm okumaları dört kez yeniden denenir. Yeniden deneme girişimlerinden herhangi birinde okuma başarılı olursa hata günlüğüne bir ileti yazılır. Okuma işlemini tetikleyen komut devam eder. Yeniden deneme girişimleri başarısız olursa komut 824 hata iletisiyle başarısız olur.

823, 824 ve 825 hata iletileri hakkında daha fazla bilgi için bkz:

Bu seçeneğin geçerli ayarı, sys.databases katalog görünümündeki page_verify_option sütunu veya DATABASEPROPERTYEX işlevinin IsTornPageDetectionEnabled özelliği incelenerek belirlenebilir.

<remote_data_archive_option> ::=

için geçerlidir: SQL Server (SQL Server 2016 (13.x) ile başlayarak)

Veritabanı için Stretch Database'i etkinleştirir veya devre dışı bırakır. Daha fazla bilgi için bkz. Stretch Database.

Önemli

Stretch Database, SQL Server 2022 (16.x) ve Azure SQL Veritabanı'nda kullanım dışıdır. Bu özellik, Veritabanı Altyapısı'nın gelecekteki bir sürümünde kaldırılacaktır. Bu özelliği yeni geliştirme çalışmalarında kullanmaktan kaçının ve şu anda bu özelliği kullanan uygulamaları değiştirmeyi planlayın.

REMOTE_DATA_ARCHIVE = { ON ( SUNUCU = <server_name>, { CREDENTIAL = <db_scoped_credential_name> | FEDERATED_SERVICE_ACCOUNT = ON | OFF } ) | KAPALI

  • ÜZERİNDE

    Veritabanı için Stretch Database'i etkinleştirir. Ek önkoşullar da dahil olmak üzere daha fazla bilgi için bkz.bir veritabanı için Stretch Database'i etkinleştirme .

    Bir tablo için Stretch Database'i etkinleştirmek için db_owner izin gerektirir. Bir veritabanı için Stretch Database'i etkinleştirmek için db_owner ve CONTROL DATABASE izinleri gerektirir.

    • SERVER = <server_name>

      Azure sunucusunun adresini belirtir. Adın .database.windows.net bölümünü ekleyin. Örneğin, MyStretchDatabaseServer.database.windows.net.

    • CREDENTIAL = <db_scoped_credential_name>

      SQL Server örneğinin Azure sunucusuna bağlanmak için kullandığı veritabanı kapsamlı kimlik bilgilerini belirtir. Bu komutu çalıştırmadan önce kimlik bilgilerinin mevcut olduğundan emin olun. Daha fazla bilgi için bkz. create DATABASE SCOPED CREDENTIAL.

    • FEDERATED_SERVICE_ACCOUNT = { ON | KAPALI }

      Aşağıdaki koşulların tümü doğru olduğunda uzak Azure sunucusuyla iletişim kurmak üzere şirket içi SQL Server için bir federasyon hizmet hesabı kullanabilirsiniz.

      • SQL Server örneğinin çalıştığı hizmet hesabı bir etki alanı hesabıdır.
      • Etki alanı hesabı, Active Directory'si Microsoft Entra Id ile federasyon olan bir etki alanına aittir.
      • Uzak Azure sunucusu, Microsoft Entra kimlik doğrulamasını destekleyecek şekilde yapılandırılmıştır.
      • SQL Server örneğinin çalıştığı hizmet hesabı, uzak Azure sunucusunda dbmanager veya sysadmin hesabı olarak yapılandırılmalıdır.

      Federasyon hizmet hesabının ON olduğunu belirtirseniz, CREDENTIAL bağımsız değişkenini de belirtemezsiniz. KAPALI seçeneğini belirtirseniz CREDENTIAL bağımsız değişkenini belirtin.

  • KAPALI

    Veritabanı için Stretch Database'i devre dışı bırakır. Daha fazla bilgi için bkz. Stretch Database'i devre dışı bırakma veuzak verileri geri getirme.

    Bir veritabanı için Stretch Database'i devre dışı bırakabilmeniz için, veritabanında artık Stretch Database için etkinleştirilmiş herhangi bir tablo olmaması gerekir. Stretch Database'i devre dışı bırakdıktan sonra veri geçişi durdurulur. Ayrıca, sorgu sonuçları artık uzak tablolardan gelen sonuçları içermez.

    Stretch Database'in devre dışı bırakılması uzak veritabanını kaldırmaz. Uzak veritabanını silmek için Azure portalını kullanarak bırakın.

PERSISTENT_LOG_BUFFER

için geçerlidir: SQL Server 2017 (14.x) ve üzeri.

Bu seçenek belirtildiğinde, işlem günlüğü arabelleği, kalıcı günlük arabelleği olarak da bilinen Depolama Sınıfı Belleği (NVDIMM-N geçici olmayan depolama) tarafından yedeklenen bir disk cihazında bulunan bir birimde oluşturulur. Daha fazla bilgi için bkz. Depolama Sınıfı Bellek kullanarak İşlem İşleme gecikmesi hızlandırmasını ve Veritabanıkalıcı günlük arabelleği ekleme.

<service_broker_option> ::=

için geçerlidir: SQL Server

Aşağıdaki Hizmet Aracısı seçeneklerini denetler: İleti teslimini etkinleştirir veya devre dışı bırakır, yeni bir Hizmet Aracısı tanımlayıcısı ayarlar veya konuşma önceliklerini AÇLI veya KAPALI olarak ayarlar.

ENABLE_BROKER

Hizmet Aracısı'nın belirtilen veritabanı için etkinleştirildiğini belirtir. İleti teslimi başlatılır ve sys.databases katalog görünümünde is_broker_enabled bayrağı true olarak ayarlanır. Veritabanı mevcut Hizmet Aracısı tanımlayıcısını tutar. Veritabanı yansıtma yapılandırmasında sorumlu olduğunda hizmet aracısı etkinleştirilemiyor.

Not

ENABLE_BROKER özel veritabanı kilidi gerektirir. Diğer oturumlarda veritabanındaki kaynaklar kilitliyse, ENABLE_BROKER diğer oturumlar kilitlerini serbest bırakana kadar bekler. Kullanıcı veritabanında Hizmet Aracısı'nı etkinleştirmek için, veritabanını tek kullanıcı moduna almak gibi ALTER DATABASE SET ENABLE_BROKER deyimini çalıştırmadan önce veritabanını başka hiçbir oturumun kullanmadığından emin olun. msdb veritabanında Hizmet Aracısı'nı etkinleştirmek için, önce SQL Server Aracısı'nı durdurarak Hizmet Aracısı'nın gerekli kilidi alabilmesini sağlayın.

DISABLE_BROKER

Hizmet Aracısı'nın belirtilen veritabanı için devre dışı bırakıldığını belirtir. İleti teslimi durdurulur ve is_broker_enabled bayrağı sys.databases katalog görünümünde false olarak ayarlanır. Veritabanı mevcut Hizmet Aracısı tanımlayıcısını tutar.

NEW_BROKER

Veritabanının yeni bir aracı tanımlayıcısı alması gerektiğini belirtir. Veritabanı yeni bir hizmet aracısı işlevi görür. Bu nedenle, veritabanındaki tüm mevcut konuşmalar, son iletişim kutusu iletileri üretilmeden hemen kaldırılır. Eski Hizmet Aracısı tanımlayıcıya başvuran tüm yollar yeni tanımlayıcıyla yeniden oluşturulmalıdır.

ERROR_BROKER_CONVERSATIONS

Hizmet Aracısı ileti teslimin etkinleştirildiğini belirtir. Bu ayar, veritabanı için mevcut Hizmet Aracısı tanımlayıcısını korur. Hizmet Aracısı veritabanındaki tüm konuşmaları bir hatayla sonlandırır. Bu ayar, uygulamaların mevcut konuşmalar için düzenli temizleme çalıştırmasına olanak tanır.

HONOR_BROKER_PRIORITY { ON | KAPALI }

  • ÜZERİNDE

    Gönderme işlemleri, konuşmalara atanan öncelik düzeylerini dikkate alır. Yüksek öncelikli düzeylere sahip konuşmalardan gelen iletiler, düşük öncelikli düzeylere atanan konuşmalardan önce gönderilir.

  • KAPALI

    Gönderme işlemleri, tüm konuşmalar varsayılan öncelik düzeyine sahipmiş gibi çalışır.

HONOR_BROKER_PRIORITY seçeneğindeki değişiklikler, gönderilmeyi bekleyen iletileri olmayan yeni iletişim kutuları veya iletişim kutuları için hemen geçerli olur. ALTER DATABASE çalıştırıldığında gönderilecek iletileri içeren iletişim kutuları, iletişim kutusunun bazı iletileri gönderilene kadar yeni ayarı almaz. Tüm iletişim kutuları yeni ayarı kullanmaya başlamadan önce geçmesi gereken süre önemli ölçüde değişebilir.

Bu özelliğin geçerli ayarı, sys.databases katalog görünümündeki is_broker_priority_honored sütununda bildirilir.

<snapshot_option> ::=

İşlem yalıtım düzeyini hesaplar.

ALLOW_SNAPSHOT_ISOLATION { ON | KAPALI }

  • ÜZERİNDE

    Veritabanı düzeyinde Anlık Görüntü seçeneğini etkinleştirir. Etkinleştirildiğinde, hiçbir işlem Anlık Görüntü Yalıtımı kullanmasa bile DML deyimleri satır sürümleri oluşturmaya başlar. Bu seçenek etkinleştirildikten sonra işlemler SNAPSHOT işlem yalıtım düzeyini belirtebilir. Bir işlem SNAPSHOT yalıtım düzeyinde çalıştırıldığında, tüm deyimler işlemin başlangıcında mevcut olan verilerin anlık görüntüsünü görür. SNAPSHOT yalıtım düzeyinde çalışan bir işlem birden çok veritabanındaki verilere erişiyorsa, ALLOW_SNAPSHOT_ISOLATION tüm veritabanlarında AÇILACAK şekilde ayarlanmalıdır veya işlemdeki her deyim, from yan tümcesindeki herhangi bir başvuruda kilit ipuçlarını ALLOW_SNAPSHOT_ISOLATION OFF olduğu bir veritabanındaki bir tabloya kilitleme ipuçlarını kullanmalıdır.

  • KAPALI

    Veritabanı düzeyinde Anlık Görüntü seçeneğini kapatır. İşlemler SNAPSHOT işlemi yalıtım düzeyini belirtemez.

ALLOW_SNAPSHOT_ISOLATION yeni bir duruma ayarladığınızda (ON'dan KAPALI'ya veya KAPALI'dan ON'a), VERITABANıNDAki tüm mevcut işlemler işlenmeden ALTER DATABASE denetimi çağırana döndürmez. Veritabanı ZATEN ALTER DATABASE deyiminde belirtilen durumdaysa, denetim çağırana hemen döndürülür. ALTER DATABASE deyimi hızlı bir şekilde döndürülmezse, uzun süre çalışan işlemler olup olmadığını belirlemek için sys.dm_tran_active_snapshot_database_transactions kullanın. ALTER DATABASE deyimi iptal edilirse, veritabanı ALTER DATABASE başlatıldığında olduğu durumda kalır. sys.databases katalog görünümü, veritabanındaki anlık görüntü yalıtım işlemlerinin durumunu gösterir. snapshot_isolation_state_desc = IN_TRANSITION_TO_ON, ALTER DATABASE ... ALLOW_SNAPSHOT_ISOLATION OFF komutu altı saniye duraklatılır ve işlemi yeniden dener.

Veritabanı ÇEVRİmDIŞI olduğunda ALLOW_SNAPSHOT_ISOLATION durumunu değiştiremezsiniz.

READ_ONLY veritabanında ALLOW_SNAPSHOT_ISOLATION ayarlarsanız, veritabanı daha sonra READ_WRITE olarak ayarlanırsa ayar korunur.

master, model, 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 geçerli ayarı, sys.databases katalog görünümündeki snapshot_isolation_state sütunu incelenerek belirlenebilir.

READ_COMMITTED_SNAPSHOT { ON | KAPALI }

  • ÜZERİNDE

    Veritabanı düzeyinde Read-Committed Anlık Görüntü seçeneğini etkinleştirir. Etkinleştirildiğinde, hiçbir işlem Anlık Görüntü Yalıtımı kullanmasa bile DML deyimleri satır sürümleri oluşturmaya başlar. Bu seçenek etkinleştirildikten sonra, tamamlanan okuma yalıtım düzeyini belirten işlemler kilitleme yerine satır sürümü oluşturma kullanır. Tüm deyimler, bir işlem READ COMMITTED yalıtım düzeyinde çalıştırıldığında deyiminin başında mevcut olan verilerin anlık görüntüsünü görür.

  • KAPALI

    Veritabanı düzeyinde Read-Committed Anlık Görüntü seçeneğini kapatır. READ COMMITTED yalıtım düzeyini belirten işlemler kilitlemeyi kullanır.

AÇıK veya KAPALI READ_COMMITTED_SNAPSHOT ayarlamak için, ALTER DATABASE komutunu çalıştıran bağlantı dışında veritabanına etkin bağlantı olmaması gerekir. Ancak veritabanının tek kullanıcı modunda olması gerekmez. Veritabanı ÇEVRİmDIŞI olduğunda bu seçeneğin durumunu değiştiremezsiniz.

READ_ONLY veritabanında READ_COMMITTED_SNAPSHOT ayarlarsanız, veritabanı daha sonra READ_WRITE olarak ayarlandığında ayar korunur.

READ_COMMITTED_SNAPSHOT master, 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 geçerli ayarı, sys.databases katalog görünümündeki is_read_committed_snapshot_on sütunu incelenerek belirlenebilir.

Uyarı

DAYANıKLıLıK = SCHEMA_ONLYile bir tablo oluşturulduğunda ve READ_COMMITTED_SNAPSHOT daha sonra ALTER DATABASE kullanılarak değiştirildiğinde, tablodaki veriler kaybolur.

MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT { ON | KAPALI }

için geçerlidir: SQL Server (SQL Server 2014 (12.x) ile başlayarak)

  • ÜZERİNDE

    İşlem yalıtım düzeyi SNAPSHOT'dan daha düşük bir yalıtım düzeyine ayarlandığında, bellek için iyileştirilmiş tablolardaki tüm yorumlanan Transact-SQL işlemleri SNAPSHOT yalıtımı altında çalıştırılır. Anlık görüntüden düşük yalıtım düzeylerine örnek olarak READ COMMITTED veya READ UNCOMMITTED verilebilir. Bu işlemler, işlem yalıtım düzeyinin oturum düzeyinde açıkça ayarlanıp ayarlanmadığını veya varsayılanın örtük olarak kullanılıp kullanılmadığını çalıştırır.

  • KAPALI

    Bellek için iyileştirilmiş tablolarda yorumlanan Transact-SQL işlemleri için işlem yalıtım düzeyini yükseltmez.

Veritabanı ÇEVRİmDIŞI olduğunda MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT durumunu değiştiremezsiniz.

Varsayılan seçenek KAPALI'dır.

Bu seçeneğin geçerli ayarı, sys.databases katalog görünümündeki is_memory_optimized_elevate_to_snapshot_on sütunu incelenerek belirlenebilir.

<sql_option> ::=

VERITABANı düzeyinde ANSI uyumluluk seçeneklerini denetler.

ANSI_NULL_DEFAULT { ON | KAPALI }

Create TABLE veya ALTER TABLE deyimlerinde null atanabilirliğin açıkça tanımlanmadığı clr kullanıcı tanımlı tür bir sütunun veya null veya NOT NULL varsayılan değerini belirler. Kısıtlamalarla tanımlanan sütunlar, bu ayar ne olursa olsun kısıtlama kurallarına uyar.

  • ÜZERİNDE

    Tanımlanmamış bir sütun için varsayılan değer NULL'dir.

  • KAPALI

    Tanımlanmamış bir sütun için varsayılan değer NULL DEĞİlDİr.

SET deyimi kullanılarak ayarlanan bağlantı düzeyi ayarları, ANSI_NULL_DEFAULT için varsayılan veritabanı düzeyi ayarını geçersiz kılar. ODBC ve OLE DB istemcileri, oturum için varsayılan olarak AÇıK olarak ANSI_NULL_DEFAULT bir bağlantı düzeyi SET deyimi ayarı gönderir. SQL Server örneğine bağlandığınızda istemciler deyimini çalıştırır. Daha fazla bilgi için bkz. set ANSI_NULL_DFLT_ON.

ANSI uyumluluğu için, ANSI_NULL_DEFAULT veritabanı seçeneğinin ON olarak ayarlanması, veritabanının varsayılan değerini NULL olarak değiştirir.

sys.databases katalog görünümündeki is_ansi_null_default_on sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsAnsiNullDefault özelliğini inceleyerek de durumu belirleyebilirsiniz.

ANSI_NULLS { ON | KAPALI }

  • ÜZERİNDE

    Null değerle yapılan tüm karşılaştırmalar BİlİNMEYEN olarak değerlendirilir.

  • KAPALI

    Unicode olmayan değerlerin null değerle karşılaştırmaları, her iki değer de NULL ise TRUE olarak değerlendirilir.

Önemli

SQL Server'ın gelecekteki bir sürümünde ANSI_NULLS her zaman AÇIK olur ve seçeneği açıkça KAPALI olarak ayarlayan tüm uygulamalar hata oluşturur. Bu özelliği yeni geliştirme çalışmalarında kullanmaktan kaçının ve şu anda bu özelliği kullanan uygulamaları değiştirmeyi planlayın.

SET deyimi kullanılarak ayarlanan bağlantı düzeyi ayarları, ANSI_NULLS için varsayılan veritabanı ayarını geçersiz kılar. ODBC ve OLE DB istemcileri, oturum için varsayılan olarak AÇıK olarak ANSI_NULLS bir bağlantı düzeyi SET deyimi ayarı gönderir. SQL Server örneğine bağlandığınızda istemciler deyimini çalıştırır. Daha fazla bilgi için bkz. set ANSI_NULLS.

Önemli

SET ANSI_NULLS hesaplanan sütunlarda veya dizinlenmiş görünümlerde dizin oluşturduğunuzda veya dizinlerde değişiklik yaptığınızda da ON olarak ayarlanmalıdır.

sys.databases katalog görünümündeki is_ansi_nulls_on sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsAnsiNullsEnabled özelliğini inceleyerek de durumu belirleyebilirsiniz.

ANSI_PADDING { ON | KAPALI }

  • ÜZERİNDE

    Dizeler dönüştürmeden önce aynı uzunlukta doldurulur. Ayrıca bir varchar veya nvarchar veri türüne eklemeden önce aynı uzunlukta doldurulur.

  • KAPALI

    Karakter değerlerinde sondaki boşlukları varchar veya nvarchar sütunlarına ekler. Ayrıca, varbinary sütunlarına eklenen ikili değerlerde sondaki sıfırları bırakır. Değerler sütunun uzunluğuna göre doldurulamaz.

    KAPALI belirtildiğinde, bu ayar yalnızca yeni sütunların tanımını etkiler.

Önemli

SQL Server'ın gelecekteki bir sürümünde, ANSI_PADDING her zaman AÇIK olur ve seçeneği açıkça KAPALI olarak ayarlayan tüm uygulamalar bir hata oluşturur. Bu özelliği yeni geliştirme çalışmalarında kullanmaktan kaçının ve şu anda bu özelliği kullanan uygulamaları değiştirmeyi planlayın. ANSI_PADDING her zaman ON olarak ayarlamanızı öneririz. ANSI_PADDING hesaplanan sütunlarda veya dizinlenmiş görünümlerde dizin oluştururken veya işlerken ON olmalıdır.

char(n) ve ikili(n) null değere izin veren sütunlar, ANSI_PADDING ON olarak ayarlandığında sütun uzunluğuna doldurulur. ANSI_PADDING KAPALI olduğunda sondaki boşluklar ve sıfırlar kırpılır. char(n) ve binary(n) null değere izin verilmeyen sütunlar her zaman sütunun uzunluğuna doldurulur.

SET deyimi kullanılarak ayarlanan bağlantı düzeyi ayarları, ANSI_PADDING için varsayılan veritabanı düzeyi ayarını geçersiz kılar. ODBC ve OLE DB istemcileri, varsayılan olarak oturum için AÇıK olarak ANSI_PADDING bir bağlantı düzeyi SET deyimi ayarı gönderir. SQL Server örneğine bağlandığınızda istemciler deyimini çalıştırır. Daha fazla bilgi için bkz. set ANSI_PADDING.

sys.databases katalog görünümündeki is_ansi_padding_on sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsAnsiPaddingEnabled özelliğini inceleyerek de durumu belirleyebilirsiniz.

ANSI_WARNINGS { ON | KAPALI }

  • ÜZERİNDE

    Sıfıra bölme gibi koşullar oluştuğunda hatalar veya uyarılar verilir. Toplama işlevlerinde null değerler göründüğünde de hatalar ve uyarılar verilir.

  • KAPALI

    Sıfıra bölme gibi koşullar oluştuğunda hiçbir uyarı tetiklenmez ve null değerler döndürülür.

Önemli

HESAPLANAN sütunlarda veya dizinlenmiş görünümlerde dizin oluşturduğunuzda veya dizinlerde değişiklik yaptığınızda SET ANSI_WARNINGS ON olarak ayarlanmalıdır.

SET deyimi kullanılarak ayarlanan bağlantı düzeyi ayarları, ANSI_WARNINGS için varsayılan veritabanı ayarını geçersiz kılar. ODBC ve OLE DB istemcileri, oturum için varsayılan olarak AÇıK olarak ANSI_WARNINGS bir bağlantı düzeyi SET deyimi ayarı gönderir. SQL Server örneğine bağlandığınızda istemciler deyimini çalıştırır. Daha fazla bilgi için bkz. set ANSI_WARNINGS.

sys.databases katalog görünümündeki is_ansi_warnings_on sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsAnsiWarningsEnabled özelliğini inceleyerek de durumu belirleyebilirsiniz.

ARITHABORT { ON | KAPALI }

  • ÜZERİNDE

    Sorgu yürütme sırasında taşma veya sıfıra bölme hatası oluştuğunda sorgu sonlandırılır.

  • KAPALI

    Bu hatalardan biri oluştuğunda bir uyarı iletisi görüntülenir. Sorgu, toplu iş veya işlem, bir uyarı görüntülense bile hata oluşmamış gibi işlemeye devam eder.

Önemli

SET ARITHABORT, hesaplanan sütunlarda veya dizinlenmiş görünümlerde dizin oluşturduğunuzda veya dizinlerde değişiklik yaptığınızda ON olarak ayarlanmalıdır.

sys.databases katalog görünümündeki is_arithabort_on sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsArithmeticAbortEnabled özelliğini inceleyerek de durumu belirleyebilirsiniz.

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

Daha fazla bilgi için bkz. alter database uyumluluk düzeyi.

CONCAT_NULL_YIELDS_NULL { ON | KAPALI }

  • ÜZERİNDE

    bir birleştirme işleminin sonucu, işlenenlerden biri NULL olduğunda NULL'dır. Örneğin, "This is" ve NULL karakter dizesini birleştirmek "This is" değeri yerine NULL değerini döndürür.

  • KAPALI

    Null değer boş karakter dizesi olarak kabul edilir.

Önemli

CONCAT_NULL_YIELDS_NULL hesaplanan sütunlarda veya dizinlenmiş görünümlerde dizin oluştururken veya dizinlerde değişiklik yaparken ON olarak ayarlanmalıdır.

SQL Server'ın gelecek sürümlerinde CONCAT_NULL_YIELDS_NULL her zaman AÇIK olur ve seçeneği açıkça KAPALI olarak ayarlayan tüm uygulamalar bir hata tetikler. Bu özelliği yeni geliştirme çalışmalarında kullanmaktan kaçının ve şu anda bu özelliği kullanan uygulamaları değiştirmeyi planlayın.

SET deyimi kullanılarak ayarlanan bağlantı düzeyi ayarları, CONCAT_NULL_YIELDS_NULL için varsayılan veritabanı ayarını geçersiz kılar. Varsayılan olarak, ODBC ve OLE DB istemcileri SQL Server örneğine bağlanırken oturum için CONCAT_NULL_YIELDS_NULL bağlantı düzeyi SET deyimi ayarı gönderir. Daha fazla bilgi için bkz. set CONCAT_NULL_YIELDS_NULL.

sys.databases katalog görünümündeki is_concat_null_yields_null_on sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsNullConcat özelliğini inceleyerek de durumu belirleyebilirsiniz.

NUMERIC_ROUNDABORT { ON | KAPALI }

  • ÜZERİNDE

    İfadede duyarlık kaybı oluştuğunda bir hata oluşturulur.

  • KAPALI

    Duyarlık kaybı bir hata iletisi oluşturmaz ve sonuç, sonucun depolandığı sütunun veya değişkenin duyarlığına yuvarlanr.

    Önemli

    hesaplanan sütunlarda veya dizinlenmiş görünümlerde dizin oluştururken veya dizinlerde değişiklik yaparken NUMERIC_ROUNDABORT KAPALI olarak ayarlanmalıdır.

Bu seçeneğin durumunu, sys.databases katalog görünümündeki is_numeric_roundabort_on sütununda belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsNumericRoundAbortEnabled özelliğini inceleyerek de durumu belirleyebilirsiniz.

QUOTED_IDENTIFIER { ON | KAPALI }

  • ÜZERİNDE

    Sınırlandırılmış tanımlayıcıları içine almak için çift tırnak işaretleri kullanılabilir.

    Çift tırnak işaretleri ile sınırlandırılan tüm dizeler nesne tanımlayıcıları olarak yorumlanır. Teklif edilen tanımlayıcıların tanımlayıcılar için Transact-SQL kurallarına uyması gerekmez. Bunlar anahtar sözcükler olabilir ve Transact-SQL tanımlayıcılarında izin verilmeyen karakterler içerebilir. Çift tırnak işareti (") tanımlayıcının bir parçasıysa, iki çift tırnak işaretiyle ("") temsil edilebilir.

  • KAPALI

    Tanımlayıcılar tırnak içinde olamaz ve tanımlayıcılar için tüm Transact-SQL kurallarını izlemelidir. Değişmez değerler tek veya çift tırnak işaretiyle sınırlandırılabilir.

SQL Server, tanımlayıcıların köşeli ayraçlarla ([ ve ]) sınırlandırılmasına da olanak tanır. Köşeli ayraçlı tanımlayıcılar, QUOTED_IDENTIFIER ayarı ne olursa olsun her zaman kullanılabilir. Daha fazla bilgi için bkz.Veritabanı tanımlayıcıları.

Tablo oluşturulduğunda, QUOTED IDENTIFIER seçeneği her zaman tablonun meta verilerinde ON olarak depolanır. Tablo oluşturulduğunda seçenek KAPALI olarak ayarlansa bile seçenek depolanır.

SET deyimi kullanılarak ayarlanan bağlantı düzeyi ayarları, QUOTED_IDENTIFIER için varsayılan veritabanı ayarını geçersiz kılar. ODBC ve OLE DB istemcileri, varsayılan olarak AÇıK olarak QUOTED_IDENTIFIER bir bağlantı düzeyi SET deyimi ayarı oluşturur. SQL Server örneğine bağlandığınızda istemciler deyimini çalıştırır. Daha fazla bilgi için bkz. set QUOTED_IDENTIFIER.

sys.databases katalog görünümündeki is_quoted_identifier_on sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsQuotedIdentifiersEnabled özelliğini inceleyerek de durumu belirleyebilirsiniz.

RECURSIVE_TRIGGERS { ON | KAPALI }

  • ÜZERİNDE

    AFTER tetikleyicilerinin özyinelemeli olarak tetiklemesine izin verilir.

  • KAPALI

    sys.databases katalog görünümündeki is_recursive_triggers_on sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsRecursiveTriggersEnabled özelliğini inceleyerek de durumu belirleyebilirsiniz.

Not

RECURSIVE_TRIGGERS KAPALI olarak ayarlandığında yalnızca doğrudan özyineleme engellenir. Dolaylı özyineleme özelliğini devre dışı bırakmak için iç içe tetikleyiciler sunucusu seçeneğini de 0 olarak ayarlamanız gerekir.

sys.databases katalog görünümündeki is_recursive_triggers_on sütununu veya DATABASEPROPERTYEX işlevinin IsRecursiveTriggersEnabled özelliğini inceleyerek bu seçeneğin durumunu belirleyebilirsiniz.

<suspend_for_snapshot_backup> ::=

için geçerlidir: SQL Server (SQL Server 2022 (16.x) ile başlayarak)

Anlık görüntü yedekleme için veritabanlarını askıya alır. Bir veya daha fazla veritabanından oluşan bir grup tanımlayabilir. Yalnızca kopyalama modunu belirleyebilir.

SET SUSPEND_FOR_SNAPSHOT_BACKUP = { ON | OFF }

Veritabanlarını askıya alır veya askıya alır. Varsayılan KAPALI.

MODE = COPY_ONLY

Opsiyonel. COPY_ONLY modunu kullanır.

<target_recovery_time_option> ::=

için geçerlidir: SQL Server (SQL Server 2012 (11.x) ile başlayarak)

Veritabanı başına dolaylı denetim noktalarının sıklığını belirtir. SQL Server 2016'dan (13.x) başlayarak yeni veritabanları için varsayılan değer 1 dakika' dir ve bu da veritabanının dolaylı denetim noktaları kullandığını gösterir. Eski sürümler için varsayılan değer 0'dır ve bu, veritabanının sıklığı sunucu örneğinin kurtarma aralığı ayarına bağlı olan otomatik denetim noktaları kullandığını gösterir. Microsoft çoğu sistem için 1 dakika önerir.

TARGET_RECOVERY_TIME = target_recovery_time { SECONDS | DAKİkA }

  • target_recovery_time

    Kilitlenme durumunda belirtilen veritabanının kurtarılması için gereken süre üst sınırını belirtir. target_recovery_time, inttürüdür.

  • SANİYE

    target_recovery_time saniye sayısı olarak ifade edilir.

  • TUTANAK

    target_recovery_time dakika sayısı olarak ifade edilir.

Dolaylı denetim noktaları hakkında daha fazla bilgi için bkz. Veritabanı denetim noktaları.

WITH <sonlandırma> ::=

Veritabanı bir durumdan diğerine geçirildiğinde tamamlanmamış işlemlerin ne zaman geri alınıp alınamayacaını belirtir. Sonlandırma yan tümcesi atlanırsa, veritabanında herhangi bir kilit varsa ALTER DATABASE deyimi süresiz olarak bekler. Yalnızca bir sonlandırma yan tümcesi belirtilebilir ve SET yan tümcelerini izler.

Not

Tüm veritabanı seçenekleri WITH <sonlandırma> yan tümcesini kullanmaz. Daha fazla bilgi için, bu makalenin "Açıklamalar" bölümünün ayar seçenekleri altındaki tabloya bakın.

  • tamsayıdan sonra geri alma [SECONDS] | HEMEN GERI ALMA

    Belirtilen saniye sayısından sonra mı yoksa hemen mi geri alınmayacağını belirtir.

  • NO_WAIT

    İstenen veritabanı durumu veya seçenek değişikliği hemen tamamlanamadıysa isteğin başarısız olduğunu belirtir. Hemen tamamlanması, işlemlerin kendi başına işlenmesini veya geri alınması beklenmediği anlamına gelir.

Seçenekleri ayarlama

Veritabanı seçeneklerinin geçerli ayarlarını almak için sys.databases katalog görünümünü veya DATABASEPROPERTYEX 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 WITH <sonlandırma> yan tümcesini kullanmaz veya diğer seçeneklerle birlikte belirtilebilir. Aşağıdaki tabloda bu seçenekler ve bunların seçeneği ile sonlandırma durumu listelenmiştir.

Seçenekler kategorisi Diğer seçeneklerle belirtilebilir WITH <sonlandırma> yan tümcesini kullanabilir
<db_state_option> Evet Evet
<db_user_access_option> Evet Evet
<db_update_option> Evet Evet
<delayed_durability_option> Evet Evet
<external_access_option> Evet Hayır
<cursor_option> Evet Hayır
<auto_option> Evet Hayır
<sql_option> Evet Hayır
<recovery_option> Evet Hayır
<target_recovery_time_option> Hayır Evet
<database_mirroring_option> Hayır Hayır
ALLOW_SNAPSHOT_ISOLATION Hayır Hayır
READ_COMMITTED_SNAPSHOT Hayır Evet
MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT Evet Evet
<service_broker_option> Evet Hayır
DATE_CORRELATION_OPTIMIZATION Evet Evet
<parameterization_option> Evet Evet
<change_tracking_option> Evet Evet
<db_encryption_option> Evet Hayır
<accelerated_database_recovery> Evet Evet

SQL Server örneğinin plan önbelleği, aşağıdaki seçeneklerden biri ayarlanarak temizlenir:

ÇEVRİMDIŞI

ÇEVRİMİÇİ

MODIFY_NAME

HARMANLAMAK

READ_ONLY

READ_WRITE

FILEGROUP DEFAULT'I DEĞIŞTIRME

FILEGROUP READ_WRITE DEĞIŞTIRME

FILEGROUP READ_ONLY DEĞIŞTIRME

Plan önbelleği de aşağıdaki senaryolarda temizlenmiştir.

  • Veritabanında AUTO_CLOSE veritabanı seçeneği ON olarak ayarlanmıştır. Kullanıcı bağlantısı başvurusu olmadığında veya veritabanını kullanmadığında, arka plan görevi veritabanını otomatik olarak kapatıp kapatmaya çalışır.
  • Varsayılan seçenekleri olan bir veritabanında birkaç sorgu çalıştırırsınız. Ardından veritabanı bırakılır.
  • Kaynak veritabanı için veritabanı anlık görüntüsü bırakılır.
  • Veritabanı için işlem günlüğünü başarıyla yeniden oluşturursunuz.
  • Veritabanı yedeğini geri yüklersiniz.
  • Bir veritabanını ayırırsınız.

Plan önbelleğinin temizlenmesi, sonraki tüm yürütme planlarının yeniden derlenmesine neden olur ve sorgu performansında ani, geçici bir düşüşe neden olabilir. Plan önbelleğindeki temizlenen her önbellek deposu için SQL Server hata günlüğü şu bilgi iletisini içerir: SQL Server has encountered %d occurrence(s) of cachestore flush for the '%s' cachestore (part of plan cache) due to some database maintenance or reconfigure operations. Bu ileti, önbellek bu zaman aralığında temizlendiği sürece beş dakikada bir günlüğe kaydedilir.

Örnekler

A. Veritabanında seçenekleri ayarlama

Aşağıdaki örnek, AdventureWorks2022 örnek veritabanı için kurtarma modeli ve veri sayfası doğrulama seçeneklerini ayarlar.

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

B. Veritabanını READ_ONLY olarak ayarlama

Veritabanının veya dosya grubunun durumunu READ_ONLY veya READ_WRITE olarak değiştirmek, veritabanına özel erişim gerektirir. Aşağıdaki örnek, özel erişim elde etmek için veritabanını SINGLE_USER moduna ayarlar. Örnek daha sonra AdventureWorks2022 veritabanının durumunu READ_ONLY olarak ayarlar ve veritabanına erişimi tüm kullanıcılara döndürür.

Not

Bu örnek, ilk ALTER DATABASE deyiminde WITH ROLLBACK IMMEDIATE sonlandırma seçeneğini kullanır. Tamamlanmamış tüm işlemler geri alınır ve AdventureWorks2022 veritabanına yönelik diğer bağlantıların bağlantısı hemen kesilir.

USE master;
GO
ALTER DATABASE [database_name]
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE;
GO
ALTER DATABASE [database_name]
SET READ_ONLY
GO
ALTER DATABASE [database_name]
SET MULTI_USER;
GO

C. Veritabanında anlık görüntü yalıtımını etkinleştirme

Aşağıdaki örnek, AdventureWorks2022 veritabanı için anlık görüntü yalıtım çerçevesi seçeneğini etkinleştirir.

USE [database_name];
USE master;
GO
ALTER DATABASE [database_name]
SET ALLOW_SNAPSHOT_ISOLATION ON;
GO
-- Check the state of the snapshot_isolation_framework
-- in the database.
SELECT name, snapshot_isolation_state,
    snapshot_isolation_state_desc AS description
FROM sys.databases
WHERE name = N'[database_name]';
GO

Sonuç kümesi, anlık görüntü yalıtım çerçevesinin etkinleştirildiğini gösterir.

ad snapshot_isolation_state Açıklama
[database_name] 1 ÜZERİNDE

D. Değişiklik izlemeyi etkinleştirme, değiştirme veya devre dışı bırakma

Aşağıdaki örnek, AdventureWorks2022 veritabanı için değişiklik izlemeyi etkinleştirir ve bekletme süresini 2 güne ayarlar.

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

Aşağıdaki örnekte bekletme süresinin 3 gün olarak nasıl değiştireceği gösterilmektedir.

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

Aşağıdaki örnekte, AdventureWorks2022 veritabanı için değişiklik izlemeyi devre dışı bırakma gösterilmektedir.

ALTER DATABASE [database_name]
SET CHANGE_TRACKING = OFF;

E. Sorgu Deposunu Etkinleştirme

için geçerlidir: SQL Server (SQL Server 2016 (13.x) ile başlayarak)

Aşağıdaki örnek Sorgu Deposu'na olanak tanır ve parametrelerini yapılandırmaktadır.

ALTER DATABASE [database_name]
SET QUERY_STORE = ON
    (
      OPERATION_MODE = READ_WRITE,
      CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = 90 ),
      DATA_FLUSH_INTERVAL_SECONDS = 900,
      QUERY_CAPTURE_MODE = AUTO,
      MAX_STORAGE_SIZE_MB = 1024,
      INTERVAL_LENGTH_MINUTES = 60
    );

F. Sorgu Deposu'nı bekleme istatistikleriyle etkinleştirme

için geçerlidir: SQL Server (SQL Server 2017 (14.x) ile başlayarak)

Aşağıdaki örnek Sorgu Deposu'na olanak tanır ve parametrelerini yapılandırmaktadır.

ALTER DATABASE [database_name]
SET QUERY_STORE = ON
    (
      OPERATION_MODE = READ_WRITE,
      CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = 90 ),
      DATA_FLUSH_INTERVAL_SECONDS = 900,
      MAX_STORAGE_SIZE_MB = 1024,
      INTERVAL_LENGTH_MINUTES = 60,
      SIZE_BASED_CLEANUP_MODE = AUTO,
      MAX_PLANS_PER_QUERY = 200,
      WAIT_STATS_CAPTURE_MODE = ON,
    );

G. Özel yakalama ilkesi seçenekleriyle Sorgu Deposu'yu etkinleştirme

için geçerlidir: SQL Server (SQL Server 2019 (15.x) ile başlayarak)

Aşağıdaki örnek Sorgu Deposu'na olanak tanır ve parametrelerini yapılandırmaktadır.

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

SQL Server

* SQL Veritabanı *  

SQL Yönetilen Örneği

Azure Synapse'i
Analiz

Microsoft Fabric

 

SQL Veritabanı

Uyumluluk düzeyleri SET seçeneklerdir ancak ALTER DATABASE uyumluluk düzeyiaçıklanmıştır.

Not

Çoğu veritabanı kümesi seçeneği, SET Deyimleri kullanılarak geçerli oturum için yapılandırılabilir ve genellikle bağlandığında uygulamalar tarafından yapılandırılır. Oturum düzeyi ayar seçenekleri ALTER DATABASE SET değerlerini geçersiz kılar. Aşağıdaki bölümlerde açıklanan veritabanı seçenekleri, diğer ayar seçeneği değerlerini açıkça sağlamayan oturumlar için ayarlanabilen değerlerdir.

Sözdizimi

ALTER DATABASE { database_name | Current }
SET
{
    <option_spec> [ ,...n ] [ WITH <termination> ]
}
;

<option_spec> ::=
{
    <auto_option>
  | <automatic_tuning_option>
  | <change_tracking_option>
  | <cursor_option>
  | <db_encryption_option>
  | <db_update_option>
  | <db_user_access_option>
  | <delayed_durability_option>
  | <parameterization_option>
  | <query_store_options>
  | <snapshot_option>
  | <sql_option>
  | <target_recovery_time_option>
  | <termination>
  | <temporal_history_retention>
}
;

<auto_option> ::=
{
    AUTO_CREATE_STATISTICS { OFF | ON [ ( INCREMENTAL = { ON | OFF } ) ] }
  | AUTO_SHRINK { ON | OFF }
  | AUTO_UPDATE_STATISTICS { ON | OFF }
  | AUTO_UPDATE_STATISTICS_ASYNC { ON | OFF }
}

<automatic_tuning_option> ::=
{
    AUTOMATIC_TUNING = { AUTO | INHERIT | CUSTOM }
  | AUTOMATIC_TUNING ( CREATE_INDEX = { DEFAULT | ON | OFF } )
  | AUTOMATIC_TUNING ( DROP_INDEX = { DEFAULT | ON | OFF } )
  | AUTOMATIC_TUNING ( FORCE_LAST_GOOD_PLAN = { DEFAULT | ON | OFF } )
}

<change_tracking_option> ::=
{
    CHANGE_TRACKING
    {
        = OFF
      | = ON [ ( <change_tracking_option_list > [,...n] ) ]
      | ( <change_tracking_option_list> [,...n] )
    }
}

<change_tracking_option_list> ::=
   {
       AUTO_CLEANUP = { ON | OFF }
     | CHANGE_RETENTION = retention_period { DAYS | HOURS | MINUTES }
   }

<cursor_option> ::=
{
    CURSOR_CLOSE_ON_COMMIT { ON | OFF }
}

<db_encryption_option> ::=
  ENCRYPTION { ON | OFF }

<db_update_option> ::=
  { READ_ONLY | READ_WRITE }

<db_user_access_option> ::=
  { RESTRICTED_USER | MULTI_USER }

<delayed_durability_option> ::= DELAYED_DURABILITY = { DISABLED | ALLOWED | FORCED }

<parameterization_option> ::=
  PARAMETERIZATION { SIMPLE | FORCED }

<query_store_options> ::=
{
  QUERY_STORE
  {
      = OFF
    | = ON [ ( <query_store_option_list> [,... n] ) ]
    | ( < query_store_option_list> [,... n] )
    | CLEAR [ ALL ]
  }
}

<query_store_option_list> ::=
{
  OPERATION_MODE = { READ_WRITE | READ_ONLY }
  | CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = number )
  | DATA_FLUSH_INTERVAL_SECONDS = number
  | MAX_STORAGE_SIZE_MB = number
  | INTERVAL_LENGTH_MINUTES = number
  | SIZE_BASED_CLEANUP_MODE = { AUTO | OFF }
  | QUERY_CAPTURE_MODE = { ALL | AUTO | CUSTOM | NONE }
  | MAX_PLANS_PER_QUERY = number
  | WAIT_STATS_CAPTURE_MODE = { ON | OFF }
  | QUERY_CAPTURE_POLICY = ( <query_capture_policy_option_list> [,...n] )
}

<query_capture_policy_option_list> :: =
{
    STALE_CAPTURE_POLICY_THRESHOLD = number { DAYS | HOURS }
    | EXECUTION_COUNT = number
    | TOTAL_COMPILE_CPU_TIME_MS = number
    | TOTAL_EXECUTION_CPU_TIME_MS = number
}

<snapshot_option> ::=
{
    ALLOW_SNAPSHOT_ISOLATION { ON | OFF }
  | READ_COMMITTED_SNAPSHOT { ON | OFF }
  | MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT { ON | OFF }
}
<sql_option> ::=
{
    ANSI_NULL_DEFAULT { ON | OFF }
  | ANSI_NULLS { ON | OFF }
  | ANSI_PADDING { ON | OFF }
  | ANSI_WARNINGS { ON | OFF }
  | ARITHABORT { ON | OFF }
  | COMPATIBILITY_LEVEL = { 160 | 150 | 140 | 130 | 120 | 110 | 100 }
  | CONCAT_NULL_YIELDS_NULL { ON | OFF }
  | NUMERIC_ROUNDABORT { ON | OFF }
  | QUOTED_IDENTIFIER { ON | OFF }
  | RECURSIVE_TRIGGERS { ON | OFF }
}

<termination>::=
{
    ROLLBACK AFTER integer [ SECONDS ]
  | ROLLBACK IMMEDIATE
  | NO_WAIT
}

<temporal_history_retention>::=TEMPORAL_HISTORY_RETENTION { ON | OFF }

Bağımsız değişken

database_name

Değiştirilecek veritabanının adı.

  • GEÇERLİ

    CURRENT eylemi geçerli veritabanında çalıştırır. CURRENT tüm bağlamlardaki tüm seçenekler için desteklenmez. CURRENT başarısız olursa veritabanı adını belirtin.

<auto_option> ::=

Otomatik seçenekleri denetler.

AUTO_CREATE_STATISTICS { ON | KAPALI }

  • ÜZERİNDE

    Sorgu İyileştiricisi, sorgu planlarını ve sorgu performansını geliştirmek için gerektiğinde sorgu koşullarındaki tek sütunlarda istatistikler oluşturur. Bu tek sütunlu istatistikler, Sorgu İyileştiricisi sorguları derlediğinde oluşturulur. Tek sütunlu istatistikler yalnızca mevcut istatistik nesnesinin ilk sütunu olmayan sütunlarda oluşturulur.

    Varsayılan değer ON'dır. Çoğu veritabanı için varsayılan ayarı kullanmanızı öneririz.

  • KAPALI

    Sorgu İyileştiricisi, sorgu derlerken sorgu koşullarında tek sütunlarda istatistik oluşturmaz. Bu seçeneğin KAPALI olarak ayarlanması, yetersiz sorgu planlarına ve düşük sorgu performansına neden olabilir.

sys.databases katalog görünümündeki is_auto_create_stats_on sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsAutoCreateStatistics özelliğini inceleyerek de durumu belirleyebilirsiniz.

Daha fazla bilgi için, İstatistikler'deki "İstatistik seçenekleri" bölümüne bakın.

ARTıMLı = ON | KAPALI

AUTO_CREATE_STATISTICS AÇıK olarak ayarlayın ve ARTıMLı'yı ON olarak ayarlayın. Bu ayar, artımlı istatistikler desteklendiği her durumda otomatik olarak oluşturulan istatistikleri artımlı olarak oluşturur. Varsayılan değer KAPALI'dır. Daha fazla bilgi için bkz. create STATISTICS.

AUTO_SHRINK { ON | KAPALI }

  • ÜZERİNDE

    Veritabanı dosyaları düzenli aralıklarla daraltma için adaydır. Belirli bir gereksiniminiz yoksa AUTO_SHRINK veritabanı seçeneğini ON olarak ayarlamayın. Daha fazla bilgi için bkz. veritabanını küçültme.

Hem veri dosyası hem de günlük dosyaları otomatik olarak küçültülebilir. AUTO_SHRINK işlem günlüğünün boyutunu yalnızca veritabanını SIMPLE kurtarma modeli olarak ayarlarsanız veya günlüğü yedeklerseniz azaltır. KAPALI olarak ayarlandığında, kullanılmayan alan için düzenli denetimler sırasında veritabanı dosyaları otomatik olarak küçültülür.

AUTO_SHRINK seçeneği, dosyanın yüzde 25'inden fazlası kullanılmayan alan içerdiğinde dosyaların küçültülmelerine neden olur. seçeneği, dosyanın iki boyuttan birine küçültülmesini sağlar. Aşağıdakilerden hangisi daha büyükse küçülür:

  • Dosyanın yüzde 25'inin kullanılmayan alan olduğu boyut
  • Dosyanın oluşturulduğu zaman boyutu

Salt okunur veritabanını küçültemezsiniz.

  • KAPALI

    Kullanılmayan alan için düzenli aralıklarla yapılan denetimler sırasında veritabanı dosyaları otomatik olarak küçülmez.

sys.databases katalog görünümündeki is_auto_shrink_on sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsAutoShrink özelliğini inceleyerek de durumu belirleyebilirsiniz.

Not

AUTO_SHRINK seçeneği, kapsanan bir veritabanında kullanılamaz.

AUTO_UPDATE_STATISTICS { ON | KAPALI }

  • ÜZERİNDE

    Sorgu İyileştiricisi'nin bir sorgu tarafından kullanıldığında ve güncel olma durumlarında istatistikleri güncelleştirdiğini belirtir. Ekleme, güncelleştirme, silme veya birleştirme işlemleri tablodaki veya dizinli görünümdeki veri dağıtımını değiştirdikten sonra istatistikler güncel değildir. Sorgu İyileştiricisi, son istatistik güncelleştirmelerinden bu yana yapılan veri değişikliklerinin sayısını sayarak ve değişikliklerin sayısını bir eşikle karşılaştırarak istatistiklerin ne zaman güncel olabileceğini belirler. Eşik, tablodaki veya dizinli görünümdeki satır sayısını temel alır.

    Sorgu İyileştiricisi, sorgu derlemeden ve önbelleğe alınmış bir sorgu planı çalıştırmadan önce güncel olmayan istatistikleri denetler. Sorgu İyileştiricisi, hangi istatistiklerin güncel olmayabileceğini belirlemek için sorgu koşulundaki sütunları, tabloları ve dizine alınan görünümleri kullanır. Sorgu İyileştirici bu bilgileri bir sorgu derlemeden önce belirler. Önbelleğe alınmış bir sorgu planını çalıştırmadan önce Veritabanı Altyapısı, sorgu planının up-totarih istatistiklerine başvurduğunu doğrular.

    AUTO_UPDATE_STATISTICS seçeneği dizinler için oluşturulan istatistikler, sorgu koşulundaki tek sütunlar ve CREATE STATISTICS deyimi kullanılarak oluşturulan istatistikler için geçerlidir. Bu seçenek filtrelenmiş istatistikler için de geçerlidir.

    Varsayılan değer ON'dır. Çoğu veritabanı için varsayılan ayarı kullanmanızı öneririz.

    İstatistiklerin zaman uyumlu mu yoksa zaman uyumsuz olarak mı güncelleştirileceğini belirtmek için AUTO_UPDATE_STATISTICS_ASYNC seçeneğini kullanın.

  • KAPALI

    Sorgu İyileştirici'nin bir sorgu tarafından kullanıldığında istatistikleri güncelleştirmediğini belirtir. Sorgu İyileştiricisi ayrıca güncel olmayan istatistikleri güncelleştirmez. Bu seçeneğin KAPALI olarak ayarlanması, yetersiz sorgu planlarına ve düşük sorgu performansına neden olabilir.

    sys.databases katalog görünümündeki is_auto_update_stats_on sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsAutoUpdateStatistics özelliğini inceleyerek de durumu belirleyebilirsiniz.

    Daha fazla bilgi için, İstatistikler'deki "İstatistik seçenekleri" bölümüne bakın.

AUTO_UPDATE_STATISTICS_ASYNC { ON | KAPALI }

  • ÜZERİNDE

    AUTO_UPDATE_STATISTICS seçeneği için istatistik güncelleştirmelerinin zaman uyumsuz olduğunu belirtir. Sorgu İyileştiricisi, sorguları derlemeden önce istatistik güncelleştirmelerinin tamamlanmasını beklemez.

    AUTO_UPDATE_STATISTICS AÇıK olarak ayarlanmadığı sürece bu seçeneğiN ON olarak ayarlanmasının hiçbir etkisi olmaz.

    Varsayılan olarak, AUTO_UPDATE_STATISTICS_ASYNC seçeneği KAPALI olarak ayarlanır ve Sorgu İyileştiricisi istatistikleri zaman uyumlu olarak güncelleştirir.

  • KAPALI

    AUTO_UPDATE_STATISTICS seçeneği için istatistik güncelleştirmelerinin zaman uyumlu olduğunu belirtir. Sorgu İyileştiricisi, sorguları derlemeden önce istatistik güncelleştirmelerinin tamamlanmasını bekler.

    AUTO_UPDATE_STATISTICS AÇıK olarak ayarlanmadığı sürece bu seçeneği KAPALI olarak ayarlamanın hiçbir etkisi olmaz.

sys.databases katalog görünümündeki is_auto_update_stats_async_on sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz.

Zaman uyumlu veya zaman uyumsuz istatistik güncelleştirmelerinin ne zaman kullanılacağını açıklayan daha fazla bilgi için, İstatistikler'deki "İstatistik seçenekleri" bölümüne bakın.

<automatic_tuning_option> ::=

Otomatik ayarlamaiçin otomatik seçenekleri denetler. Aşağıdaki ayarların seçeneklerini Azure portalında veya T-SQL aracılığıyla sys.database_automatic_tuning_optionsgörünümünde görüntüleyebilirsiniz.

AUTOMATIC_TUNING = { AUTO | DEVRAL | ÖZEL }

  • OTOMATİK

    Otomatik ayarlama değerini AUTO olarak ayarlamak, Otomatik ayarlama için Azure yapılandırma varsayılanlarını uygular. Azure portalında bu, "Devral: Azure varsayılanları" seçeneğini yansıtır.

  • DEVRALIR

    INHERIT değerinin kullanılması, varsayılan yapılandırmayı üst sunucudan devralır. Azure portalında bu, "Devralma: Sunucu" seçeneğini yansıtır. Bu, özellikle bir üst sunucuda Otomatik ayarlama yapılandırmasını özelleştirmek ve bu sunucudaki tüm veritabanlarının bu özel ayarları DEVRALMASINI sağlamak istiyorsanız kullanışlıdır. Devralma işleminin çalışması için üç ayrı ayarlama seçeneğinin FORCE_LAST_GOOD_PLAN, CREATE_INDEX ve DROP_INDEX veritabanlarında DEFAULT olarak ayarlanması gerekir.

  • TÖRE

    CUSTOM değerini kullanarak veritabanlarında kullanılabilen Otomatik Ayarlama seçeneklerinin her birini özel olarak yapılandırmanız gerekir. Azure portalında bu, "Devral: Devralma" seçeneğini yansıtır.

CREATE_INDEX = { DEFAULT | ON | KAPALI }

otomatik dizin yönetimi CREATE_INDEXOtomatik ayarlamaseçeneğini etkinleştirir veya devre dışı bırakır. Bu seçeneğin durumunu Azure portalında veya T-SQL aracılığıyla sys.database_automatic_tuning_optionsgörünümünde görüntüleyebilirsiniz.

  • TEMERRÜT

    Varsayılan ayarları sunucudan devralır. Bu durumda, tek tek Otomatik ayarlama özelliklerini etkinleştirme veya devre dışı bırakma seçenekleri sunucu düzeyinde tanımlanır.

  • ÜZERİNDE

    Etkinleştirildiğinde, eksik dizinler veritabanında otomatik olarak oluşturulur. Dizin oluşturma işleminden sonra iş yükünün performansına yönelik kazançlar doğrulanır. Bu tür oluşturulan dizin artık iş yükü performansına avantaj sağlamadığında otomatik olarak geri döndürülür. Otomatik olarak oluşturulan dizinler, sistem tarafından oluşturulan dizin olarak işaretlenir.

  • KAPALI

    Veritabanında otomatik olarak eksik dizinler oluşturmaz.

DROP_INDEX = { DEFAULT | ON | KAPALI }

otomatik dizin yönetimi DROP_INDEXOtomatik ayarlamaseçeneğini etkinleştirir veya devre dışı bırakır. Bu seçeneğin durumunu Azure portalında veya T-SQL aracılığıyla sys.database_automatic_tuning_optionsgörünümünde görüntüleyebilirsiniz.

  • TEMERRÜT

    Varsayılan ayarları sunucudan devralır. Bu durumda, tek tek Otomatik ayarlama özelliklerini etkinleştirme veya devre dışı bırakma seçenekleri sunucu düzeyinde tanımlanır.

  • ÜZERİNDE

    Yinelenen veya artık yararlı olmayan dizinleri otomatik olarak performans iş yüküne bırakır.

  • KAPALI

    Eksik dizinleri veritabanında otomatik olarak bırakmaz.

FORCE_LAST_GOOD_PLAN = { DEFAULT | ON | KAPALI }

Otomatik ayarlamaotomatik 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.

  • TEMERRÜT

    Varsayılan ayarları sunucudan devralır. Bu durumda, tek tek Otomatik ayarlama özelliklerini etkinleştirme veya devre dışı bırakma seçenekleri sunucu düzeyinde tanımlanır. Bu varsayılan değerdir. Yeni Azure SQL sunucularının varsayılan değeri ON'dır; yani yeni veritabanları varsayılan olarak ON ayarını devralır.

  • ÜZERİNDE

    Veritabanı Altyapısı, yeni sorgu planının performans regresyonlarına neden olduğu Transact-SQL sorgularda bilinen son iyi planı otomatik olarak zorlar. Veritabanı Altyapısı, zorlamalı planla Transact-SQL sorgunun sorgu performansını sürekli izler. Performans kazançları varsa Veritabanı Altyapısı bilinen son iyi planı kullanmaya devam eder. Performans kazanımları algılanmamışsa Veritabanı Altyapısı yeni bir sorgu planı oluşturur. Sorgu Deposu etkinleştirilmediyse veya okuma-yazma modunda deyimi başarısız olur.

  • KAPALI

    Veritabanı Altyapısı, sys.dm_db_tuning_recommendations görünümde sorgu planı değişikliklerinin neden olduğu olası sorgu performansı regresyonlarını bildirir. Ancak bu öneriler otomatik olarak uygulanmaz. Kullanıcılar, görünümde gösterilen Transact-SQL betikleri uygulayarak etkin önerileri izleyebilir ve tanımlanan sorunları çözebilir.

<change_tracking_option> ::=

Değişiklik izleme seçeneklerini denetler. Değişiklik izlemeyi etkinleştirebilir, seçenekleri ayarlayabilir, seçenekleri değiştirebilir ve değişiklik izlemeyi devre dışı bırakabilirsiniz. Örnekler için bu makalenin devamında yer alan Örnekler bölümüne bakın.

  • ÜZERİNDE

    Veritabanı için değişiklik izlemeyi etkinleştirir. Değişiklik izlemeyi etkinleştirdiğinizde, AUTO CLEANUP ve CHANGE RETENTION seçeneklerini de ayarlayabilirsiniz.

    • AUTO_CLEANUP = { ON | KAPALI }

      • ÜZERİNDE

        Değişiklik izleme bilgileri belirtilen saklama süresinden sonra otomatik olarak kaldırılır.

      • KAPALI

        Değişiklik izleme verileri veritabanından kaldırılmaz.

    • CHANGE_RETENTION = retention_period { DAYS | SAAT | DAKİkA }

      Değişiklik izleme bilgilerini veritabanında tutmak için en düşük süreyi belirtir. Veriler yalnızca AUTO_CLEANUP değeri AÇILDI olduğunda kaldırılır.

      retention_period, bekletme süresinin sayısal bileşenini belirten bir tamsayıdır.

      Varsayılan saklama süresi2 gün . En düşük saklama süresi 1 dakikadır. Varsayılan bekletme türüDAYS'dır.

  • KAPALI

    Veritabanı için değişiklik izlemeyi devre dışı bırakır. Veritabanında değişiklik izlemeyi devre dışı bırakmadan önce tüm tablolarda değişiklik izlemeyi devre dışı bırakın.

<cursor_option> ::=

İmleç seçeneklerini denetler.

CURSOR_CLOSE_ON_COMMIT { ON | KAPALI }

  • ÜZERİNDE

    bir işlemi işlediğiniz veya geri aldığınızda açılan tüm imleçler kapatılır.

  • KAPALI

    bir işlem işlendiğinde imleçler açık kalır; bir işlemi geri döndürmek, DUYARSIZ veya STATIK olarak tanımlanan imleçler dışında tüm imleçleri kapatır.

SET deyimi kullanılarak ayarlanan bağlantı düzeyi ayarları, CURSOR_CLOSE_ON_COMMIT için varsayılan veritabanı ayarını geçersiz kılar. ODBC ve OLE DB istemcileri, oturum için varsayılan olarak OFF olarak CURSOR_CLOSE_ON_COMMIT bir bağlantı düzeyi SET deyimi ayarı gönderir. SQL Server örneğine bağlandığınızda istemciler deyimini çalıştırır. Daha fazla bilgi için bkz. set CURSOR_CLOSE_ON_COMMIT.

sys.databases katalog görünümündeki is_cursor_close_on_commit_on sütununu veya DATABASEPROPERTYEX işlevinin IsCloseCursorsOnCommitEnabled özelliğini inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. İmleç örtük olarak yalnızca bağlantı kesildiğinde serbest bırakılır. Daha fazla bilgi için bkz. DECLARE CURSOR.

<db_encryption_option> ::=

Veritabanı şifreleme durumunu denetler.

ŞIFRELEME { ON | KAPALI }

Veritabanını şifrelenecek (ON) veya şifrelenmez (KAPALI) olarak ayarlar. Veritabanı şifrelemesi hakkında daha fazla bilgi için bkz. Saydam veri şifrelemesi (TDE)ve Azure SQL Veritabanı, Azure SQL Yönetilen Örneği ve Azure Synapse Analyticsiçin saydam veri şifrelemesi.

Şifreleme veritabanı düzeyinde etkinleştirildiğinde, tüm dosya grupları şifrelenir. Tüm yeni dosya grupları şifrelenmiş özelliği devralır. Veritabanındaki herhangi bir dosya grubu SALT OKUNUR olarak ayarlanırsa, veritabanı şifreleme işlemi başarısız olur.

sys.dm_database_encryption_keys dinamik yönetim görünümünü kullanarak veritabanının şifreleme durumunu görebilirsiniz.

<db_update_option> ::=

Veritabanında güncelleştirmelere izin verilip verilmeyeceğini denetler.

  • READ_ONLY

    Kullanıcılar veritabanındaki verileri okuyabilir ancak değiştiremez.

    Not

    Sorgu performansını geliştirmek için veritabanını READ_ONLY olarak ayarlamadan önce istatistikleri güncelleştirin. Veritabanı READ_ONLY olarak ayarlandıktan sonra ek istatistikler gerekiyorsa, Veritabanı Altyapısı tempdbiçinde istatistikler oluşturur. Salt okunur veritabanı istatistikleri hakkında daha fazla bilgi için bkz. İstatistikler.

  • READ_WRITE

    Veritabanı okuma ve yazma işlemleri için kullanılabilir.

Bu durumu değiştirmek için veritabanına özel erişime sahip olmanız gerekir. Daha fazla bilgi için SINGLE_USER yan tümcesine bakın.

Not

Azure SQL Veritabanı federasyon veritabanlarında SET { READ_ONLY | READ_WRITE } devre dışı bırakılır.

<db_user_access_option> ::=

Veritabanına kullanıcı erişimini denetler.

  • RESTRICTED_USER

    Yalnızca db_owner sabit veritabanı rolünün üyelerine ve dbcreator ve sysadmin sabit sunucu rollerinin veritabanına bağlanmasına izin verir, ancak bunların sayısını sınırlamaz. Veritabanına yönelik tüm bağlantıların bağlantısı ALTER DATABASE deyiminin sonlandırma yan tümcesi tarafından belirtilen zaman çerçevesi içinde kesilir. Veritabanı RESTRICTED_USER durumuna geçtikten sonra, nitelenmemiş kullanıcıların bağlantı girişimleri reddedilir. Azure SQL Veritabanı'nda, kullanıcı veritabanının içinden yürütülmelidir. master veritabanından bir hata iletisiyle karşılaşabilirsiniz Msg 42008, Level 16, State 3, Line 1 ODBC error: State: 28000: Error: 18456 Message:'[Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Login failed for user '##MS_InstanceCertificate##'.'.

  • MULTI_USER

    Veritabanına bağlanmak için uygun izinlere sahip tüm kullanıcılara izin verilir. sys.databases katalog görünümündeki user_access sütununu veya DATABASEPROPERTYEX işlevinin UserAccess özelliğini inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Azure SQL Veritabanı'nda, kullanıcı veritabanının içinden yürütülmelidir. master veritabanından bir hata iletisiyle karşılaşabilirsiniz Msg 42008, Level 16, State 3, Line 1 ODBC error: State: 28000: Error: 18456 Message:'[Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Login failed for user '##MS_InstanceCertificate##'.'.

<delayed_durability_option> ::=

İşlemlerin tamamen dayanıklı mı yoksa gecikmeli dayanıklı mı işlediğini denetler.

  • SAKAT

    SET DISABLED izleyen tüm işlemler tamamen dayanıklıdır. Atomik blokta veya işleme deyiminde ayarlanan tüm dayanıklılık seçenekleri yoksayılır.

  • IZİN VERİLEN

    SET ALLOWED izleyen tüm işlemler, atomik blokta veya işleme deyiminde ayarlanan dayanıklılık seçeneğine bağlı olarak tamamen dayanıklı veya gecikmeli dayanıklıdır.

  • ZORLA

    SET FORCED izleyen tüm işlemler gecikmeli dayanıklıdır. Atomik blokta veya işleme deyiminde ayarlanan tüm dayanıklılık seçenekleri yoksayılır.

<PARAMETERIZATION_option> ::=

Parametreleştirme seçeneğini denetler.

PARAMETRELEŞTIRME { SIMPLE | FORCED }

  • BASİT

    Sorgular, veritabanının varsayılan davranışına göre parametreleştirilir.

  • ZORLA

    SQL Server, veritabanındaki tüm sorguları parametreleştirir.

Bu seçeneğin geçerli ayarı, sys.databases katalog görünümündeki is_parameterization_forced sütunu incelenerek belirlenebilir.

<query_store_options> ::=

  • ON | KAPALI | CLEAR [ ALL ]

    Bu veritabanında Sorgu Deposu'nun etkinleştirilip etkinleştirilmediğini denetler ve ayrıca Sorgu Deposu'nun içeriğini kaldırmayı denetler.

    • ÜZERİNDE

      Sorgu Deposu'na olanak tanır. ON varsayılan değerdir.

    • KAPALI

      Sorgu Deposu'nı devre dışı bırakır.

      Not

      Sorgu Deposu, Azure SQL Veritabanı tek veritabanında ve Elastik Havuz'da devre dışı bırakılamaz. ALTER DATABASE [database] SET QUERY_STORE = OFF yürütülürken 'QUERY_STORE=OFF' is not supported in this version of SQL Server.uyarısını döndürür.

    • BERRAK

      Sorgu Deposu'nun içeriğini kaldırın.

OPERATION_MODE

Sorgu Deposu'nun işlem modunu açıklar. Geçerli değerler READ_ONLY ve READ_WRITE. READ_WRITE modunda Sorgu Deposu sorgu planı ve çalışma zamanı yürütme istatistikleri bilgilerini toplar ve kalıcı hale toplar. READ_ONLY modunda bilgiler Sorgu Deposu'ndan okunabilir, ancak yeni bilgiler eklenmez. Sorgu Deposu'nun ayrılan en fazla alanı tükendiyse, Sorgu Deposu işlem modunu READ_ONLY olarak değiştirir.

CLEANUP_POLICY

Sorgu Deposu'nun veri saklama ilkesini açıklar. STALE_QUERY_THRESHOLD_DAYS, sorgu bilgilerinin Sorgu Deposu'nda tutulduğu gün sayısını belirler. STALE_QUERY_THRESHOLD_DAYS biginttürüdür. Varsayılan değer 30'dur. SQL Veritabanı Temel sürümü için varsayılan değer 7 gün .

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 biginttürüdür. Varsayılan değer 900 (15 dk) .

MAX_STORAGE_SIZE_MB

Sorgu Deposu'na ayrılan alanı belirler. MAX_STORAGE_SIZE_MB, biginttürüdür.

Not

Azure SQL Veritabanı'nda varsayılan değeri 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 en fazla değeri 10.240 MB.

Not

MAX_STORAGE_SIZE_MB sınırı kesinlikle uygulanmaz. Depolama boyutu yalnızca Sorgu Deposu diske veri yazdığında denetlenmektedir. Bu aralık, veri temizleme aralığı seçeneği veya Management Studio Sorgu Deposu iletişim kutusu seçeneği tarafından ayarlanır. Aralık varsayılan değeri 900 saniyedir (veya 15 dakika). Sorgu Deposu depolama boyutu denetimleri arasındaki MAX_STORAGE_SIZE_MB sınırını aştıysa salt okunur moda geçer. SIZE_BASED_CLEANUP_MODE etkinleştirilirse, MAX_STORAGE_SIZE_MB sınırını zorlamak için temizleme mekanizması da tetikler. Yeterli alan temizlendikten sonra Sorgu Deposu modu otomatik olarak yeniden okuma-yazma moduna geçer.

Önemli

İş yükü yakalamanızın 10 GB'tan fazla disk alanına ihtiyacı olduğunu düşünüyorsanız, sorgu planlarını yeniden kullanmak için iş yükünüzü yeniden düşünmeli ve iyileştirmelisiniz (örneğin, zorlamalı parametrelemekullanarak veya Sorgu Deposu yapılandırmalarını ayarlamalısınız. SQL Server 2019'dan (15.x) başlayarak ve Azure SQL Veritabanı'nda sorgu yakalama ilkesi üzerinde ek denetim için QUERY_CAPTURE_MODE CUSTOM olarak ayarlayabilirsiniz.

INTERVAL_LENGTH_MINUTES

Çalışma zamanı yürütme istatistikleri verilerinin Sorgu Deposu'nda toplandığı zaman aralığını belirler. Alan kullanımını iyileştirmek için, çalışma zamanı istatistikleri deposundaki çalışma zamanı yürütme istatistikleri sabit bir zaman aralığı boyunca toplanır. Bu sabit zaman penceresi INTERVAL_LENGTH_MINUTES bağımsız değişkeni kullanılarak yapılandırılır. INTERVAL_LENGTH_MINUTES biginttürüdür. Varsayılan değer 60.

SIZE_BASED_CLEANUP_MODE = { AUTO | KAPALI }

Toplam veri miktarı maksimum boyuta yaklaştığında temizlemenin otomatik olarak etkinleştirilip etkinleştirilmediğini denetler.

  • KAPALI

    Boyut tabanlı temizleme otomatik olarak etkinleştirilmez.

  • OTOMATİK

    Diskte boyut 90% max_storage_size_mbulaştığında boyut tabanlı temizleme otomatik olarak etkinleştirilir. Boyut tabanlı temizleme, önce en düşük maliyetli ve en eski sorguları kaldırır. Yaklaşık 80% max_storage_size_mbdurur. Bu varsayılan yapılandırma değeridir.

SIZE_BASED_CLEANUP_MODE nvarchartürüdür.

QUERY_CAPTURE_MODE { ALL | OTOMATİk | ÖZEL | NONE }

Şu anda etkin olan sorgu yakalama modunu atar. Her mod belirli sorgu yakalama ilkelerini tanımlar.

Not

sorgu yakalama modu ALL, AUTO veya CUSTOM olarak ayarlandığında imleçler, Saklı Yordamlar içindeki sorgular ve Yerel olarak derlenmiş sorgular her zaman yakalanır.

  • TÜM

    Tüm sorguları yakalar.

  • OTOMATİK

    Yürütme sayısına ve kaynak tüketimine göre ilgili sorguları yakalayın. Bu, Azure SQL Veritabanı için varsayılan yapılandırma değeridir.

  • Hiç kimse

    Yeni sorguları yakalamayı durdurun. Sorgu Deposu, zaten yakalanan sorgular için derleme ve çalışma zamanı istatistiklerini toplamaya devam eder. Önemli sorguları yakalamayı kaçırabileceğiniz için bu yapılandırmayı dikkatli kullanın.

  • TÖRE

    QUERY_CAPTURE_POLICY seçenekleri üzerinde denetime izin verir.

QUERY_CAPTURE_MODE nvarchartürüdür.

MAX_PLANS_PER_QUERY

Her sorgu için tutulan plan sayısı üst sınırını tanımlar. MAX_PLANS_PER_QUERYtürüdür. Varsayılan değer 200değeridir.

WAIT_STATS_CAPTURE_MODE { ON | KAPALI }

Sorgu başına bekleme istatistiklerinin yakalanıp yakalanmayacağını denetler.

  • ÜZERİNDE

    Sorgu başına bekleme istatistikleri bilgileri yakalanır. Bu değer varsayılan yapılandırma değeridir.

  • KAPALI

    Sorgu başına bekleme istatistikleri bilgileri yakalanmaz.

<query_capture_policy_option_list> :: =

Sorgu Deposu yakalama ilkesi seçeneklerini denetler. STALE_CAPTURE_POLICY_THRESHOLD dışında, bu seçenekler sorguların tanımlanan Eski Yakalama İlkesi Eşiği değerinde yakalanması için gerçekleşmesi gereken OR koşullarını tanımlar.

STALE_CAPTURE_POLICY_THRESHOLD = tamsayı { GÜN | HOURS }

Bir sorgunun yakalanması gerekip gerekmediğini belirlemek için değerlendirme aralığını tanımlar. Varsayılan değer 1 gündür ve 1 saatten yedi güne ayarlanabilir. sayı inttürüdür.

EXECUTION_COUNT = tamsayı

Bir sorgunun değerlendirme süresi boyunca yürütülme sayısını tanımlar. Varsayılan değer 30'dur. Bu, varsayılan Eski Yakalama İlkesi Eşiği için sorgunun Sorgu Deposu'nda kalıcı olması için bir günde en az 30 kez yürütülmesi gerektiği anlamına gelir. EXECUTION_COUNT, inttürüdür.

TOTAL_COMPILE_CPU_TIME_MS = tamsayı

Değerlendirme süresi boyunca sorgu tarafından kullanılan toplam derleme CPU süresini tanımlar. Varsayılan değer 1000'dir ve bu da varsayılan Eski Yakalama İlkesi Eşiği için sorgunun Sorgu Deposu'nda kalıcı olması için sorgu derlemesi sırasında harcanan cpu süresinin bir gün içinde toplam en az bir saniye olması gerektiği anlamına gelir. TOTAL_COMPILE_CPU_TIME_MStürüdür.

TOTAL_EXECUTION_CPU_TIME_MS = tamsayı

Değerlendirme süresi boyunca sorgu tarafından kullanılan toplam yürütme CPU süresini tanımlar. Varsayılan değer 100'dür. Bu, varsayılan Eski Yakalama İlkesi Eşiği için sorgunun Sorgu Deposu'nda kalıcı olması için bir günde yürütme sırasında harcanan toplam CPU süresi en az 100 ms olması gerektiği anlamına gelir. TOTAL_EXECUTION_CPU_TIME_MS, inttürüdür.

<snapshot_option> ::=

İşlem yalıtım düzeyini belirler.

ALLOW_SNAPSHOT_ISOLATION { ON | KAPALI }

  • ÜZERİNDE

    Veritabanı düzeyinde Anlık Görüntü seçeneğini etkinleştirir. Etkinleştirildiğinde, hiçbir işlem Anlık Görüntü Yalıtımı kullanmasa bile DML deyimleri satır sürümleri oluşturmaya başlar. Bu seçenek etkinleştirildikten sonra işlemler SNAPSHOT işlem yalıtım düzeyini belirtebilir. Bir işlem SNAPSHOT yalıtım düzeyinde çalıştırıldığında, tüm deyimler işlemin başlangıcında mevcut olan verilerin anlık görüntüsünü görür. SNAPSHOT yalıtım düzeyinde çalışan bir işlem birden çok veritabanındaki verilere erişiyorsa, ALLOW_SNAPSHOT_ISOLATION tüm veritabanlarında AÇILACAK şekilde ayarlanmalıdır veya işlemdeki her deyim, from yan tümcesindeki herhangi bir başvuruda kilit ipuçlarını ALLOW_SNAPSHOT_ISOLATION OFF olduğu bir veritabanındaki bir tabloya kilitleme ipuçlarını kullanmalıdır.

  • KAPALI

    Veritabanı düzeyinde Anlık Görüntü seçeneğini kapatır. İşlemler SNAPSHOT işlemi yalıtım düzeyini belirtemez.

ALLOW_SNAPSHOT_ISOLATION yeni bir duruma ayarladığınızda (ON'dan KAPALI'ya veya KAPALI'dan ON'a), VERITABANıNDAki tüm mevcut işlemler işlenmeden ALTER DATABASE denetimi çağırana döndürmez. Veritabanı ZATEN ALTER DATABASE deyiminde belirtilen durumdaysa, denetim çağırana hemen döndürülür. ALTER DATABASE deyimi hızlı bir şekilde döndürülmezse, uzun süre çalışan işlemler olup olmadığını belirlemek için sys.dm_tran_active_snapshot_database_transactions kullanın. ALTER DATABASE deyimi iptal edilirse, veritabanı ALTER DATABASE başlatıldığında olduğu durumda kalır. sys.databases katalog görünümü, veritabanındaki anlık görüntü yalıtım işlemlerinin durumunu gösterir. snapshot_isolation_state_desc = IN_TRANSITION_TO_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 geçerli ayarı, sys.databases katalog görünümündeki snapshot_isolation_state sütunu incelenerek belirlenebilir.

READ_COMMITTED_SNAPSHOT { ON | KAPALI }

  • ÜZERİNDE

    Veritabanı düzeyinde Read-Committed Anlık Görüntü seçeneğini etkinleştirir. Etkinleştirildiğinde, hiçbir işlem Anlık Görüntü Yalıtımı kullanmasa bile DML deyimleri satır sürümleri oluşturmaya başlar. Bu seçenek etkinleştirildikten sonra, READ COMMITTED yalıtım düzeyini belirten işlemler kilitleme yerine satır sürümü oluşturma kullanır. Tüm deyimler, bir işlem READ COMMITTED yalıtım düzeyinde çalıştırıldığında deyiminin başında mevcut olan verilerin anlık görüntüsünü görür.

  • KAPALI

    Veritabanı düzeyinde Read-Committed Anlık Görüntü seçeneğini kapatır. READ COMMITTED yalıtım düzeyini belirten işlemler kilitlemeyi kullanır.

AÇıK veya KAPALI READ_COMMITTED_SNAPSHOT ayarlamak için, ALTER DATABASE komutunu çalıştıran bağlantı dışında veritabanına etkin bağlantı olmaması gerekir. Ancak veritabanının tek kullanıcı modunda olması gerekmez. Veritabanı ÇEVRİmDIŞI olduğunda bu seçeneğin durumunu değiştiremezsiniz.

READ_ONLY veritabanında READ_COMMITTED_SNAPSHOT ayarlarsanız, veritabanı daha sonra READ_WRITE olarak ayarlandığında ayar korunur.

READ_COMMITTED_SNAPSHOT master, 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 geçerli ayarı, sys.databases katalog görünümündeki is_read_committed_snapshot_on sütunu incelenerek belirlenebilir.

Uyarı

DURABILITY = SCHEMA_ONLYile bir tablo oluşturulduğunda ve READ_COMMITTED_SNAPSHOT daha sonra ALTER DATABASEkullanılarak değiştirildiğinde, tablodaki veriler kaybolur.

Bahşiş

Azure SQL Veritabanı'nda, bir veritabanı için READ_COMMITTED_SNAPSHOT ON veya OFF ayarlamak için ALTER DATABASE komutu master veritabanında yürütülmelidir.

MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT { ON | KAPALI }

  • ÜZERİNDE

    İşlem yalıtım düzeyi SNAPSHOT'dan daha düşük bir yalıtım düzeyine ayarlandığında, bellek için iyileştirilmiş tablolardaki tüm yorumlanan Transact-SQL işlemleri SNAPSHOT yalıtımı altında çalıştırılır. Anlık görüntüden düşük yalıtım düzeylerine örnek olarak READ COMMITTED veya READ UNCOMMITTED verilebilir. Bu işlemler, işlem yalıtım düzeyinin oturum düzeyinde açıkça ayarlanıp ayarlanmadığını veya varsayılanın örtük olarak kullanılıp kullanılmadığını çalıştırır.

  • KAPALI

    Bellek için iyileştirilmiş tablolarda yorumlanan Transact-SQL işlemleri için işlem yalıtım düzeyini yükseltmez.

Veritabanı ÇEVRİmDIŞI olduğunda MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT durumunu değiştiremezsiniz.

Varsayılan değer KAPALI'dır.

Bu seçeneğin geçerli ayarı, sys.databases katalog görünümündeki is_memory_optimized_elevate_to_snapshot_on sütunu incelenerek belirlenebilir.

<sql_option> ::=

VERITABANı düzeyinde ANSI uyumluluk seçeneklerini denetler.

ANSI_NULL_DEFAULT { ON | KAPALI }

Create TABLE veya ALTER TABLE deyimlerinde null atanabilirliğin açıkça tanımlanmadığı clr kullanıcı tanımlı tür bir sütunun veya null veya NOT NULL varsayılan değerini belirler. Kısıtlamalarla tanımlanan sütunlar, bu ayar ne olursa olsun kısıtlama kurallarına uyar.

  • ÜZERİNDE

    Varsayılan değer NULL'dir.

  • KAPALI

    Varsayılan değer NULL DEĞİlDİr.

SET deyimi kullanılarak ayarlanan bağlantı düzeyi ayarları, ANSI_NULL_DEFAULT için varsayılan veritabanı düzeyi ayarını geçersiz kılar. ODBC ve OLE DB istemcileri, oturum için varsayılan olarak AÇıK olarak ANSI_NULL_DEFAULT bir bağlantı düzeyi SET deyimi ayarı gönderir. SQL Server örneğine bağlandığınızda istemciler deyimini çalıştırır. Daha fazla bilgi için bkz. set ANSI_NULL_DFLT_ON.

ANSI uyumluluğu için, ANSI_NULL_DEFAULT veritabanı seçeneğinin ON olarak ayarlanması, veritabanının varsayılan değerini NULL olarak değiştirir.

sys.databases katalog görünümündeki is_ansi_null_default_on sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsAnsiNullDefault özelliğini inceleyerek de durumu belirleyebilirsiniz.

ANSI_NULLS { ON | KAPALI }

  • ÜZERİNDE

    Null değerle yapılan tüm karşılaştırmalar BİlİNMEYEN olarak değerlendirilir.

  • KAPALI

    Unicode olmayan değerlerin null değerle karşılaştırmaları, her iki değer de NULL ise TRUE olarak değerlendirilir.

Önemli

SQL Server'ın gelecekteki bir sürümünde ANSI_NULLS her zaman AÇIK olur ve seçeneği açıkça KAPALI olarak ayarlayan tüm uygulamalar hata oluşturur. Bu özelliği yeni geliştirme çalışmalarında kullanmaktan kaçının ve şu anda bu özelliği kullanan uygulamaları değiştirmeyi planlayın.

SET deyimi kullanılarak ayarlanan bağlantı düzeyi ayarları, ANSI_NULLS için varsayılan veritabanı ayarını geçersiz kılar. ODBC ve OLE DB istemcileri, oturum için varsayılan olarak AÇıK olarak ANSI_NULLS bir bağlantı düzeyi SET deyimi ayarı gönderir. SQL Server örneğine bağlandığınızda istemciler deyimini çalıştırır. Daha fazla bilgi için bkz. set ANSI_NULLS.

Not

SET ANSI_NULLS hesaplanan sütunlarda veya dizinlenmiş görünümlerde dizin oluşturduğunuzda veya dizinlerde değişiklik yaptığınızda da ON olarak ayarlanmalıdır.

sys.databases katalog görünümündeki is_ansi_nulls_on sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsAnsiNullsEnabled özelliğini inceleyerek de durumu belirleyebilirsiniz.

ANSI_PADDING { ON | KAPALI }

  • ÜZERİNDE

    Dizeler dönüştürmeden önce aynı uzunlukta doldurulur. Ayrıca bir varchar veya nvarchar veri türüne eklemeden önce aynı uzunlukta doldurulur.

  • KAPALI

    Karakter değerlerinde sondaki boşlukları varchar veya nvarchar sütunlarına ekler. Ayrıca, varbinary sütunlarına eklenen ikili değerlerde sondaki sıfırları bırakır. Değerler sütunun uzunluğuna göre doldurulamaz.

    KAPALI belirtildiğinde, bu ayar yalnızca yeni sütunların tanımını etkiler.

Önemli

SQL Server'ın gelecekteki bir sürümünde, ANSI_PADDING her zaman AÇIK olur ve seçeneği açıkça KAPALI olarak ayarlayan tüm uygulamalar bir hata oluşturur. Bu özelliği yeni geliştirme çalışmalarında kullanmaktan kaçının ve şu anda bu özelliği kullanan uygulamaları değiştirmeyi planlayın. ANSI_PADDING her zaman ON olarak ayarlamanızı öneririz. ANSI_PADDING hesaplanan sütunlarda veya dizinlenmiş görünümlerde dizin oluştururken veya işlerken ON olmalıdır.

char(n) ve ikili(n) null değere izin veren sütunlar, ANSI_PADDING ON olarak ayarlandığında sütun uzunluğuna doldurulur. ANSI_PADDING KAPALI olduğunda sondaki boşluklar ve sıfırlar kırpılır. char(n) ve binary(n) null değere izin verilmeyen sütunlar her zaman sütunun uzunluğuna doldurulur.

SET deyimi kullanılarak ayarlanan bağlantı düzeyi ayarları, ANSI_PADDING için varsayılan veritabanı düzeyi ayarını geçersiz kılar. ODBC ve OLE DB istemcileri, varsayılan olarak oturum için AÇıK olarak ANSI_PADDING bir bağlantı düzeyi SET deyimi ayarı gönderir. SQL Server örneğine bağlandığınızda istemciler deyimini çalıştırır. Daha fazla bilgi için bkz. set ANSI_PADDING.

sys.databases katalog görünümündeki is_ansi_padding_on sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsAnsiPaddingEnabled özelliğini inceleyerek de durumu belirleyebilirsiniz.

ANSI_WARNINGS { ON | KAPALI }

  • ÜZERİNDE

    Sıfıra bölme gibi koşullar oluştuğunda hatalar veya uyarılar verilir. Toplama işlevlerinde null değerler göründüğünde de hatalar ve uyarılar verilir.

  • KAPALI

    Sıfıra bölme gibi koşullar oluştuğunda hiçbir uyarı tetiklenmez ve null değerler döndürülür.

Not

HESAPLANAN sütunlarda veya dizinlenmiş görünümlerde dizin oluşturduğunuzda veya dizinlerde değişiklik yaptığınızda SET ANSI_WARNINGS ON olarak ayarlanmalıdır.

SET deyimi kullanılarak ayarlanan bağlantı düzeyi ayarları, ANSI_WARNINGS için varsayılan veritabanı ayarını geçersiz kılar. ODBC ve OLE DB istemcileri, oturum için varsayılan olarak AÇıK olarak ANSI_WARNINGS bir bağlantı düzeyi SET deyimi ayarı gönderir. SQL Server örneğine bağlandığınızda istemciler deyimini çalıştırır. Daha fazla bilgi için bkz. set ANSI_WARNINGS.

sys.databases katalog görünümündeki is_ansi_warnings_on sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsAnsiWarningsEnabled özelliğini inceleyerek de durumu belirleyebilirsiniz.

ARITHABORT { ON | KAPALI }

  • ÜZERİNDE

    Sorgu yürütme sırasında taşma veya sıfıra bölme hatası oluştuğunda sorgu sonlandırılır.

  • KAPALI

    Bu hatalardan biri oluştuğunda bir uyarı iletisi görüntülenir. Sorgu, toplu iş veya işlem, bir uyarı görüntülense bile hata oluşmamış gibi işlemeye devam eder.

Not

SET ARITHABORT, hesaplanan sütunlarda veya dizinlenmiş görünümlerde dizin oluşturduğunuzda veya dizinlerde değişiklik yaptığınızda ON olarak ayarlanmalıdır.

sys.databases katalog görünümündeki is_arithabort_on sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsArithmeticAbortEnabled özelliğini inceleyerek de durumu belirleyebilirsiniz.

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

Daha fazla bilgi için bkz. alter database uyumluluk düzeyi.

CONCAT_NULL_YIELDS_NULL { ON | KAPALI }

  • ÜZERİNDE

    bir birleştirme işleminin sonucu, işlenenlerden biri NULL olduğunda NULL'dır. Örneğin, "This is" ve NULL karakter dizesini birleştirmek"This is" değeri yerine NULL değerine neden olur.

  • KAPALI

    Null değer boş karakter dizesi olarak kabul edilir.

Not

CONCAT_NULL_YIELDS_NULL hesaplanan sütunlarda veya dizinlenmiş görünümlerde dizin oluştururken veya dizinlerde değişiklik yaparken ON olarak ayarlanmalıdır.

SQL Server'ın gelecekteki bir sürümünde, CONCAT_NULL_YIELDS_NULL her zaman AÇIK olur ve seçeneği açıkça KAPALI olarak ayarlayan tüm uygulamalar bir hata oluşturur. Bu özelliği yeni geliştirme çalışmalarında kullanmaktan kaçının ve şu anda bu özelliği kullanan uygulamaları değiştirmeyi planlayın.

SET deyimi kullanılarak ayarlanan bağlantı düzeyi ayarları, CONCAT_NULL_YIELDS_NULL için varsayılan veritabanı ayarını geçersiz kılar. Varsayılan olarak, ODBC ve OLE DB istemcileri SQL Server örneğine bağlanırken oturum için CONCAT_NULL_YIELDS_NULL bağlantı düzeyi SET deyimi ayarı gönderir. Daha fazla bilgi için bkz. set CONCAT_NULL_YIELDS_NULL.

sys.databases katalog görünümündeki is_concat_null_yields_null_on sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsNullConcat özelliğini inceleyerek de durumu belirleyebilirsiniz.

NUMERIC_ROUNDABORT { ON | KAPALI }

  • ÜZERİNDE

    İfadede duyarlık kaybı oluştuğunda bir hata oluşturulur.

  • KAPALI

    Duyarlık kaybı bir hata iletisi oluşturmaz ve sonuç, sonucun depolandığı sütunun veya değişkenin duyarlığına yuvarlanr.

Önemli

hesaplanan sütunlarda veya dizinlenmiş görünümlerde dizin oluştururken veya dizinlerde değişiklik yaparken NUMERIC_ROUNDABORT KAPALI olarak ayarlanmalıdır.

Bu seçeneğin durumunu, sys.databases katalog görünümündeki is_numeric_roundabort_on sütununda belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsNumericRoundAbortEnabled özelliğini inceleyerek de durumu belirleyebilirsiniz.

QUOTED_IDENTIFIER { ON | KAPALI }

  • ÜZERİNDE

    Sınırlandırılmış tanımlayıcıları içine almak için çift tırnak işaretleri kullanılabilir.

    Çift tırnak işaretleri ile sınırlandırılan tüm dizeler nesne tanımlayıcıları olarak yorumlanır. Teklif edilen tanımlayıcıların tanımlayıcılar için Transact-SQL kurallarına uyması gerekmez. Bunlar anahtar sözcükler olabilir ve Transact-SQL tanımlayıcılarında izin verilmeyen karakterler içerebilir. Çift tırnak işareti (") tanımlayıcının bir parçasıysa, iki çift tırnak işaretiyle ("") temsil edilebilir.

  • KAPALI

    Tanımlayıcılar tırnak içinde olamaz ve tanımlayıcılar için tüm Transact-SQL kurallarını izlemelidir. Değişmez değerler tek veya çift tırnak işaretiyle sınırlandırılabilir.

SQL Server, tanımlayıcıların köşeli ayraçlarla ([ ve ]) sınırlandırılmasına da olanak tanır. Köşeli ayraçlı tanımlayıcılar, QUOTED_IDENTIFIER ayarı ne olursa olsun her zaman kullanılabilir. Daha fazla bilgi için bkz.Veritabanı tanımlayıcıları.

Tablo oluşturulduğunda, QUOTED IDENTIFIER seçeneği her zaman tablonun meta verilerinde ON olarak depolanır. Tablo oluşturulduğunda seçenek KAPALI olarak ayarlansa bile seçenek depolanır.

SET deyimi kullanılarak ayarlanan bağlantı düzeyi ayarları, QUOTED_IDENTIFIER için varsayılan veritabanı ayarını geçersiz kılar. ODBC ve OLE DB istemcileri, varsayılan olarak AÇıK olarak QUOTED_IDENTIFIER bir bağlantı düzeyi SET deyimi ayarı oluşturur. SQL Server örneğine bağlandığınızda istemciler deyimini çalıştırır. Daha fazla bilgi için bkz. set QUOTED_IDENTIFIER.

sys.databases katalog görünümündeki is_quoted_identifier_on sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsQuotedIdentifiersEnabled özelliğini inceleyerek de durumu belirleyebilirsiniz.

RECURSIVE_TRIGGERS { ON | KAPALI }

  • ÜZERİNDE

    AFTER tetikleyicilerinin özyinelemeli olarak tetiklemesine izin verilir.

  • KAPALI

    sys.databases katalog görünümündeki is_recursive_triggers_on sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsRecursiveTriggersEnabled özelliğini inceleyerek de durumu belirleyebilirsiniz.

Not

RECURSIVE_TRIGGERS KAPALI olarak ayarlandığında yalnızca doğrudan özyineleme engellenir. Dolaylı özyineleme özelliğini devre dışı bırakmak için iç içe tetikleyiciler sunucusu seçeneğini de 0 olarak ayarlamanız gerekir.

sys.databases katalog görünümündeki is_recursive_triggers_on sütununu veya DATABASEPROPERTYEX işlevinin IsRecursiveTriggersEnabled özelliğini inceleyerek bu seçeneğin durumunu belirleyebilirsiniz.

<target_recovery_time_option> ::=

Veritabanı başına dolaylı denetim noktalarının sıklığını belirtir. SQL Server 2016'dan (13.x) başlayarak yeni veritabanları için varsayılan değer 1 dakika' dir ve bu da veritabanının dolaylı denetim noktaları kullandığını gösterir. Eski sürümler için varsayılan değer 0'dır ve bu, veritabanının sıklığı sunucu örneğinin kurtarma aralığı ayarına bağlı olan otomatik denetim noktaları kullandığını gösterir. Microsoft çoğu sistem için 1 dakika önerir.

TARGET_RECOVERY_TIME = target_recovery_time { SECONDS | DAKİkA }

  • target_recovery_time

    Kilitlenme durumunda belirtilen veritabanının kurtarılması için gereken süre üst sınırını belirtir. target_recovery_time, inttürüdür.

  • SANİYE

    target_recovery_time saniye sayısı olarak ifade edilir.

  • TUTANAK

    target_recovery_time dakika sayısı olarak ifade edilir.

Dolaylı denetim noktaları hakkında daha fazla bilgi için bkz. Veritabanı denetim noktaları.

WITH <sonlandırma> ::=

Veritabanı bir durumdan diğerine geçirildiğinde tamamlanmamış işlemlerin ne zaman geri alınıp alınamayacaını belirtir. Sonlandırma yan tümcesi atlanırsa, veritabanında herhangi bir kilit varsa ALTER DATABASE deyimi süresiz olarak bekler. Yalnızca bir sonlandırma yan tümcesi belirtilebilir ve SET yan tümcelerini izler.

Not

Tüm veritabanı seçenekleri WITH <sonlandırma> yan tümcesini kullanmaz. Daha fazla bilgi için, bu makalenin "Açıklamalar" bölümünün ayar seçenekleri altındaki tabloya bakın.

  • tamsayıdan sonra geri alma [SECONDS] | HEMEN GERI ALMA

    Belirtilen saniye sayısından sonra mı yoksa hemen mi geri alınmayacağını belirtir.

  • NO_WAIT

    İstenen veritabanı durumu veya seçenek değişikliği hemen tamamlanamadıysa isteğin başarısız olduğunu belirtir. Hemen tamamlanması, işlemlerin kendi başına işlenmesini veya geri alınması beklenmediği anlamına gelir.

<temporal_history_retention> ::=

  • TEMPORAL_HISTORY_RETENTION { ON | KAPALI }

    Varsayılan olarak AÇILDI, ancak belirli bir noktaya geri yükleme işleminden sonra otomatik olarak KAPALI olarak ayarlanır. Bu ayarı etkinleştirme hakkında daha fazla bilgi için bkz. Bekletme ilkesini yapılandırma.

    • ÜZERİNDE

      Temerrüt. Zamansal tablo bekletme ilkesini etkinleştirir. Daha fazla bilgi için bkz. sistem tabanlı zamana bağlı tablolarda geçmiş verilerin elde tutulmasını yönetme.

    • KAPALI

      Zamana bağlı geçmiş saklama ilkesi gerçekleştirmeyin.

Seçenekleri ayarlama

Veritabanı seçeneklerinin geçerli ayarlarını almak için sys.databases katalog görünümünü veya DATABASEPROPERTYEX 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 WITH <sonlandırma> yan tümcesini kullanmaz veya diğer seçeneklerle birlikte belirtilebilir. Aşağıdaki tabloda bu seçenekler ve bunların seçeneği ile sonlandırma durumu listelenmiştir.

Seçenekler kategorisi Diğer seçeneklerle belirtilebilir WITH <sonlandırma> yan tümcesini kullanabilir
<auto_option> Evet Hayır
<change_tracking_option> Evet Evet
<cursor_option> Evet Hayır
<db_encryption_option> Evet Hayır
<db_update_option> Evet Evet
<db_user_access_option> Evet Evet
<delayed_durability_option> Evet Evet
<parameterization_option> Evet Evet
ALLOW_SNAPSHOT_ISOLATION Hayır Hayır
READ_COMMITTED_SNAPSHOT Hayır Evet
MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT Evet Evet
DATE_CORRELATION_OPTIMIZATION Evet Evet
<sql_option> Evet Hayır
<target_recovery_time_option> Hayır Evet

Örnekler

A. Veritabanını READ_ONLY olarak ayarlama

Veritabanının veya dosya grubunun durumunun READ_ONLY veya READ_WRITE olarak değiştirilmesi, veritabanına özel erişim gerektirir ve tamamlanması birkaç saniye sürebilir. Aşağıdaki örnek, erişimi sınırlamak için veritabanını RESTRICTED_USER moduna ayarlar. Örnek daha sonra AdventureWorks2022 veritabanının durumunu READ_ONLY olarak ayarlar ve veritabanına erişimi tüm kullanıcılara döndürür.

--Connect to [database_name];
GO
ALTER DATABASE [database_name]
SET RESTRICTED_USER;
GO
ALTER DATABASE [database_name]
SET READ_ONLY
--`SET READ_ONLY` command might take a few seconds to complete.
GO
ALTER DATABASE [database_name]
SET MULTI_USER;
GO

Veritabanını yeniden okuma-yazma moduna ayarlamak için:

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

Doğrulamak için:

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

B. Veritabanında anlık görüntü yalıtımını etkinleştirme

Aşağıdaki örnek, AdventureWorks2022 veritabanı için anlık görüntü yalıtım çerçevesi seçeneğini etkinleştirir.

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

Veritabanındaki snapshot_isolation_framework durumunu doğrulayın.

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

Sonuç kümesi, anlık görüntü yalıtım çerçevesinin etkinleştirildiğini gösterir.

ad snapshot_isolation_state Açıklama
[database_name] 1 ÜZERİNDE

C. Değişiklik izlemeyi etkinleştirme, değiştirme veya devre dışı bırakma

Aşağıdaki örnek, AdventureWorks2022 veritabanı için değişiklik izlemeyi etkinleştirir ve bekletme süresini 2 güne ayarlar.

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

Aşağıdaki örnekte bekletme süresinin 3 gün olarak nasıl değiştireceği gösterilmektedir.

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

Aşağıdaki örnekte, AdventureWorks2022 veritabanı için değişiklik izlemeyi devre dışı bırakma gösterilmektedir.

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

D. Sorgu Deposunu Etkinleştirme

Aşağıdaki örnekte Sorgu Deposu etkinleştirilip Sorgu Deposu parametreleri yapılandırılır.

--Connect to [database_name]
ALTER DATABASE [database_name]
SET QUERY_STORE = ON
    (
      OPERATION_MODE = READ_WRITE,
      CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = 90 ),
      DATA_FLUSH_INTERVAL_SECONDS = 900,
      QUERY_CAPTURE_MODE = AUTO,
      MAX_STORAGE_SIZE_MB = 1024,
      INTERVAL_LENGTH_MINUTES = 60
    );

E. Sorgu Deposu'nı bekleme istatistikleriyle etkinleştirme

Aşağıdaki örnek Sorgu Deposu'na olanak tanır ve parametrelerini yapılandırmaktadır.

--Connect to [database_name]
ALTER DATABASE [database_name]
SET QUERY_STORE = ON
    (
      OPERATION_MODE = READ_WRITE,
      CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = 90 ),
      DATA_FLUSH_INTERVAL_SECONDS = 900,
      MAX_STORAGE_SIZE_MB = 1024,
      INTERVAL_LENGTH_MINUTES = 60,
      SIZE_BASED_CLEANUP_MODE = AUTO,
      MAX_PLANS_PER_QUERY = 200,
      WAIT_STATS_CAPTURE_MODE = ON
    );

F. Özel yakalama ilkesi seçenekleriyle Sorgu Deposu'yu etkinleştirme

Aşağıdaki örnek Sorgu Deposu'na olanak tanır ve parametrelerini yapılandırmaktadır.

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

SQL Server

SQL Veritabanı

* SQL Yönetilen Örneği *  

Azure Synapse'i
Analiz

Microsoft Fabric

 

Azure SQL Yönetilen Örneği

Uyumluluk düzeyleri SET seçeneklerdir ancak ALTER DATABASE uyumluluk düzeyiaçıklanmıştır.

Not

Çoğu veritabanı kümesi seçeneği, SET Deyimleri kullanılarak geçerli oturum için yapılandırılabilir ve genellikle bağlandığında uygulamalar tarafından yapılandırılır. Oturum düzeyi ayar seçenekleri ALTER DATABASE SET değerlerini geçersiz kılar. Aşağıdaki bölümlerde açıklanan veritabanı seçenekleri, diğer ayar seçeneği değerlerini açıkça sağlamayan oturumlar için ayarlanabilen değerlerdir.

Sözdizimi

ALTER DATABASE { database_name | Current }
SET
{
    <optionspec> [ ,...n ]
}
;

<optionspec> ::=
{
    <auto_option>
  | <change_tracking_option>
  | <cursor_option>
  | <db_encryption_option>
  | <delayed_durability_option>
  | <parameterization_option>
  | <query_store_options>
  | <snapshot_option>
  | <sql_option>
  | <target_recovery_time_option>
  | <termination>
  | <temporal_history_retention>
}
;
<auto_option> ::=
{
    AUTO_CREATE_STATISTICS { OFF | ON [ ( INCREMENTAL = { ON | OFF } ) ] }
  | AUTO_SHRINK { ON | OFF }
  | AUTO_UPDATE_STATISTICS { ON | OFF }
  | AUTO_UPDATE_STATISTICS_ASYNC { ON | OFF }
}

<automatic_tuning_option> ::=
{
    AUTOMATIC_TUNING ( FORCE_LAST_GOOD_PLAN = { DEFAULT | ON | OFF } )
}

<change_tracking_option> ::=
{
    CHANGE_TRACKING
    {
       = OFF
     | = ON [ ( <change_tracking_option_list > [,...n] ) ]
     | ( <change_tracking_option_list> [,...n] )
    }
}

<change_tracking_option_list> ::=
   {
       AUTO_CLEANUP = { ON | OFF }
     | CHANGE_RETENTION = retention_period { DAYS | HOURS | MINUTES }
   }

<cursor_option> ::=
{
    CURSOR_CLOSE_ON_COMMIT { ON | OFF }
}

<db_encryption_option> ::=
  ENCRYPTION { ON | OFF }

<delayed_durability_option> ::=DELAYED_DURABILITY = { DISABLED | ALLOWED | FORCED }

<parameterization_option> ::=
  PARAMETERIZATION { SIMPLE | FORCED }

<query_store_options> ::=
{
  QUERY_STORE
  {
    = OFF
    | = ON [ ( <query_store_option_list> [,... n] ) ]
    | ( < query_store_option_list> [,... n] )
    | CLEAR [ ALL ]
  }
}

<query_store_option_list> ::=
{
  OPERATION_MODE = { READ_WRITE | READ_ONLY }
  | CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = number )
  | DATA_FLUSH_INTERVAL_SECONDS = number
  | MAX_STORAGE_SIZE_MB = number
  | INTERVAL_LENGTH_MINUTES = number
  | SIZE_BASED_CLEANUP_MODE = { AUTO | OFF }
  | QUERY_CAPTURE_MODE = { ALL | AUTO | CUSTOM | NONE }
  | MAX_PLANS_PER_QUERY = number
  | WAIT_STATS_CAPTURE_MODE = { ON | OFF }
  | QUERY_CAPTURE_POLICY = ( <query_capture_policy_option_list> [,...n] )
}

<query_capture_policy_option_list> :: =
{
    STALE_CAPTURE_POLICY_THRESHOLD = number { DAYS | HOURS }
    | EXECUTION_COUNT = number
    | TOTAL_COMPILE_CPU_TIME_MS = number
    | TOTAL_EXECUTION_CPU_TIME_MS = number
}

<snapshot_option> ::=
{
    ALLOW_SNAPSHOT_ISOLATION { ON | OFF }
  | READ_COMMITTED_SNAPSHOT { ON | OFF }
  | MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT { ON | OFF }
}
<sql_option> ::=
{
    ANSI_NULL_DEFAULT { ON | OFF }
  | ANSI_NULLS { ON | OFF }
  | ANSI_PADDING { ON | OFF }
  | ANSI_WARNINGS { ON | OFF }
  | ARITHABORT { ON | OFF }
  | COMPATIBILITY_LEVEL = { 160 | 150 | 140 | 130 | 120 | 110 | 100 }
  | CONCAT_NULL_YIELDS_NULL { ON | OFF }
  | NUMERIC_ROUNDABORT { ON | OFF }
  | QUOTED_IDENTIFIER { ON | OFF }
  | RECURSIVE_TRIGGERS { ON | OFF }
}

<temporal_history_retention>::= TEMPORAL_HISTORY_RETENTION { ON | OFF }

Bağımsız değişken

database_name

Değiştirilecek veritabanının adı.

GEÇERLİ

CURRENT eylemi geçerli veritabanında çalıştırır. CURRENT tüm bağlamlardaki tüm seçenekler için desteklenmez. CURRENT başarısız olursa veritabanı adını belirtin.

<auto_option> ::=

Otomatik seçenekleri denetler.

AUTO_CREATE_STATISTICS { ON | KAPALI }

  • ÜZERİNDE

    Sorgu İyileştiricisi, sorgu planlarını ve sorgu performansını geliştirmek için gerektiğinde sorgu koşullarındaki tek sütunlarda istatistikler oluşturur. Bu tek sütunlu istatistikler, Sorgu İyileştiricisi sorguları derlediğinde oluşturulur. Tek sütunlu istatistikler yalnızca mevcut istatistik nesnesinin ilk sütunu olmayan sütunlarda oluşturulur.

    Varsayılan değer ON'dır. Çoğu veritabanı için varsayılan ayarı kullanmanızı öneririz.

  • KAPALI

    Sorgu İyileştiricisi, sorgu derlerken sorgu koşullarında tek sütunlarda istatistik oluşturmaz. Bu seçeneğin KAPALI olarak ayarlanması, yetersiz sorgu planlarına ve düşük sorgu performansına neden olabilir.

    sys.databases katalog görünümündeki is_auto_create_stats_on sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsAutoCreateStatistics özelliğini inceleyerek de durumu belirleyebilirsiniz.

    Daha fazla bilgi için, İstatistikler'deki "İstatistik seçenekleri" bölümüne bakın.

ARTıMLı = ON | KAPALI

AUTO_CREATE_STATISTICS AÇıK olarak ayarlayın ve ARTıMLı'yı ON olarak ayarlayın. Bu ayar, artımlı istatistikler desteklendiği her durumda otomatik olarak oluşturulan istatistikleri artımlı olarak oluşturur. Varsayılan değer KAPALI'dır. Daha fazla bilgi için bkz. create STATISTICS.

AUTO_SHRINK { ON | KAPALI }

  • ÜZERİNDE

    Veritabanı dosyaları düzenli aralıklarla daraltma için adaydır. Belirli bir gereksiniminiz yoksa AUTO_SHRINK veritabanı seçeneğini ON olarak ayarlamayın. Daha fazla bilgi için bkz. veritabanını küçültme.

    Hem veri dosyası hem de günlük dosyaları otomatik olarak küçültülebilir. AUTO_SHRINK işlem günlüğünün boyutunu yalnızca veritabanını SIMPLE kurtarma modeli olarak ayarlarsanız veya günlüğü yedeklerseniz azaltır. KAPALI olarak ayarlandığında, kullanılmayan alan için düzenli denetimler sırasında veritabanı dosyaları otomatik olarak küçültülür.

    AUTO_SHRINK seçeneği, dosyanın yüzde 25'inden fazlası kullanılmayan alan içerdiğinde dosyaların küçültülmelerine neden olur. seçeneği, dosyanın iki boyuttan birine küçültülmesini sağlar. Aşağıdakilerden hangisi daha büyükse küçülür:

    • Dosyanın yüzde 25'inin kullanılmayan alan olduğu boyut
    • Dosyanın oluşturulduğu zaman boyutu

    Salt okunur veritabanını küçültemezsiniz.

  • KAPALI

    Kullanılmayan alan için düzenli aralıklarla yapılan denetimler sırasında veritabanı dosyaları otomatik olarak küçülmez.

sys.databases katalog görünümündeki is_auto_shrink_on sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsAutoShrink özelliğini inceleyerek de durumu belirleyebilirsiniz.

Not

AUTO_SHRINK seçeneği, Kapsanan Veritabanında kullanılamaz.

AUTO_UPDATE_STATISTICS { ON | KAPALI }

  • ÜZERİNDE

    Sorgu İyileştiricisi'nin bir sorgu tarafından kullanıldığında ve güncel olma durumlarında istatistikleri güncelleştirdiğini belirtir. Ekleme, güncelleştirme, silme veya birleştirme işlemleri tablodaki veya dizinli görünümdeki veri dağıtımını değiştirdikten sonra istatistikler güncel değildir. Sorgu İyileştiricisi, son istatistik güncelleştirmelerinden bu yana yapılan veri değişikliklerinin sayısını sayarak ve değişikliklerin sayısını bir eşikle karşılaştırarak istatistiklerin ne zaman güncel olabileceğini belirler. Eşik, tablodaki veya dizinli görünümdeki satır sayısını temel alır.

    Sorgu İyileştiricisi, sorgu derlemeden ve önbelleğe alınmış bir sorgu planı çalıştırmadan önce güncel olmayan istatistikleri denetler. Sorgu İyileştiricisi, hangi istatistiklerin güncel olmayabileceğini belirlemek için sorgu koşulundaki sütunları, tabloları ve dizine alınan görünümleri kullanır. Sorgu İyileştirici bu bilgileri bir sorgu derlemeden önce belirler. Önbelleğe alınmış bir sorgu planını çalıştırmadan önce Veritabanı Altyapısı, sorgu planının up-totarih istatistiklerine başvurduğunu doğrular.

    AUTO_UPDATE_STATISTICS seçeneği dizinler için oluşturulan istatistikler, sorgu koşulundaki tek sütunlar ve CREATE STATISTICS deyimi kullanılarak oluşturulan istatistikler için geçerlidir. Bu seçenek filtrelenmiş istatistikler için de geçerlidir.

    Varsayılan değer ON'dır. Çoğu veritabanı için varsayılan ayarı kullanmanızı öneririz.

    İstatistiklerin zaman uyumlu mu yoksa zaman uyumsuz olarak mı güncelleştirileceğini belirtmek için AUTO_UPDATE_STATISTICS_ASYNC seçeneğini kullanın.

  • KAPALI

    Sorgu İyileştirici'nin bir sorgu tarafından kullanıldığında istatistikleri güncelleştirmediğini belirtir. Sorgu İyileştiricisi ayrıca güncel olmayan istatistikleri güncelleştirmez. Bu seçeneğin KAPALI olarak ayarlanması, yetersiz sorgu planlarına ve düşük sorgu performansına neden olabilir.

sys.databases katalog görünümündeki is_auto_update_stats_on sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsAutoUpdateStatistics özelliğini inceleyerek de durumu belirleyebilirsiniz.

Daha fazla bilgi için, İstatistikler'daki "Veritabanı genelinde istatistik seçeneklerini kullanma" bölümüne bakın.

AUTO_UPDATE_STATISTICS_ASYNC { ON | KAPALI }

  • ÜZERİNDE

    AUTO_UPDATE_STATISTICS seçeneği için istatistik güncelleştirmelerinin zaman uyumsuz olduğunu belirtir. Sorgu İyileştiricisi, sorguları derlemeden önce istatistik güncelleştirmelerinin tamamlanmasını beklemez.

    AUTO_UPDATE_STATISTICS AÇıK olarak ayarlanmadığı sürece bu seçeneğiN ON olarak ayarlanmasının hiçbir etkisi olmaz.

    Varsayılan olarak, AUTO_UPDATE_STATISTICS_ASYNC seçeneği KAPALI olarak ayarlanır ve Sorgu İyileştiricisi istatistikleri zaman uyumlu olarak güncelleştirir.

  • KAPALI

    AUTO_UPDATE_STATISTICS seçeneği için istatistik güncelleştirmelerinin zaman uyumlu olduğunu belirtir. Sorgu İyileştiricisi, sorguları derlemeden önce istatistik güncelleştirmelerinin tamamlanmasını bekler.

    AUTO_UPDATE_STATISTICS AÇıK olarak ayarlanmadığı sürece bu seçeneği KAPALI olarak ayarlamanın hiçbir etkisi olmaz.

sys.databases katalog görünümündeki is_auto_update_stats_async_on sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz.

Zaman uyumlu veya zaman uyumsuz istatistik güncelleştirmelerinin ne zaman kullanılacağını açıklayan daha fazla bilgi için, İstatistikleriçindeki "Veritabanı genelinde istatistik seçeneklerini kullanma" bölümüne bakın.

<automatic_tuning_option> ::=

Otomatik ayarlamaiçin otomatik seçenekleri denetler.

FORCE_LAST_GOOD_PLAN = { DEFAULT | ON | KAPALI }

FORCE_LAST_GOOD_PLAN Otomatik ayarlama seçeneğini etkinleştirir veya devre dışı bırakır.

  • TEMERRÜT

    Azure SQL Yönetilen Örneği için varsayılan değer ON'dır.

  • ÜZERİNDE

    Veritabanı Altyapısı, yeni sorgu planının performans regresyonlarına neden olduğu Transact-SQL sorgularda bilinen son iyi planı otomatik olarak zorlar. Veritabanı Altyapısı, zorlamalı planla Transact-SQL sorgunun sorgu performansını sürekli izler. Performans kazançları varsa Veritabanı Altyapısı bilinen son iyi planı kullanmaya devam eder. Performans kazanımları algılanmamışsa Veritabanı Altyapısı yeni bir sorgu planı oluşturur. Sorgu Deposu etkinleştirilmediyse veya okuma-yazma modunda deyimi başarısız olur. Bu varsayılan değerdir.

  • KAPALI

    Veritabanı Altyapısı, sys.dm_db_tuning_recommendations görünümde sorgu planı değişikliklerinin neden olduğu olası sorgu performansı regresyonlarını bildirir. Ancak bu öneriler otomatik olarak uygulanmaz. Kullanıcılar, görünümde gösterilen Transact-SQL betikleri uygulayarak etkin önerileri izleyebilir ve tanımlanan sorunları çözebilir.

<change_tracking_option> ::=

Değişiklik izleme seçeneklerini denetler. Değişiklik izlemeyi etkinleştirebilir, seçenekleri ayarlayabilir, seçenekleri değiştirebilir ve değişiklik izlemeyi devre dışı bırakabilirsiniz. Örnekler için bu makalenin devamında yer alan Örnekler bölümüne bakın.

  • ÜZERİNDE

    Veritabanı için değişiklik izlemeyi etkinleştirir. Değişiklik izlemeyi etkinleştirdiğinizde, AUTO CLEANUP ve CHANGE RETENTION seçeneklerini de ayarlayabilirsiniz.

AUTO_CLEANUP = { ON | KAPALI }

  • ÜZERİNDE

    Değişiklik izleme bilgileri belirtilen saklama süresinden sonra otomatik olarak kaldırılır.

  • KAPALI

    Değişiklik izleme verileri veritabanından kaldırılmaz.

CHANGE_RETENTION = retention_period { DAYS | SAAT | DAKİkA }

Değişiklik izleme bilgilerini veritabanında tutmak için en düşük süreyi belirtir. Veriler yalnızca AUTO_CLEANUP değeri AÇILDI olduğunda kaldırılır.

retention_period, bekletme süresinin sayısal bileşenini belirten bir tamsayıdır.

Varsayılan saklama süresi2 gün . En düşük saklama süresi 1 dakikadır. Varsayılan bekletme türüDAYS'dır.

  • KAPALI

    Veritabanı için değişiklik izlemeyi devre dışı bırakır. Veritabanında değişiklik izlemeyi devre dışı bırakmadan önce tüm tablolarda değişiklik izlemeyi devre dışı bırakın.

<cursor_option> ::=

İmleç seçeneklerini denetler.

CURSOR_CLOSE_ON_COMMIT { ON | KAPALI }

  • ÜZERİNDE

    bir işlemi işlediğiniz veya geri aldığınızda açılan tüm imleçler kapatılır.

  • KAPALI

    bir işlem işlendiğinde imleçler açık kalır; bir işlemi geri döndürmek, DUYARSIZ veya STATIK olarak tanımlananlar dışında tüm imleçleri kapatır.

SET deyimi kullanılarak ayarlanan bağlantı düzeyi ayarları, CURSOR_CLOSE_ON_COMMIT için varsayılan veritabanı ayarını geçersiz kılar. ODBC ve OLE DB istemcileri, oturum için varsayılan olarak OFF olarak CURSOR_CLOSE_ON_COMMIT bir bağlantı düzeyi SET deyimi ayarı gönderir. SQL Server örneğine bağlandığınızda istemciler deyimini çalıştırır. Daha fazla bilgi için bkz. set CURSOR_CLOSE_ON_COMMIT.

sys.databases katalog görünümündeki is_cursor_close_on_commit_on sütununu veya DATABASEPROPERTYEX işlevinin IsCloseCursorsOnCommitEnabled özelliğini inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. İmleç örtük olarak yalnızca bağlantı kesildiğinde serbest bırakılır. Daha fazla bilgi için bkz. DECLARE CURSOR.

<db_encryption_option> ::=

Veritabanı şifreleme durumunu denetler.

ŞIFRELEME { ON | KAPALI }

Veritabanını şifrelenecek (ON) veya şifrelenmez (KAPALI) olarak ayarlar. Veritabanı şifrelemesi hakkında daha fazla bilgi için bkz. Saydam veri şifrelemesi (TDE)ve Azure SQL Veritabanı, Azure SQL Yönetilen Örneği ve Azure Synapse Analyticsiçin saydam veri şifrelemesi.

Şifreleme veritabanı düzeyinde etkinleştirildiğinde, tüm dosya grupları şifrelenir. Tüm yeni dosya grupları şifrelenmiş özelliği devralır. Veritabanındaki herhangi bir dosya grubu SALT OKUNUR olarak ayarlanırsa, veritabanı şifreleme işlemi başarısız olur.

sys.dm_database_encryption_keys dinamik yönetim görünümünü kullanarak veritabanının şifreleme durumunu görebilirsiniz.

<delayed_durability_option> ::=

İşlemlerin tamamen dayanıklı mı yoksa gecikmeli dayanıklı mı işlediğini denetler.

  • SAKAT

    SET DISABLED izleyen tüm işlemler tamamen dayanıklıdır. Atomik blokta veya işleme deyiminde ayarlanan tüm dayanıklılık seçenekleri yoksayılır.

  • IZİN VERİLEN

    SET ALLOWED izleyen tüm işlemler, atomik blokta veya işleme deyiminde ayarlanan dayanıklılık seçeneğine bağlı olarak tamamen dayanıklı veya gecikmeli dayanıklıdır.

  • ZORLA

    SET FORCED izleyen tüm işlemler gecikmeli dayanıklıdır. Atomik blokta veya işleme deyiminde ayarlanan tüm dayanıklılık seçenekleri yoksayılır.

<PARAMETERIZATION_option> ::=

Parametreleştirme seçeneğini denetler.

PARAMETRELEŞTIRME { SIMPLE | FORCED }

  • BASİT

    Sorgular, veritabanının varsayılan davranışına göre parametreleştirilir.

  • ZORLA

SQL Server, veritabanındaki tüm sorguları parametreleştirir.

Bu seçeneğin geçerli ayarı, sys.databases katalog görünümündeki is_parameterization_forced sütunu incelenerek belirlenebilir.

<query_store_options> ::=

  • ON | KAPALI | CLEAR [ ALL ]

    Bu veritabanında Sorgu Deposu'nun etkinleştirilip etkinleştirilmediğini denetler ve ayrıca Sorgu Deposu'nun içeriğini kaldırmayı denetler.

    • ÜZERİNDE

      Sorgu Deposu'na olanak tanır.

    • KAPALI

      Sorgu Deposu'nı devre dışı bırakır. Bu varsayılan değerdir.

    • BERRAK

      Sorgu Deposu'nun içeriğini kaldırın.

OPERATION_MODE

Sorgu Deposu'nun işlem modunu açıklar. Geçerli değerler READ_ONLY ve READ_WRITE. READ_WRITE modunda Sorgu Deposu sorgu planı ve çalışma zamanı yürütme istatistikleri bilgilerini toplar ve kalıcı hale toplar. READ_ONLY modunda bilgiler Sorgu Deposu'ndan okunabilir, ancak yeni bilgiler eklenmez. Sorgu Deposu'nun ayrılan en fazla alanı tükendiyse, Sorgu Deposu işlem modunu READ_ONLY olarak değiştirir.

CLEANUP_POLICY

Sorgu Deposu'nun veri saklama ilkesini açıklar. STALE_QUERY_THRESHOLD_DAYS, sorgu bilgilerinin Sorgu Deposu'nda tutulduğu gün sayısını belirler. STALE_QUERY_THRESHOLD_DAYS biginttürüdür. Varsayılan değer 30'dur. SQL Veritabanı Temel sürümü için varsayılan değer 7 gün .

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 biginttürüdür. Varsayılan değer 900 (15 dk) .

MAX_STORAGE_SIZE_MB

Sorgu Deposu'na ayrılan alanı belirler. MAX_STORAGE_SIZE_MB, biginttürüdür. Varsayılan değer 100 MB.

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ığı seçeneği veya Management Studio Sorgu Deposu iletişim kutusu seçeneği tarafından ayarlanır. Aralık varsayılan değeri 900 saniyedir (veya 15 dakika).

Sorgu Deposu depolama boyutu denetimleri arasındaki MAX_STORAGE_SIZE_MB sınırını aştıysa salt okunur moda geçer. SIZE_BASED_CLEANUP_MODE etkinleştirilirse, MAX_STORAGE_SIZE_MB sınırını zorlamak için temizleme mekanizması da tetikler.

Yeterli alan temizlendikten sonra Sorgu Deposu modu otomatik olarak yeniden okuma-yazma moduna geçer.

Önemli

  • İş yükü yakalamanızın 10 GB'tan fazla disk alanına ihtiyacı olduğunu düşünüyorsanız, sorgu planlarını yeniden kullanmak için iş yükünüzü yeniden düşünmeli ve iyileştirmelisiniz (örneğin, zorlamalı parametrelemekullanarak veya Sorgu Deposu yapılandırmalarını ayarlamalısınız.
  • SQL Server 2019'dan (15.x) başlayarak ve Azure SQL Veritabanı'nda sorgu yakalama ilkesi üzerinde ek denetim için QUERY_CAPTURE_MODE CUSTOM olarak ayarlayabilirsiniz.
  • MAX_STORAGE_SIZE_MB ayarı sınırı Azure SQL Yönetilen Örneği'nin 10.240 MB'tır.

INTERVAL_LENGTH_MINUTES

Çalışma zamanı yürütme istatistikleri verilerinin Sorgu Deposu'nda toplandığı zaman aralığını belirler. Alan kullanımını iyileştirmek için, çalışma zamanı istatistikleri deposundaki çalışma zamanı yürütme istatistikleri sabit bir zaman aralığı boyunca toplanır. Bu sabit zaman penceresi INTERVAL_LENGTH_MINUTES bağımsız değişkeni kullanılarak yapılandırılır. INTERVAL_LENGTH_MINUTES biginttürüdür. Varsayılan değer 60.

SIZE_BASED_CLEANUP_MODE = { AUTO | KAPALI }

Toplam veri miktarı maksimum boyuta yaklaştığında temizlemenin otomatik olarak etkinleştirilip etkinleştirilmediğini denetler.

  • KAPALI

    Boyut tabanlı temizleme otomatik olarak etkinleştirilmez.

  • OTOMATİK

    Diskte boyut 90% max_storage_size_mbulaştığında boyut tabanlı temizleme otomatik olarak etkinleştirilir. Boyut tabanlı temizleme, önce en düşük maliyetli ve en eski sorguları kaldırır. Yaklaşık 80% max_storage_size_mbdurur. Bu varsayılan yapılandırma değeridir.

SIZE_BASED_CLEANUP_MODE nvarchartürüdür.

QUERY_CAPTURE_MODE { ALL | OTOMATİk | ÖZEL | NONE }

Şu anda etkin olan sorgu yakalama modunu atar.

  • TÜM

    Tüm sorgular yakalanır.

  • OTOMATİK

    Yürütme sayısına ve kaynak tüketimine göre ilgili sorguları yakalayın. Bu, Azure SQL Veritabanı için varsayılan yapılandırma değeridir.

  • Hiç kimse

    Yeni sorguları yakalamayı durdurun. Sorgu Deposu, zaten yakalanan sorgular için derleme ve çalışma zamanı istatistiklerini toplamaya devam eder. Önemli sorguları yakalamayı kaçırabileceğiniz için bu yapılandırmayı dikkatli kullanın.

QUERY_CAPTURE_MODE nvarchartürüdür.

MAX_PLANS_PER_QUERY

Her sorgu için tutulan plan sayısı üst sınırını temsil eden bir tamsayı. MAX_PLANS_PER_QUERYtürüdür. Varsayılan değer 200değeridir.

WAIT_STATS_CAPTURE_MODE { ON | KAPALI }

Sorgu başına bekleme istatistiklerinin yakalanıp yakalanmayacağını denetler.

  • ÜZERİNDE

    Sorgu başına bekleme istatistikleri bilgileri yakalanır. Bu değer varsayılan yapılandırma değeridir.

  • KAPALI

    Sorgu başına bekleme istatistikleri bilgileri yakalanmaz.

<query_capture_policy_option_list> :: =

Sorgu Deposu yakalama ilkesi seçeneklerini denetler. STALE_CAPTURE_POLICY_THRESHOLD dışında, bu seçenekler sorguların tanımlanan Eski Yakalama İlkesi Eşiği değerinde yakalanması için gerçekleşmesi gereken OR koşullarını tanımlar.

STALE_CAPTURE_POLICY_THRESHOLD = tamsayı { GÜN | HOURS }

Bir sorgunun yakalanması gerekip gerekmediğini belirlemek için değerlendirme aralığını tanımlar. Varsayılan değer 1 gündür ve 1 saatten yedi güne ayarlanabilir.

EXECUTION_COUNT = tamsayı

Bir sorgunun değerlendirme süresi boyunca yürütülme sayısını tanımlar. Varsayılan değer 30'dur. Bu, varsayılan Eski Yakalama İlkesi Eşiği için sorgunun Sorgu Deposu'nda kalıcı olması için bir günde en az 30 kez yürütülmesi gerektiği anlamına gelir. EXECUTION_COUNT, inttürüdür.

TOTAL_COMPILE_CPU_TIME_MS = tamsayı

Değerlendirme süresi boyunca sorgu tarafından kullanılan toplam derleme CPU süresini tanımlar. Varsayılan değer 1000'dir ve bu da varsayılan Eski Yakalama İlkesi Eşiği için sorgunun Sorgu Deposu'nda kalıcı olması için sorgu derlemesi sırasında harcanan cpu süresinin bir gün içinde toplam en az bir saniye olması gerektiği anlamına gelir. TOTAL_COMPILE_CPU_TIME_MStürüdür.

TOTAL_EXECUTION_CPU_TIME_MS = tamsayı

Değerlendirme süresi boyunca sorgu tarafından kullanılan toplam yürütme CPU süresini tanımlar. Varsayılan değer 100'dür; 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, inttürüdür.

<snapshot_option> ::=

İşlem yalıtım düzeyini belirler.

ALLOW_SNAPSHOT_ISOLATION { ON | KAPALI }

  • ÜZERİNDE

    Veritabanı düzeyinde Anlık Görüntü seçeneğini etkinleştirir. Etkinleştirildiğinde, hiçbir işlem Anlık Görüntü Yalıtımı kullanmasa bile DML deyimleri satır sürümleri oluşturmaya başlar. Bu seçenek etkinleştirildikten sonra işlemler SNAPSHOT işlem yalıtım düzeyini belirtebilir. Bir işlem SNAPSHOT yalıtım düzeyinde çalıştırıldığında, tüm deyimler işlemin başlangıcında mevcut olan verilerin anlık görüntüsünü görür. SNAPSHOT yalıtım düzeyinde çalışan bir işlem birden çok veritabanındaki verilere erişiyorsa, ALLOW_SNAPSHOT_ISOLATION tüm veritabanlarında AÇILACAK şekilde ayarlanmalıdır veya işlemdeki her deyim, from yan tümcesindeki herhangi bir başvuruda kilit ipuçlarını ALLOW_SNAPSHOT_ISOLATION OFF olduğu bir veritabanındaki bir tabloya kilitleme ipuçlarını kullanmalıdır.

  • KAPALI

    Veritabanı düzeyinde Anlık Görüntü seçeneğini kapatır. İşlemler SNAPSHOT işlemi yalıtım düzeyini belirtemez.

ALLOW_SNAPSHOT_ISOLATION yeni bir duruma ayarladığınızda (ON'dan KAPALI'ya veya KAPALI'dan ON'a), VERITABANıNDAki tüm mevcut işlemler işlenmeden ALTER DATABASE denetimi çağırana döndürmez. Veritabanı ZATEN ALTER DATABASE deyiminde belirtilen durumdaysa, denetim çağırana hemen döndürülür. ALTER DATABASE deyimi hızlı bir şekilde döndürülmezse, uzun süre çalışan işlemler olup olmadığını belirlemek için sys.dm_tran_active_snapshot_database_transactions kullanın. ALTER DATABASE deyimi iptal edilirse, veritabanı ALTER DATABASE başlatıldığında olduğu durumda kalır. sys.databases katalog görünümü, veritabanındaki anlık görüntü yalıtım işlemlerinin durumunu gösterir. snapshot_isolation_state_desc = IN_TRANSITION_TO_ON ise, ALTER DATABASE ... ALLOW_SNAPSHOT_ISOLATION OFF deyimi altı saniye duraklatılır ve işlemi yeniden dener.

Veritabanı ÇEVRİmDIŞI olduğunda ALLOW_SNAPSHOT_ISOLATION durumunu değiştiremezsiniz.

master, model, 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 geçerli ayarı, sys.databases katalog görünümündeki snapshot_isolation_state sütunu incelenerek belirlenebilir.

READ_COMMITTED_SNAPSHOT { ON | KAPALI }

  • ÜZERİNDE

    Veritabanı düzeyinde Read-Committed Anlık Görüntü seçeneğini etkinleştirir. Etkinleştirildiğinde, hiçbir işlem Anlık Görüntü Yalıtımı kullanmasa bile DML deyimleri satır sürümleri oluşturmaya başlar. Bu seçenek etkinleştirildikten sonra, READ COMMITTED yalıtım düzeyini belirten işlemler kilitleme yerine satır sürümü oluşturma kullanır. Tüm deyimler, bir işlem READ COMMITTED yalıtım düzeyinde çalıştırıldığında deyiminin başında mevcut olan verilerin anlık görüntüsünü görür.

  • KAPALI

    Veritabanı düzeyinde Read-Committed Anlık Görüntü seçeneğini kapatır. READ COMMITTED yalıtım düzeyini belirten işlemler kilitlemeyi kullanır.

READ_COMMITTED_SNAPSHOT AÇI veya KAPALI olarak ayarlamak için ALTER DATABASE komutunu çalıştıran bağlantı dışında veritabanına etkin bağlantı olmaması gerekir. Ancak veritabanının tek kullanıcı modunda olması gerekmez. Veritabanı ÇEVRİmDIŞI olduğunda bu seçeneğin durumunu değiştiremezsiniz.

READ_COMMITTED_SNAPSHOT master, 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 geçerli ayarı, sys.databases katalog görünümündeki is_read_committed_snapshot_on sütunu incelenerek belirlenebilir.

Uyarı

DAYANıKLıLıK = SCHEMA_ONLYile bir tablo oluşturulduğunda ve READ_COMMITTED_SNAPSHOT daha sonra ALTER DATABASE kullanılarak değiştirildiğinde, tablodaki veriler kaybolur.

MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT { ON | KAPALI }

  • ÜZERİNDE

    İşlem yalıtım düzeyi SNAPSHOT'dan daha düşük bir yalıtım düzeyine ayarlandığında, bellek için iyileştirilmiş tablolardaki tüm yorumlanan Transact-SQL işlemleri SNAPSHOT yalıtımı altında çalıştırılır. Anlık görüntüden düşük yalıtım düzeylerine örnek olarak READ COMMITTED veya READ UNCOMMITTED verilebilir. Bu işlemler, işlem yalıtım düzeyinin oturum düzeyinde açıkça ayarlanıp ayarlanmadığını veya varsayılanın örtük olarak kullanılıp kullanılmadığını çalıştırır.

  • KAPALI

    Bellek için iyileştirilmiş tablolarda yorumlanan Transact-SQL işlemleri için işlem yalıtım düzeyini yükseltmez.

Veritabanı ÇEVRİmDIŞI olduğunda MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT durumunu değiştiremezsiniz.

Varsayılan değer KAPALI'dır.

Bu seçeneğin geçerli ayarı, sys.databases katalog görünümündeki is_memory_optimized_elevate_to_snapshot_on sütunu incelenerek belirlenebilir.

<sql_option> ::=

VERITABANı düzeyinde ANSI uyumluluk seçeneklerini denetler.

ANSI_NULL_DEFAULT { ON | KAPALI }

Create TABLE veya ALTER TABLE deyimlerinde null atanabilirliğin açıkça tanımlanmadığı clr kullanıcı tanımlı tür bir sütunun veya null veya NOT NULL varsayılan değerini belirler. Kısıtlamalarla tanımlanan sütunlar, bu ayar ne olursa olsun kısıtlama kurallarına uyar.

  • ÜZERİNDE

    Varsayılan değer NULL'dir.

  • KAPALI

    Varsayılan değer NULL DEĞİlDİr.

SET deyimi kullanılarak ayarlanan bağlantı düzeyi ayarları, ANSI_NULL_DEFAULT için varsayılan veritabanı düzeyi ayarını geçersiz kılar. ODBC ve OLE DB istemcileri, oturum için varsayılan olarak AÇıK olarak ANSI_NULL_DEFAULT bir bağlantı düzeyi SET deyimi ayarı gönderir. SQL Server örneğine bağlandığınızda istemciler deyimini çalıştırır. Daha fazla bilgi için bkz. set ANSI_NULL_DFLT_ON.

ANSI uyumluluğu için, ANSI_NULL_DEFAULT veritabanı seçeneğinin ON olarak ayarlanması, veritabanının varsayılan değerini NULL olarak değiştirir.

sys.databases katalog görünümündeki is_ansi_null_default_on sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsAnsiNullDefault özelliğini inceleyerek de durumu belirleyebilirsiniz.

ANSI_NULLS { ON | KAPALI }

  • ÜZERİNDE

    Null değerle yapılan tüm karşılaştırmalar BİlİNMEYEN olarak değerlendirilir.

  • KAPALI

    Unicode olmayan değerlerin null değerle karşılaştırmaları, her iki değer de NULL ise TRUE olarak değerlendirilir.

Önemli

SQL Server'ın gelecekteki bir sürümünde ANSI_NULLS her zaman AÇIK olur ve seçeneği açıkça KAPALI olarak ayarlayan tüm uygulamalar hata oluşturur. Bu özelliği yeni geliştirme çalışmalarında kullanmaktan kaçının ve şu anda bu özelliği kullanan uygulamaları değiştirmeyi planlayın.

SET deyimi kullanılarak ayarlanan bağlantı düzeyi ayarları, ANSI_NULLS için varsayılan veritabanı ayarını geçersiz kılar. ODBC ve OLE DB istemcileri, oturum için varsayılan olarak AÇıK olarak ANSI_NULLS bir bağlantı düzeyi SET deyimi ayarı gönderir. SQL Server örneğine bağlandığınızda istemciler deyimini çalıştırır. Daha fazla bilgi için bkz. set ANSI_NULLS.

Önemli

SET ANSI_NULLS hesaplanan sütunlarda veya dizinlenmiş görünümlerde dizin oluşturduğunuzda veya dizinlerde değişiklik yaptığınızda da ON olarak ayarlanmalıdır.

sys.databases katalog görünümündeki is_ansi_nulls_on sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsAnsiNullsEnabled özelliğini inceleyerek de durumu belirleyebilirsiniz.

ANSI_PADDING { ON | KAPALI }

  • ÜZERİNDE

    Dizeler dönüştürmeden önce aynı uzunlukta doldurulur. Ayrıca bir varchar veya nvarchar veri türüne eklemeden önce aynı uzunlukta doldurulur.

  • KAPALI

    Karakter değerlerinde sondaki boşlukları varchar veya nvarchar sütunlarına ekler. Ayrıca, varbinary sütunlarına eklenen ikili değerlerde sondaki sıfırları bırakır. Değerler sütunun uzunluğuna göre doldurulamaz.

    KAPALI belirtildiğinde, bu ayar yalnızca yeni sütunların tanımını etkiler.

Önemli

SQL Server'ın gelecekteki bir sürümünde, ANSI_PADDING her zaman AÇIK olur ve seçeneği açıkça KAPALI olarak ayarlayan tüm uygulamalar bir hata oluşturur. Bu özelliği yeni geliştirme çalışmalarında kullanmaktan kaçının ve şu anda bu özelliği kullanan uygulamaları değiştirmeyi planlayın. ANSI_PADDING her zaman ON olarak ayarlamanızı öneririz. ANSI_PADDING hesaplanan sütunlarda veya dizinlenmiş görünümlerde dizin oluştururken veya işlerken ON olmalıdır.

char(n) ve ikili(n) null değere izin veren sütunlar, ANSI_PADDING ON olarak ayarlandığında sütun uzunluğuna doldurulur. ANSI_PADDING KAPALI olduğunda sondaki boşluklar ve sıfırlar kırpılır. char(n) ve binary(n) null değere izin verilmeyen sütunlar her zaman sütunun uzunluğuna doldurulur.

SET deyimi kullanılarak ayarlanan bağlantı düzeyi ayarları, ANSI_PADDING için varsayılan veritabanı düzeyi ayarını geçersiz kılar. ODBC ve OLE DB istemcileri, varsayılan olarak oturum için AÇıK olarak ANSI_PADDING bir bağlantı düzeyi SET deyimi ayarı gönderir. SQL Server örneğine bağlandığınızda istemciler deyimini çalıştırır. Daha fazla bilgi için bkz. set ANSI_PADDING.

sys.databases katalog görünümündeki is_ansi_padding_on sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsAnsiPaddingEnabled özelliğini inceleyerek de durumu belirleyebilirsiniz.

ANSI_WARNINGS { ON | KAPALI }

  • ÜZERİNDE

    Sıfıra bölme gibi koşullar oluştuğunda hatalar veya uyarılar verilir. Toplama işlevlerinde null değerler göründüğünde de hatalar ve uyarılar verilir.

  • KAPALI

    Sıfıra bölme gibi koşullar oluştuğunda hiçbir uyarı tetiklenmez ve null değerler döndürülür.

Önemli

HESAPLANAN sütunlarda veya dizinlenmiş görünümlerde dizin oluşturduğunuzda veya dizinlerde değişiklik yaptığınızda SET ANSI_WARNINGS ON olarak ayarlanmalıdır.

SET deyimi kullanılarak ayarlanan bağlantı düzeyi ayarları, ANSI_WARNINGS için varsayılan veritabanı ayarını geçersiz kılar. ODBC ve OLE DB istemcileri, oturum için varsayılan olarak AÇıK olarak ANSI_WARNINGS bir bağlantı düzeyi SET deyimi ayarı gönderir. SQL Server örneğine bağlandığınızda istemciler deyimini çalıştırır. Daha fazla bilgi için bkz. set ANSI_WARNINGS.

sys.databases katalog görünümündeki is_ansi_warnings_on sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsAnsiWarningsEnabled özelliğini inceleyerek de durumu belirleyebilirsiniz.

ARITHABORT { ON | KAPALI }

  • ÜZERİNDE

    Sorgu yürütme sırasında taşma veya sıfıra bölme hatası oluştuğunda sorgu sonlandırılır.

  • KAPALI

    Bu hatalardan biri oluştuğunda bir uyarı iletisi görüntülenir. Sorgu, toplu iş veya işlem, bir uyarı görüntülense bile hata oluşmamış gibi işlemeye devam eder.

Önemli

SET ARITHABORT, hesaplanan sütunlarda veya dizinlenmiş görünümlerde dizin oluşturduğunuzda veya dizinlerde değişiklik yaptığınızda ON olarak ayarlanmalıdır.

sys.databases katalog görünümündeki is_arithabort_on sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsArithmeticAbortEnabled özelliğini inceleyerek de durumu belirleyebilirsiniz.

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

Daha fazla bilgi için bkz. alter database uyumluluk düzeyi.

CONCAT_NULL_YIELDS_NULL { ON | KAPALI }

  • ÜZERİNDE

    bir birleştirme işleminin sonucu, işlenenlerden biri NULL olduğunda NULL'dır. Örneğin, "This is" ve NULL karakter dizesini birleştirmek"This is" değeri yerine NULL değerine neden olur.

  • KAPALI

    Null değer boş karakter dizesi olarak kabul edilir.

Önemli

CONCAT_NULL_YIELDS_NULL hesaplanan sütunlarda veya dizinlenmiş görünümlerde dizin oluştururken veya dizinlerde değişiklik yaparken ON olarak ayarlanmalıdır.

SQL Server'ın gelecekteki bir sürümünde, CONCAT_NULL_YIELDS_NULL her zaman AÇIK olur ve seçeneği açıkça KAPALI olarak ayarlayan tüm uygulamalar bir hata oluşturur. Bu özelliği yeni geliştirme çalışmalarında kullanmaktan kaçının ve şu anda bu özelliği kullanan uygulamaları değiştirmeyi planlayın.

SET deyimi kullanılarak ayarlanan bağlantı düzeyi ayarları, CONCAT_NULL_YIELDS_NULL için varsayılan veritabanı ayarını geçersiz kılar. Varsayılan olarak, ODBC ve OLE DB istemcileri SQL Server örneğine bağlanırken oturum için CONCAT_NULL_YIELDS_NULL bağlantı düzeyi SET deyimi ayarı gönderir. Daha fazla bilgi için bkz. set CONCAT_NULL_YIELDS_NULL.

sys.databases katalog görünümündeki is_concat_null_yields_null_on sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsNullConcat özelliğini inceleyerek de durumu belirleyebilirsiniz.

NUMERIC_ROUNDABORT { ON | KAPALI }

  • ÜZERİNDE

    İfadede duyarlık kaybı oluştuğunda bir hata oluşturulur.

  • KAPALI

    Duyarlık kaybı bir hata iletisi oluşturmaz ve sonuç, sonucun depolandığı sütunun veya değişkenin duyarlığına yuvarlanr.

Önemli

hesaplanan sütunlarda veya dizinlenmiş görünümlerde dizin oluştururken veya dizinlerde değişiklik yaparken NUMERIC_ROUNDABORT KAPALI olarak ayarlanmalıdır.

Bu seçeneğin durumunu, sys.databases katalog görünümündeki is_numeric_roundabort_on sütununda belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsNumericRoundAbortEnabled özelliğini inceleyerek de durumu belirleyebilirsiniz.

QUOTED_IDENTIFIER { ON | KAPALI }

  • ÜZERİNDE

    Sınırlandırılmış tanımlayıcıları içine almak için çift tırnak işaretleri kullanılabilir.

    Çift tırnak işaretleri ile sınırlandırılan tüm dizeler nesne tanımlayıcıları olarak yorumlanır. Teklif edilen tanımlayıcıların tanımlayıcılar için Transact-SQL kurallarına uyması gerekmez. Bunlar anahtar sözcükler olabilir ve Transact-SQL tanımlayıcılarında izin verilmeyen karakterler içerebilir. Çift tırnak işareti (") tanımlayıcının bir parçasıysa, iki çift tırnak işaretiyle ("") temsil edilebilir.

  • KAPALI

    Tanımlayıcılar tırnak içinde olamaz ve tanımlayıcılar için tüm Transact-SQL kurallarını izlemelidir. Değişmez değerler tek veya çift tırnak işaretiyle sınırlandırılabilir.

SQL Server, tanımlayıcıların köşeli ayraçlarla ([ ve ]) sınırlandırılmasına da olanak tanır. Köşeli ayraçlı tanımlayıcılar, QUOTED_IDENTIFIER ayarı ne olursa olsun her zaman kullanılabilir. Daha fazla bilgi için bkz.Veritabanı tanımlayıcıları.

Tablo oluşturulduğunda, QUOTED IDENTIFIER seçeneği her zaman tablonun meta verilerinde ON olarak depolanır. Tablo oluşturulduğunda seçenek KAPALI olarak ayarlansa bile seçenek depolanır.

SET deyimi kullanılarak ayarlanan bağlantı düzeyi ayarları, QUOTED_IDENTIFIER için varsayılan veritabanı ayarını geçersiz kılar. ODBC ve OLE DB istemcileri, varsayılan olarak AÇıK olarak QUOTED_IDENTIFIER bir bağlantı düzeyi SET deyimi ayarı oluşturur. SQL Server örneğine bağlandığınızda istemciler deyimini çalıştırır. Daha fazla bilgi için bkz. set QUOTED_IDENTIFIER.

sys.databases katalog görünümündeki is_quoted_identifier_on sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsQuotedIdentifiersEnabled özelliğini inceleyerek de durumu belirleyebilirsiniz.

RECURSIVE_TRIGGERS { ON | KAPALI }

  • ÜZERİNDE

    AFTER tetikleyicilerinin özyinelemeli olarak tetiklemesine izin verilir.

  • KAPALI

    sys.databases katalog görünümündeki is_recursive_triggers_on sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsRecursiveTriggersEnabled özelliğini inceleyerek de durumu belirleyebilirsiniz.

    Not

    RECURSIVE_TRIGGERS KAPALI olarak ayarlandığında yalnızca doğrudan özyineleme engellenir. Dolaylı özyineleme özelliğini devre dışı bırakmak için iç içe tetikleyiciler sunucusu seçeneğini de 0 olarak ayarlamanız gerekir.

sys.databases katalog görünümündeki is_recursive_triggers_on sütununu veya DATABASEPROPERTYEX işlevinin IsRecursiveTriggersEnabled özelliğini inceleyerek bu seçeneğin durumunu belirleyebilirsiniz.

<target_recovery_time_option> ::=

target_recovery_time_option, Azure SQL Yönetilen Örneği'nda desteklenmez.

Veritabanı başına dolaylı denetim noktalarının sıklığını belirtir. SQL Server 2016'dan (13.x) başlayarak, yeni veritabanları için varsayılan değer 1 dakikaolur ve bu da veritabanının dolaylı denetim noktaları kullandığını gösterir. Eski sürümler için varsayılan değer 0'dır ve bu, veritabanının sıklığı sunucu örneğinin kurtarma aralığı ayarına bağlı olan otomatik denetim noktaları kullandığını gösterir. Microsoft çoğu sistem için 1 dakika önerir.

WITH <sonlandırma> ::=

Veritabanı bir durumdan diğerine geçirildiğinde tamamlanmamış işlemlerin ne zaman geri alınıp alınamayacaını belirtir. Sonlandırma yan tümcesi atlanırsa, veritabanında herhangi bir kilit varsa ALTER DATABASE deyimi süresiz olarak bekler. Yalnızca bir sonlandırma yan tümcesi belirtilebilir ve SET yan tümcelerini izler.

Not

Tüm veritabanı seçenekleri WITH <sonlandırma> yan tümcesini kullanmaz. Daha fazla bilgi için, bu makalenin "Açıklamalar" bölümünün ayar seçenekleri altındaki tabloya bakın.

  • tamsayıdan sonra geri alma [SECONDS] | HEMEN GERI ALMA

    Belirtilen saniye sayısından sonra mı yoksa hemen mi geri alınmayacağını belirtir.

  • NO_WAIT

    İstenen veritabanı durumu veya seçenek değişikliği hemen tamamlanamadıysa isteğin başarısız olduğunu belirtir. Hemen tamamlanması, işlemlerin kendi başına işlenmesini veya geri alınması beklenmediği anlamına gelir.

<temporal_history_retention> ::=

  • TEMPORAL_HISTORY_RETENTION { ON | KAPALI }

    Varsayılan olarak AÇILDI, ancak belirli bir noktaya geri yükleme işleminden sonra otomatik olarak KAPALI olarak ayarlanır. Bu ayarı etkinleştirme hakkında daha fazla bilgi için bkz. Bekletme ilkesini yapılandırma.

    • ÜZERİNDE

      Temerrüt. Zamansal tablo bekletme ilkesini etkinleştirir. Daha fazla bilgi için bkz. sistem tabanlı zamana bağlı tablolarda geçmiş verilerin elde tutulmasını yönetme.

    • KAPALI

      Zamana bağlı geçmiş saklama ilkesi gerçekleştirmeyin.

Seçenekleri ayarlama

Veritabanı seçeneklerinin geçerli ayarlarını almak için sys.databases katalog görünümünü veya DATABASEPROPERTYEX 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.

Örnekler

A. Veritabanında anlık görüntü yalıtımını etkinleştirme

Aşağıdaki örnek, AdventureWorks2022 veritabanı için anlık görüntü yalıtım çerçevesi seçeneğini etkinleştirir.

USE master;
GO
ALTER DATABASE [database_name]
SET ALLOW_SNAPSHOT_ISOLATION ON;
GO
-- Check the state of the snapshot_isolation_framework
-- in the database.
SELECT name, snapshot_isolation_state,
    snapshot_isolation_state_desc AS description
FROM sys.databases
WHERE name = N'[database_name]';
GO

Sonuç kümesi, anlık görüntü yalıtım çerçevesinin etkinleştirildiğini gösterir.

ad snapshot_isolation_state Açıklama
[database_name] 1 ÜZERİNDE

B. Değişiklik izlemeyi etkinleştirme, değiştirme veya devre dışı bırakma

Aşağıdaki örnek, AdventureWorks2022 veritabanı için değişiklik izlemeyi etkinleştirir ve bekletme süresini 2 güne ayarlar.

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

Aşağıdaki örnekte bekletme süresinin 3 gün olarak nasıl değiştireceği gösterilmektedir.

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

Aşağıdaki örnekte, AdventureWorks2022 veritabanı için değişiklik izlemeyi devre dışı bırakma gösterilmektedir.

ALTER DATABASE [database_name]
SET CHANGE_TRACKING = OFF;

C. Sorgu Deposunu Etkinleştirme

Aşağıdaki örnekte Sorgu Deposu etkinleştirilip Sorgu Deposu parametreleri yapılandırılır.

ALTER DATABASE [database_name]
SET QUERY_STORE = ON
    (
      OPERATION_MODE = READ_WRITE,
      CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = 90 ),
      DATA_FLUSH_INTERVAL_SECONDS = 900,
      QUERY_CAPTURE_MODE = AUTO,
      MAX_STORAGE_SIZE_MB = 1024,
      INTERVAL_LENGTH_MINUTES = 60
    );

D. Sorgu Deposu'nı bekleme istatistikleriyle etkinleştirme

Aşağıdaki örnek Sorgu Deposu'na olanak tanır ve parametrelerini yapılandırmaktadır.

ALTER DATABASE [database_name]
SET QUERY_STORE = ON
    (
      OPERATION_MODE = READ_WRITE,
      CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = 90 ),
      DATA_FLUSH_INTERVAL_SECONDS = 900,
      MAX_STORAGE_SIZE_MB = 1024,
      INTERVAL_LENGTH_MINUTES = 60,
      SIZE_BASED_CLEANUP_MODE = AUTO,
      MAX_PLANS_PER_QUERY = 200,
      WAIT_STATS_CAPTURE_MODE = ON
    );

E. Özel yakalama ilkesi seçenekleriyle Sorgu Deposu'yu etkinleştirme

Aşağıdaki örnek Sorgu Deposu'na olanak tanır ve parametrelerini yapılandırmaktadır.

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

SQL Server

SQL Veritabanı

SQL Yönetilen Örneği

* Azure Synapse
Analiz *
 

Microsoft Fabric

 

Azure Synapse Analytics

Sözdizimi

ALTER DATABASE { database_name }
SET
{
    <optionspec> [ ,...n ]
}
;

<option_spec>::=
{
    <auto_option>
  | <db_encryption_option>
  | <query_store_options>
  | <result_set_caching>
  | <snapshot_option>
}
;

<auto_option> ::=
{
    AUTO_CREATE_STATISTICS { OFF | ON }
}

<db_encryption_option> ::=
{
    ENCRYPTION { ON | OFF }
}

<query_store_option> ::=
{
    QUERY_STORE { OFF | ON }
}

<result_set_caching_option> ::=
{
    RESULT_SET_CACHING { ON | OFF }
}

<snapshot_option> ::=
{
    READ_COMMITTED_SNAPSHOT { ON | OFF }
}

Bağımsız değişken

database_name

Değiştirilecek veritabanının adı.

<auto_option> ::=

Otomatik seçenekleri denetler.

AUTO_CREATE_STATISTICS { ON | KAPALI }

  • ÜZERİNDE

    Sorgu İyileştiricisi, sorgu planlarını ve sorgu performansını geliştirmek için gerektiğinde sorgu koşullarındaki tek sütunlarda istatistikler oluşturur. Bu tek sütunlu istatistikler, Sorgu İyileştiricisi sorguları derlediğinde oluşturulur. Tek sütunlu istatistikler yalnızca mevcut istatistik nesnesinin ilk sütunu olmayan sütunlarda oluşturulur.

    Varsayılan değer ON'dır. Çoğu veritabanı için varsayılan ayarı kullanmanızı öneririz.

  • KAPALI

    Sorgu İyileştiricisi, sorgu derlerken sorgu koşullarında tek sütunlarda istatistik oluşturmaz. Bu seçeneğin KAPALI olarak ayarlanması, yetersiz sorgu planlarına ve düşük sorgu performansına neden olabilir.

Bu komut, kullanıcı veritabanına bağlıyken çalıştırılmalıdır.

sys.databases katalog görünümündeki is_auto_create_stats_on sütununu inceleyerek bu seçeneğin durumunu belirleyebilirsiniz. Ayrıca, DATABASEPROPERTYEX işlevinin IsAutoCreateStatistics özelliğini inceleyerek de durumu belirleyebilirsiniz.

Daha fazla bilgi için, İstatistikler'daki "Veritabanı genelinde istatistik seçeneklerini kullanma" bölümüne bakın.

<db_encryption_option> ::=

Veritabanı şifreleme durumunu denetler.

ŞIFRELEME { ON | KAPALI }

  • ÜZERİNDE

    Veritabanını şifrelenecek şekilde ayarlar.

  • KAPALI

    Veritabanını şifrelenmemesi için ayarlar.

Veritabanı şifrelemesi hakkında daha fazla bilgi için bkz. Saydam veri şifrelemesi (TDE)ve Azure SQL Veritabanı, Azure SQL Yönetilen Örneği ve Azure Synapse Analyticsiçin saydam veri şifrelemesi.

Şifreleme veritabanı düzeyinde etkinleştirildiğinde, tüm dosya grupları şifrelenir. Tüm yeni dosya grupları şifrelenmiş özelliği devralır. Veritabanındaki herhangi bir dosya grubu SALT OKUNUR olarak ayarlanırsa, veritabanı şifreleme işlemi başarısız olur.

sys.dm_database_encryption_keys dinamik yönetim görünümünü kullanarak veritabanının şifreleme durumunu ve şifreleme taramasının durumunu görebilirsiniz.

<query_store_option> ::=

Sorgu Deposunun bu veri ambarında etkinleştirilip etkinleştirilmediğini denetler.

QUERY_STORE { ON | KAPALI }

  • ÜZERİNDE

    Sorgu Deposu'na olanak tanır.

  • KAPALI

    Sorgu Deposu'nı devre dışı bırakır. OFF varsayılan değerdir.

Not

Azure Synapse Analytics için kullanıcı veritabanından ALTER DATABASE SET QUERY_STORE yürütmeniz gerekir. Deyimin başka bir veri ambarı örneğinden yürütülmesi desteklenmez.

Not

Azure Synapse Analytics için Sorgu Deposu diğer platformlarda olduğu gibi etkinleştirilebilir ancak ek yapılandırma seçenekleri desteklenmez.

<result_set_caching_option> ::=

için geçerlidir: Azure Synapse Analytics

Sorgu sonucunun veritabanında önbelleğe alınıp alınmayacağını denetler.

RESULT_SET_CACHING { ON | KAPALI }

  • ÜZERİNDE

    Bu veritabanından döndürülen sorgu sonuç kümelerinin veritabanında önbelleğe alındığını belirtir.

  • KAPALI

    Bu veritabanından döndürülen sorgu sonuç kümelerinin veritabanında önbelleğe alınmayacaklarını belirtir.

Bu komut, master veritabanına bağlıyken çalıştırılmalıdır. Bu veritabanı ayarına yapılan değişiklik hemen geçerlilik kazanır. Depolama maliyetleri sorgu sonuç kümelerini önbelleğe alarak tahakkuk eder. Veritabanı için sonuç önbelleğe alma devre dışı bırakıldıktan sonra, daha önce kalıcı olan sonuç önbelleği Azure Synapse depolama alanından hemen silinir.

Veritabanının sonuç kümesi önbelleğe alma yapılandırmasını denetlemek için bu komutu çalıştırın. Sonuç kümesi önbelleğe alma açıksa, is_result_set_caching_on 1 döndürür.

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

Önbelleğe alınmış sonuç kullanılarak bir sorgu yürütülürse denetlemek için bu komutu çalıştırın. result_cache_hit sütunu önbellek isabeti için 1, önbellek isabeti için 0, sonuç kümesi önbelleğinin neden kullanılmaması nedeniyle negatif değerler döndürür. Ayrıntılar için sys.dm_pdw_exec_requests denetleyin.

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

Not

Sonuç kümesi önbelleği, DECRYPTBYKEYile birlikte kullanılmamalıdır. Bu şifreleme işlevinin kullanılması gerekiyorsa, yürütme sırasında sonuç kümesi önbelleğinin devre dışı bırakıldığından emin olun (oturum düzeyinde veya veritabanı düzeyinde).

Önemli

Sonuç kümesi önbelleği oluşturma ve önbellekten veri alma işlemleri, veri ambarı örneğinin denetim düğümünde gerçekleşir. Sonuç kümesi önbelleğe alma açık olduğunda, büyük sonuç kümesi döndüren sorguların çalıştırılması (örneğin, >1 milyon satır) denetim düğümünde yüksek CPU kullanımına neden olabilir ve örnekteki genel sorgu yanıtını yavaşlatabilir. Bu sorgular genellikle veri keşfi veya ETL işlemleri sırasında kullanılır. Denetim düğümünün strese girmemesi ve performans sorununa neden olması için kullanıcıların bu tür sorguları çalıştırmadan önce veritabanında off sonuç kümesi önbelleğe alma özelliğini kapatması gerekir.

Sonuç kümesi önbelleğe alma ile performans ayarlama hakkında ayrıntılı bilgi içinPerformans ayarlama kılavuzuna bakın.

İzinler

RESULT_SET_CACHING seçeneğini ayarlamak için kullanıcının sunucu düzeyinde asıl oturum açma (sağlama işlemi tarafından oluşturulan) veya dbmanager veritabanı rolünün üyesi olması gerekir.

<snapshot_option> ::=

için geçerlidir: Azure Synapse Analytics

Veritabanının işlem yalıtım düzeyini denetler.

READ_COMMITTED_SNAPSHOT { ON | KAPALI }

  • ÜZERİNDE

    Veritabanı düzeyinde READ_COMMITTED_SNAPSHOT seçeneğini etkinleştirir.

  • KAPALI

    Veritabanı düzeyinde READ_COMMITTED_SNAPSHOT seçeneğini kapatın.

Bu komut, master veritabanına bağlıyken çalıştırılmalıdır. Kullanıcı veritabanı için READ_COMMITTED_SNAPSHOT AÇIK veya KAPALI olarak kapatmak, bu veritabanına yönelik tüm açık bağlantıları sonlar. Bu değişikliği veritabanı bakım penceresi sırasında yapmanız veya ALTER DATABASE komutunu çalıştıran bağlantı dışında veritabanına etkin bir bağlantı kalmayıncaya kadar beklemeniz gerekir. Veritabanının tek kullanıcılı modda olması gerekmez. Oturum düzeyinde READ_COMMITTED_SNAPSHOT ayarının değiştirilmesi desteklenmez. Bir veritabanı için bu ayarı doğrulamak için sys.databasesiçindeki is_read_committed_snapshot_on sütununu denetleyin.

READ_COMMITTED_SNAPSHOT etkin bir veritabanında, birden çok veri sürümü varsa, sürümlerin taranma nedeniyle sorgular daha yavaş performansla karşılaşabilir. Uzun süre açık işlemler de veritabanının boyutunda artışa neden olabilir. Bu sorun, bu işlemler tarafından sürüm temizlemeyi engelleyen veri değişiklikleri olduğunda oluşur.

İzinler

READ_COMMITTED_SNAPSHOT seçeneğini ayarlamak için kullanıcının veritabanında ALTER iznine sahip olması gerekir.

Örnekler

Veritabanı için istatistik ayarını denetleme

SELECT name, is_auto_create_stats_on FROM sys.databases

Veritabanı için Sorgu Deposu'yu etkinleştirme

ALTER DATABASE [database_name]
SET QUERY_STORE = ON;

Veritabanı için sonuç kümesi önbelleğini etkinleştirme

-- Run this command when connecting to the MASTER database

ALTER DATABASE [database_name]
SET RESULT_SET_CACHING ON;

Veritabanı için sonuç kümesi önbelleğe alma ayarını denetleme

SELECT name, is_result_set_caching_on
FROM sys.databases;

Veritabanı için Read_Committed_Snapshot seçeneğini etkinleştirme

master veritabanına bağlanırken bu komutu çalıştırın.

ALTER DATABASE MyDatabase
SET READ_COMMITTED_SNAPSHOT ON;

SQL Server

SQL Veritabanı

SQL Yönetilen Örneği

Azure Synapse'i
Analiz

Microsoft Fabric

 

Microsoft Fabric

Microsoft Fabric Warehouse'u yönetmek için ALTER DATABASE ... SET kullanın.

Sözdizimi

-- Microsoft Fabric

ALTER DATABASE { warehouse_name | CURRENT }
SET
{
    <option_spec> [ ,...n ] 
}

<option_spec> ::=
{
    <data_lake_log_publishing>
  | <vorder>
}
;

<data_lake_log_publishing> ::=
{
    DATA_LAKE_LOG_PUBLISHING { PAUSED | AUTO }
}

<vorder> ::=
{
    VORDER = OFF
}

Açıklamalar

Şu anda Delta Lake günlüğü yayımlama duraklatmak ve V Sırası davranışını devre dışı bırakmak Microsoft Fabric'te için tek kullanım alanıdır.

İzinler

Kullanıcının Doku çalışma alanında Yönetici, Üye veya Katkıda Bulunan rollerinin üyesi olması gerekir.

Örnekler

A. Delta Lake Günlüklerinin yayımlanmasını duraklatma

Aşağıdaki T-SQL komutu geçerli ambar bağlamında Delta Lake Log yayımlamayı duraklatır.

ALTER DATABASE CURRENT SET DATA_LAKE_LOG_PUBLISHING = PAUSED;

Çalışma alanınızın tüm ambarlarında Delta Lake Log yayımlamasının geçerli durumunu denetlemek için, yeni bir sorgu penceresinde sys.databases sorgulamak için aşağıdaki T-SQL kodunu kullanın:

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