ALTER DATABASE SCOPED CONFIGURATION (T-SQL)

Berlaku untuk:yes SQL Server 2016 (13.x) dan yang lebih baru Ya Azure SQL Database Ya Azure SQL Managed Instance ya Azure Synapse Analytics

Perintah ini memungkinkan beberapa pengaturan konfigurasi database di tingkat database individual .

Pengaturan berikut ini didukung di Azure SQL Database, Azure SQL Managed Instance dan di SQL Server seperti yang ditunjukkan oleh baris TERAPKAN KE untuk setiap pengaturan di bagian Argumen:

  • Hapus cache prosedur.
  • Atur parameter MAXDOP ke nilai yang direkomendasikan (1,2, ...) untuk database utama berdasarkan apa yang paling sesuai untuk beban kerja tertentu, dan tetapkan nilai yang berbeda untuk database replika sekunder yang digunakan oleh kueri pelaporan. Untuk panduan tentang memilih MAXDOP, tinjau Mengonfigurasi tingkat maksimum Opsi Konfigurasi Server paralelisme.
  • Atur model estimasi kardinalitas pengoptimal kueri yang independen dari database ke tingkat kompatibilitas.
  • Aktifkan atau nonaktifkan sniffing parameter di tingkat database.
  • Mengaktifkan atau menonaktifkan perbaikan pengoptimalan kueri di tingkat database.
  • Aktifkan atau nonaktifkan cache identitas di tingkat database.
  • Aktifkan atau nonaktifkan stub paket yang dikompilasi untuk disimpan dalam cache saat batch dikompilasi untuk pertama kalinya.
  • Aktifkan atau nonaktifkan pengumpulan statistik eksekusi untuk modul Transact-SQL yang dikompilasi secara asli.
  • Aktifkan atau nonaktifkan online secara default opsi untuk pernyataan DDL yang mendukung ONLINE = sintaks.
  • Aktifkan atau nonaktifkan dapat dilanjutkan dengan opsi default untuk pernyataan DDL yang mendukung RESUMABLE = sintaks.
  • Mengaktifkan atau menonaktifkan fitur pemrosesan kueri cerdas .
  • Aktifkan atau nonaktifkan memaksa paket yang dipercepat.
  • Mengaktifkan atau menonaktifkan fungsionalitas penurunan otomatis tabel sementara global.
  • Mengaktifkan atau menonaktifkan infrastruktur pembuatan profil kueri ringan.
  • Aktifkan atau nonaktifkan pesan kesalahan baru String or binary data would be truncated .
  • Aktifkan atau nonaktifkan pengumpulan rencana eksekusi aktual terakhir di sys.dm_exec_query_plan_stats.
  • Tentukan jumlah menit bahwa operasi indeks yang dapat dijeda dapat dijeda sebelum dibatalkan secara otomatis oleh Mesin Database.
  • Aktifkan atau nonaktifkan menunggu kunci dengan prioritas rendah untuk pembaruan statistik asinkron.

Pengaturan ini hanya tersedia di Azure Synapse Analytics.

  • Mengatur tingkat kompatibilitas database pengguna

Konvensi Sintaks Transact-SQL

Sintaks

-- Syntax for SQL Server, Azure SQL Database and Azure SQL Managed Instance

ALTER DATABASE SCOPED CONFIGURATION
{
    { [ FOR SECONDARY] SET <set_options>}
}
| CLEAR PROCEDURE_CACHE [plan_handle]
| SET < set_options >
[;]

< set_options > ::=
{
    MAXDOP = { <value> | PRIMARY}
    | LEGACY_CARDINALITY_ESTIMATION = { ON | OFF | PRIMARY}
    | PARAMETER_SNIFFING = { ON | OFF | PRIMARY}
    | QUERY_OPTIMIZER_HOTFIXES = { ON | OFF | PRIMARY}
    | IDENTITY_CACHE = { ON | OFF }
    | INTERLEAVED_EXECUTION_TVF = { ON | OFF }
    | BATCH_MODE_MEMORY_GRANT_FEEDBACK = { ON | OFF }
    | BATCH_MODE_ADAPTIVE_JOINS = { ON | OFF }
    | TSQL_SCALAR_UDF_INLINING = { ON | OFF }
    | ELEVATE_ONLINE = { OFF | WHEN_SUPPORTED | FAIL_UNSUPPORTED }
    | ELEVATE_RESUMABLE = { OFF | WHEN_SUPPORTED | FAIL_UNSUPPORTED }
    | OPTIMIZE_FOR_AD_HOC_WORKLOADS = { ON | OFF }
    | XTP_PROCEDURE_EXECUTION_STATISTICS = { ON | OFF }
    | XTP_QUERY_EXECUTION_STATISTICS = { ON | OFF }
    | ROW_MODE_MEMORY_GRANT_FEEDBACK = { ON | OFF }
    | MEMORY_GRANT_FEEDBACK_PERCENTILE = { ON | OFF }
    | MEMORY_GRANT_FEEDBACK_PERSISTENCE = { ON | OFF }
    | BATCH_MODE_ON_ROWSTORE = { ON | OFF }
    | DEFERRED_COMPILATION_TV = { ON | OFF }
    | ACCELERATED_PLAN_FORCING = { ON | OFF }
    | GLOBAL_TEMPORARY_TABLE_AUTO_DROP = { ON | OFF }
    | LIGHTWEIGHT_QUERY_PROFILING = { ON | OFF }
    | VERBOSE_TRUNCATION_WARNINGS = { ON | OFF }
    | LAST_QUERY_PLAN_STATS = { ON | OFF }
    | PAUSED_RESUMABLE_INDEX_ABORT_DURATION_MINUTES = <time>
    | ISOLATE_SECURITY_POLICY_CARDINALITY  = { ON | OFF }
    | EXEC_QUERY_STATS_FOR_SCALAR_FUNCTIONS = { ON | OFF }
    | ASYNC_STATS_UPDATE_WAIT_AT_LOW_PRIORITY = { ON | OFF }
    | OPTIMIZED_PLAN_FORCING = { ON | OFF }
    | DOP_FEEDBACK = { ON | OFF }
    | PARAMETER_SENSITIVE_PLAN_OPTIMIZATION = { ON | OFF }
}

Penting

Dimulai dengan SQL Server 2019 (15.x), di Azure SQL Database, dan Azure SQL Managed Instance, beberapa nama opsi telah berubah:

  • DISABLE_INTERLEAVED_EXECUTION_TVF diubah menjadi INTERLEAVED_EXECUTION_TVF
  • DISABLE_BATCH_MODE_MEMORY_GRANT_FEEDBACK diubah menjadi BATCH_MODE_MEMORY_GRANT_FEEDBACK
  • DISABLE_BATCH_MODE_ADAPTIVE_JOINS diubah menjadi BATCH_MODE_ADAPTIVE_JOINS
-- Syntax for Azure Synapse Analytics

ALTER DATABASE SCOPED CONFIGURATION
{
    SET <set_options>
}
[;]

< set_options > ::=
{
    DW_COMPATIBILITY_LEVEL = { AUTO | 10 | 20 | 9000 } 
}

Argumen

UNTUK SEKUNDER

Menentukan pengaturan untuk database sekunder (semua database sekunder harus memiliki nilai yang identik).

CLEAR PROCEDURE_CACHE [plan_handle]

Menghapus cache prosedur (rencana) untuk database, dan dapat dijalankan baik di primer maupun sekunder.

Tentukan handel rencana kueri untuk menghapus satu rencana kueri dari cache paket.

BERLAKU UNTUK: Menentukan handel rencana kueri tersedia di mulai dengan SQL Server 2019 (15.x), di Azure SQL Database, dan Azure SQL Managed Instance.

MAXDOP = {<value> | Nilai> PRIMARY }<

Menentukan pengaturan tingkat paralelisme maks default (MAXDOP) yang harus digunakan untuk pernyataan. 0 adalah nilai default dan menunjukkan bahwa konfigurasi server akan digunakan sebagai gantinya. MAXDOP pada pengambil alihan cakupan database (kecuali diatur ke 0) tingkat paralelisme maksimum yang diatur pada tingkat server dengan sp_configure. Petunjuk kueri masih dapat mengambil alih MAXDOP lingkup database untuk menyetel kueri tertentu yang memerlukan pengaturan yang berbeda. Semua pengaturan ini dibatasi oleh MAXDOP yang ditetapkan untuk Grup Beban Kerja.

Anda dapat menggunakan opsi MAXDOP untuk membatasi jumlah prosesor yang akan digunakan dalam eksekusi rencana paralel. SQL Server mempertimbangkan rencana eksekusi paralel untuk kueri, operasi bahasa definisi data indeks (DDL), penyisipan paralel, kolom perubahan online, pengumpulan statistik paralel, dan populasi kursor statis dan berbasis keyset.

Catatan

Batas tingkat paralelisme maksimum (MAXDOP) diatur per tugas. Ini bukan batas per permintaan atau per kueri. Ini berarti bahwa selama eksekusi kueri paralel, satu permintaan dapat menghasilkan beberapa tugas yang ditetapkan ke penjadwal. Untuk informasi selengkapnya, lihat Panduan Arsitektur Utas dan Tugas.

Untuk mengatur opsi ini di tingkat instans, lihat Mengonfigurasi tingkat maksimum Opsi Konfigurasi Server paralelisme.

Catatan

Dalam Azure SQL Database, konfigurasi cakupan database MAXDOP untuk database kumpulan tunggal dan elastis baru diatur ke 8 secara default. MAXDOP dapat dikonfigurasi untuk setiap database seperti yang dijelaskan dalam artikel saat ini. Untuk rekomendasi tentang mengonfigurasi MAXDOP secara optimal, lihat bagian Sumber Daya Tambahan .

Tip

Untuk mencapai hal ini di tingkat kueri, gunakan petunjuk kueriMAXDOP.
Untuk mencapai hal ini di tingkat server, gunakan opsi konfigurasi servertingkat paralelisme maksimum (MAXDOP).
Untuk mencapainya di tingkat beban kerja, gunakan opsi konfigurasi grup beban kerjaMAX_DOP Resource Governor.

PRIMARY

Hanya dapat diatur untuk sekunder, sementara database di pada primer, dan menunjukkan bahwa konfigurasi akan menjadi satu set untuk primer. Jika konfigurasi untuk perubahan utama, nilai pada sekunder akan berubah sesuai tanpa perlu mengatur nilai sekunder secara eksplisit. PRIMARY adalah pengaturan default untuk sekunder.

= LEGACY_CARDINALITY_ESTIMATION { ON | OFF | PRIMARY }

Memungkinkan Anda mengatur model estimasi kardinalitas pengoptimal kueri ke SQL Server 2012 dan versi yang lebih lama terlepas dari tingkat kompatibilitas database. Defaultnya adalah OFF, yang mengatur model estimasi kardinalitas pengoptimal kueri berdasarkan tingkat kompatibilitas database. Pengaturan LEGACY_CARDINALITY_ESTIMATION ke AKTIF setara dengan mengaktifkan Bendera Pelacakan 9481.

Tip

Untuk mencapai ini di tingkat kueri, tambahkan petunjuk kueriQUERYTRACEON. Dimulai dengan SQL Server 2016 (13.x) SP1, untuk mencapainya di tingkat kueri, tambahkan petunjuk kueriUSE HINT alih-alih menggunakan bendera pelacakan.

PRIMARY

Nilai ini hanya berlaku pada sekunder saat database di primer, dan menentukan bahwa pengaturan model estimasi kardinalitas pengoptimal kueri pada semua sekunder akan menjadi nilai yang ditetapkan untuk primer. Jika konfigurasi pada primer untuk model estimasi kardinalitas pengoptimal kueri berubah, nilai pada sekunder akan berubah sesuai. PRIMARY adalah pengaturan default untuk sekunder.

= PARAMETER_SNIFFING { ON | OFF | PRIMARY }

Mengaktifkan atau menonaktifkan sniffing parameter. Defaultnya adalah AKTIF. Mengatur PARAMETER_SNIFFING ke NONAKTIF setara dengan mengaktifkan Bendera Pelacakan 4136.

Tip

Untuk mencapai ini di tingkat kueri, lihat petunjuk kueriOPTIMIZE FOR UNKNOWN. Dimulai dengan SQL Server 2016 (13.x) SP1, untuk mencapainya di tingkat kueri, petunjuk kueriUSE HINT juga tersedia.

PRIMARY

Nilai ini hanya berlaku pada sekunder saat database di primer, dan menentukan bahwa nilai untuk pengaturan ini pada semua sekunder akan menjadi nilai yang ditetapkan untuk primer. Jika konfigurasi pada primer untuk menggunakan parameter sniffing berubah, nilai pada sekunder akan berubah sesuai tanpa perlu mengatur nilai sekunder secara eksplisit. PRIMARY adalah pengaturan default untuk sekunder.

= QUERY_OPTIMIZER_HOTFIXES { ON | OFF | PRIMARY }

Mengaktifkan atau menonaktifkan perbaikan pengoptimalan kueri terlepas dari tingkat kompatibilitas database. Defaultnya adalah NONAKTIF, yang menonaktifkan perbaikan pengoptimalan kueri yang dirilis setelah tingkat kompatibilitas tertinggi yang tersedia diperkenalkan untuk versi tertentu (pasca-RTM). Mengatur ini ke AKTIF setara dengan mengaktifkan Bendera Pelacakan 4199.

BERLAKU UNTUK: SQL Server (Dimulai dengan SQL Server 2016 (13.x)), database Azure SQL dan Azure SQL Managed Instance

Tip

Untuk mencapai ini di tingkat kueri, tambahkan petunjuk kueriQUERYTRACEON. Dimulai dengan SQL Server 2016 (13.x) SP1, untuk mencapainya di tingkat kueri, tambahkan petunjuk kueri USE HINT alih-alih menggunakan bendera pelacakan.

PRIMARY

Nilai ini hanya berlaku pada sekunder saat database di primer, dan menentukan bahwa nilai untuk pengaturan ini pada semua sekunder adalah nilai yang ditetapkan untuk primer. Jika konfigurasi untuk perubahan utama, nilai pada sekunder berubah sesuai tanpa perlu mengatur nilai sekunder secara eksplisit. PRIMARY adalah pengaturan default untuk sekunder.

= IDENTITY_CACHE { ON | NONAKTIF }

BERLAKU UNTUK: SQL Server (Dimulai dengan SQL Server 2017 (14.x)), database Azure SQL dan Azure SQL Managed Instance

Mengaktifkan atau menonaktifkan cache identitas di tingkat database. Defaultnya adalah AKTIF. Penembolokan identitas digunakan untuk meningkatkan performa INSERT pada tabel dengan kolom identitas. Untuk menghindari celah dalam nilai kolom identitas dalam kasus di mana server dimulai ulang secara tak terduga atau gagal ke server sekunder, nonaktifkan opsi IDENTITY_CACHE. Opsi ini mirip dengan Bendera Pelacakan 272 yang ada, kecuali dapat diatur pada tingkat database daripada hanya di tingkat server.

Catatan

Opsi ini hanya dapat diatur untuk PRIMARY. Untuk informasi selengkapnya, lihat kolom identitas.

= INTERLEAVED_EXECUTION_TVF { ON | NONAKTIF }

BERLAKU UNTUK: SQL Server (Dimulai dengan SQL Server 2019 (15.x)), Database Azure SQL dan Azure SQL Managed Instance

Memungkinkan Anda mengaktifkan atau menonaktifkan eksekusi Interleaved untuk fungsi bernilai tabel multi-pernyataan pada database atau cakupan pernyataan sambil tetap mempertahankan tingkat kompatibilitas database 140 dan yang lebih tinggi. Eksekusi interleaved adalah fitur yang merupakan bagian dari pemrosesan kueri Adaptif di Azure SQL Database. Untuk informasi selengkapnya, silakan lihat Pemrosesan kueri cerdas.

Catatan

Untuk tingkat kompatibilitas database 130 atau lebih rendah, konfigurasi lingkup database ini tidak berpengaruh.

Pada SQL Server 2017 (14.x) saja, opsi INTERLEAVED_EXECUTION_TVF memiliki nama DISABLE yang lebih lama_INTERLEAVED_EXECUTION_TVF.

= BATCH_MODE_MEMORY_GRANT_FEEDBACK { ON | NONAKTIF }

BERLAKU UNTUK: SQL Server (Dimulai dengan SQL Server 2019 (15.x)), Database Azure SQL dan Azure SQL Managed Instance

Memungkinkan Anda mengaktifkan atau menonaktifkan umpan balik pemberian memori mode batch di cakupan database sambil tetap mempertahankan tingkat kompatibilitas database 140 dan yang lebih tinggi. Memori mode batch memberikan umpan balik fitur yang merupakan bagian dari pemrosesan kueri cerdas yang diperkenalkan pada SQL Server 2017 (14.x).

Catatan

Untuk tingkat kompatibilitas database 130 atau lebih rendah, konfigurasi lingkup database ini tidak berpengaruh.

= BATCH_MODE_ADAPTIVE_JOINS { ON | NONAKTIF }

BERLAKU UNTUK: SQL Server (Dimulai dengan SQL Server 2019 (15.x)), Database Azure SQL dan Azure SQL Managed Instance

Memungkinkan Anda mengaktifkan atau menonaktifkan gabungan adaptif mode batch pada cakupan database sambil tetap mempertahankan tingkat kompatibilitas database 140 dan yang lebih tinggi. Gabungan adaptif mode batch adalah fitur yang merupakan bagian dari pemrosesan kueri cerdas yang diperkenalkan pada SQL Server 2017 (14.x).

Catatan

Untuk tingkat kompatibilitas database 130 atau lebih rendah, konfigurasi lingkup database ini tidak berpengaruh.

= TSQL_SCALAR_UDF_INLINING { ON | NONAKTIF }

BERLAKU UNTUK: SQL Server (Dimulai dengan SQL Server 2019 (15.x)) dan Database Azure SQL (fitur dalam pratinjau publik)

Memungkinkan Anda mengaktifkan atau menonaktifkan T-SQL Scalar UDF inlining pada cakupan database sambil tetap mempertahankan tingkat kompatibilitas database 150 dan yang lebih tinggi. T-SQL Scalar UDF inlining adalah bagian dari keluarga fitur pemrosesan kueri cerdas .

Catatan

Untuk tingkat kompatibilitas database 140 atau lebih rendah, konfigurasi lingkup database ini tidak berpengaruh.

ELEVATE_ONLINE = { OFF | WHEN_SUPPORTED | FAIL_UNSUPPORTED }

BERLAKU UNTUK: SQL Server (Dimulai dengan SQL Server 2019 (15.x)), Database Azure SQL dan Azure SQL Managed Instance

Memungkinkan Anda memilih opsi untuk menyebabkan mesin secara otomatis meningkatkan operasi yang didukung menjadi online. Defaultnya adalah OFF, yang berarti operasi tidak akan ditingkatkan ke online kecuali ditentukan dalam pernyataan. sys.database_scoped_configurations mencerminkan nilai ELEVATE_ONLINE saat ini. Opsi ini hanya akan berlaku untuk operasi yang didukung untuk online.

FAIL_UNSUPPORTED

Nilai ini meningkatkan semua operasi DDL yang didukung ke ONLINE. Operasi yang tidak mendukung eksekusi online akan gagal dan melemparkan kesalahan.

Catatan

Menambahkan kolom ke tabel adalah operasi online dalam kasus umum. Dalam beberapa skenario, misalnya saat menambahkan kolom yang tidak dapat diubah ke null, kolom tidak dapat ditambahkan secara online. Dalam kasus tersebut, jika FAIL_UNSUPPORTED diatur, operasi akan gagal.

WHEN_SUPPORTED

Nilai ini meningkatkan operasi yang mendukung ONLINE. Operasi yang tidak mendukung online akan dijalankan secara offline.

Catatan

Anda dapat mengambil alih pengaturan default dengan mengirimkan pernyataan dengan opsi ONLINE yang ditentukan.

ELEVATE_RESUMABLE= { OFF | WHEN_SUPPORTED | FAIL_UNSUPPORTED }

BERLAKU UNTUK: SQL Server (Dimulai dengan SQL Server 2019 (15.x)), Database Azure SQL dan Azure SQL Managed Instance

Memungkinkan Anda memilih opsi untuk menyebabkan mesin secara otomatis meningkatkan operasi yang didukung agar dapat dilanjutkan. Defaultnya adalah OFF, yang berarti operasi tidak ditingkatkan ke dapat diulang kecuali ditentukan dalam pernyataan. sys.database_scoped_configurations mencerminkan nilai ELEVATE_RESUMABLE saat ini. Opsi ini hanya berlaku untuk operasi yang didukung untuk dapat diulang.

FAIL_UNSUPPORTED

Nilai ini meningkatkan semua operasi DDL yang didukung menjadi RESUMABLE. Operasi yang tidak mendukung eksekusi yang dapat diulang gagal dan melemparkan kesalahan.

WHEN_SUPPORTED

Nilai ini meningkatkan operasi yang mendukung RESUMABLE. Operasi yang tidak mendukung resumable dijalankan secara tidak dapat diandalkan.

Catatan

Anda dapat mengambil alih pengaturan default dengan mengirimkan pernyataan dengan opsi RESUMABLE yang ditentukan.

= OPTIMIZE_FOR_AD_HOC_WORKLOADS { ON | NONAKTIF }

BERLAKU UNTUK: SQL Server (Dimulai dengan SQL Server 2019 (15.x)), Database Azure SQL dan Azure SQL Managed Instance

Mengaktifkan atau menonaktifkan stub paket yang dikompilasi untuk disimpan dalam cache saat batch dikompilasi untuk pertama kalinya. Defaultnya adalah NONAKTIF. Setelah konfigurasi tercakup database OPTIMIZE_FOR_AD_HOC_WORKLOADS diaktifkan untuk database, stub paket yang dikompilasi akan disimpan dalam cache saat batch dikompilasi untuk pertama kalinya. Bongkahan rencana memiliki jejak memori yang lebih kecil dibandingkan dengan ukuran rencana yang dikompilasi penuh. Jika batch dikompilasi atau dijalankan lagi, stub paket yang dikompilasi akan dihapus dan diganti dengan rencana yang dikompilasi penuh.

= XTP_PROCEDURE_EXECUTION_STATISTICS { ON | NONAKTIF }

BERLAKU UNTUK: Azure SQL Database dan Azure SQL Managed Instance

Mengaktifkan atau menonaktifkan pengumpulan statistik eksekusi di tingkat modul untuk modul T-SQL yang dikompilasi secara asli dalam database saat ini. Defaultnya adalah NONAKTIF. Statistik eksekusi tercermin dalam sys.dm_exec_procedure_stats.

Statistik eksekusi tingkat modul untuk modul T-SQL yang dikompilasi secara asli dikumpulkan jika opsi ini AKTIF, atau jika pengumpulan statistik diaktifkan melalui sp_xtp_control_proc_exec_stats.

= XTP_QUERY_EXECUTION_STATISTICS { ON | NONAKTIF }

BERLAKU UNTUK: Azure SQL Database dan Azure SQL Managed Instance

Mengaktifkan atau menonaktifkan pengumpulan statistik eksekusi pada tingkat pernyataan untuk modul T-SQL yang dikompilasi secara asli dalam database saat ini. Defaultnya adalah NONAKTIF. Statistik eksekusi tercermin dalam sys.dm_exec_query_stats dan di Penyimpanan Kueri.

Statistik eksekusi tingkat pernyataan untuk modul T-SQL yang dikompilasi secara asli dikumpulkan jika opsi ini AKTIF, atau jika pengumpulan statistik diaktifkan melalui sp_xtp_control_query_exec_stats.

Untuk informasi selengkapnya tentang pemantauan performa modul Transact-SQL yang dikompilasi secara asli, lihat Memantau Performa Prosedur Tersimpan yang Dikompilasi Secara Asli.

= ROW_MODE_MEMORY_GRANT_FEEDBACK { ON | NONAKTIF }

BERLAKU UNTUK: SQL Server (Dimulai dengan SQL Server 2019 (15.x)), Database Azure SQL dan Azure SQL Managed Instance

Memungkinkan Anda mengaktifkan atau menonaktifkan memori mode baris memberikan umpan balik di cakupan database sambil tetap mempertahankan tingkat kompatibilitas database 150 dan yang lebih tinggi. Memori mode baris memberikan umpan balik fitur yang merupakan bagian dari pemrosesan kueri Cerdas yang diperkenalkan dalam SQL Server 2017 (14.x) (mode baris didukung di SQL Server 2019 (15.x) dan database Azure SQL).

Catatan

Untuk tingkat kompatibilitas database 140 atau lebih rendah, konfigurasi lingkup database ini tidak berpengaruh.

MEMORY_GRANT_FEEDBACK_PERCENTILE = { ON | NONAKTIF }

BERLAKU UNTUK: SQL Server (Dimulai dengan Pratinjau SQL Server 2022 (16.x)

Memungkinkan Anda menonaktifkan persentil umpan balik peruntukan memori untuk semua eksekusi kueri yang berasal dari database.

Catatan

Untuk tingkat kompatibilitas database 140 atau lebih rendah, konfigurasi lingkup database ini tidak berpengaruh.

MEMORY_GRANT_FEEDBACK_PERSISTENCE = { ON | NONAKTIF }

BERLAKU UNTUK: SQL Server (Dimulai dengan Pratinjau SQL Server 2022 (16.x)

Memungkinkan Anda menonaktifkan persistensi umpan balik peruntukan memori untuk semua eksekusi kueri yang berasal dari database.

Catatan

Untuk tingkat kompatibilitas database 140 atau lebih rendah, konfigurasi lingkup database ini tidak berpengaruh.

= BATCH_MODE_ON_ROWSTORE { ON | NONAKTIF }

BERLAKU UNTUK: SQL Server (Dimulai dengan SQL Server 2019 (15.x)), Database Azure SQL dan Azure SQL Managed Instance

Memungkinkan Anda mengaktifkan atau menonaktifkan mode batch pada rowstore pada cakupan database sambil tetap mempertahankan tingkat kompatibilitas database 150 dan yang lebih tinggi. Mode batch pada rowstore adalah fitur yang merupakan bagian dari keluarga fitur pemrosesan kueri cerdas .

Catatan

Untuk tingkat kompatibilitas database 140 atau lebih rendah, konfigurasi lingkup database ini tidak berpengaruh.

= DEFERRED_COMPILATION_TV { ON | NONAKTIF }

BERLAKU UNTUK: SQL Server (Dimulai dengan SQL Server 2019 (15.x)), Database Azure SQL dan Azure SQL Managed Instance

Memungkinkan Anda mengaktifkan atau menonaktifkan kompilasi yang ditangguhkan variabel tabel pada cakupan database sambil tetap mempertahankan tingkat kompatibilitas database 150 dan yang lebih tinggi. Kompilasi yang ditangguhkan variabel tabel adalah fitur yang merupakan bagian dari keluarga fitur pemrosesan kueri cerdas .

Catatan

Untuk tingkat kompatibilitas database 140 atau lebih rendah, konfigurasi lingkup database ini tidak berpengaruh.

= ACCELERATED_PLAN_FORCING { ON | NONAKTIF }

Berlaku untuk: SQL Server (Dimulai dengan SQL Server 2019 (15.x)), Azure SQL Database dan Azure SQL Managed Instance

Mengaktifkan mekanisme yang dioptimalkan untuk pemaksaan rencana kueri, berlaku untuk semua bentuk pemaksaan paket, seperti Paket Paksa Penyimpanan Kueri, Penyetelan Otomatis, atau petunjuk kueri USE PLAN . Defaultnya adalah AKTIF.

Catatan

Tidak disarankan untuk menonaktifkan memaksa rencana yang dipercepat.

= GLOBAL_TEMPORARY_TABLE_AUTO_DROP { ON | NONAKTIF }

BERLAKU UNTUK: Azure SQL Database dan Azure SQL Managed Instance

Memungkinkan pengaturan fungsionalitas penurunan otomatis untuk tabel sementara global. Defaultnya adalah ON, yang berarti bahwa tabel sementara global secara otomatis dihilangkan ketika tidak digunakan oleh sesi apa pun. Ketika diatur ke NONAKTIF, tabel sementara global perlu dihilangkan secara eksplisit menggunakan pernyataan DROP TABLE atau akan secara otomatis dihilangkan pada mulai ulang server.

  • Dengan database tunggal Azure SQL Database dan kumpulan elastis, opsi ini dapat diatur dalam database pengguna individual dari server SQL Database.
  • Dalam SQL Server dan Azure SQL Managed Instance, opsi ini diatur di TempDB dan pengaturan database pengguna individual tidak berpengaruh.

= LIGHTWEIGHT_QUERY_PROFILING { ON | NONAKTIF }

BERLAKU UNTUK: SQL Server (Dimulai dengan SQL Server 2019 (15.x)), Database Azure SQL dan Azure SQL Managed Instance

Memungkinkan Anda mengaktifkan atau menonaktifkan infrastruktur pembuatan profil kueri ringan. Infrastruktur pembuatan profil kueri ringan (LWP) menyediakan data performa kueri lebih efisien daripada mekanisme pembuatan profil standar dan diaktifkan secara default.

= VERBOSE_TRUNCATION_WARNINGS { ON | NONAKTIF }

BERLAKU UNTUK: SQL Server (Dimulai dengan SQL Server 2019 (15.x)), Database Azure SQL dan Azure SQL Managed Instance

Memungkinkan Anda mengaktifkan atau menonaktifkan pesan kesalahan baru String or binary data would be truncated . SQL Server 2019 (15.x) memperkenalkan pesan kesalahan baru yang lebih spesifik (2628) untuk skenario ini:

String or binary data would be truncated in table '%.*ls', column '%.*ls'. Truncated value: '%.*ls'.

Saat diatur ke AKTIF di bawah tingkat kompatibilitas database 150, kesalahan pemotongan meningkatkan pesan kesalahan baru 2628 untuk memberikan lebih banyak konteks dan menyederhanakan proses pemecahan masalah.

Saat diatur ke NONAKTIF di bawah tingkat kompatibilitas database 150, kesalahan pemotongan memunculkan pesan kesalahan sebelumnya 8152.

Untuk tingkat kompatibilitas database 140 atau lebih rendah, pesan kesalahan 2628 tetap menjadi pesan kesalahan keikutsertaan yang mengharuskan bendera pelacakan 460 diaktifkan, dan konfigurasi cakupan database ini tidak berpengaruh.

= LAST_QUERY_PLAN_STATS { ON | NONAKTIF }

BERLAKU UNTUK: SQL Server (Dimulai dengan SQL Server 2019 (15.x)), Database Azure SQL dan Azure SQL Managed Instance

Memungkinkan Anda mengaktifkan atau menonaktifkan pengumpulan statistik rencana kueri terakhir (setara dengan rencana eksekusi aktual) di sys.dm_exec_query_plan_stats.

PAUSED_RESUMABLE_INDEX_ABORT_DURATION_MINUTES

BERLAKU UNTUK: Azure SQL Database dan Azure SQL Managed Instance

Opsi PAUSED_RESUMABLE_INDEX_ABORT_DURATION_MINUTES menentukan berapa lama (dalam menit) indeks yang dapat dilanjutkan dijeda sebelum dibatalkan secara otomatis oleh mesin.

  • Nilai default diatur ke 1 hari (1440 menit)
  • Durasi minimum diatur ke 1 menit
  • Durasi maksimum adalah 71582 menit
  • Ketika diatur ke 0, operasi yang dijeda tidak akan pernah secara otomatis dibatalkan

Nilai saat ini untuk opsi ini ditampilkan dalam sys.database_scoped_configurations.

= ISOLATE_SECURITY_POLICY_CARDINALITY { ON | OFF}

BERLAKU UNTUK: SQL Server (Dimulai dengan SQL Server 2019 (15.x)), Database Azure SQL dan Azure SQL Managed Instance

Memungkinkan Anda mengontrol apakah predikat Keamanan Tingkat Baris (RLS) memengaruhi kardinalitas rencana eksekusi kueri pengguna secara keseluruhan. Ketika ISOLATE_SECURITY_POLICY_CARDINALITY AKTIF, predikat RLS tidak memengaruhi kardinalitas rencana eksekusi. Misalnya, pertimbangkan tabel yang berisi 1 juta baris dan predikat RLS yang membatasi hasilnya hingga 10 baris untuk pengguna tertentu yang mengeluarkan kueri. Dengan konfigurasi tercakup database ini diatur ke NONAKTIF, perkiraan kardinalitas predikat ini adalah 10. Ketika konfigurasi tercakup database ini AKTIF, pengoptimalan kueri akan memperkirakan 1 juta baris. Disarankan untuk menggunakan nilai default untuk sebagian besar beban kerja.

= DW_COMPATIBILITY_LEVEL { AUTO | 10 | 20 | 9000 }

BERLAKU UNTUK: hanya Azure Synapse Analytics

Mengatur perilaku pemrosesan Transact-SQL dan kueri agar kompatibel dengan versi mesin database yang ditentukan. Setelah diatur, ketika kueri dijalankan pada database tersebut, hanya fitur yang kompatibel yang akan dijalankan. Pada setiap tingkat kompatibilitas, berbagai penyempurnaan pemrosesan kueri didukung. Setiap tingkat menyerap fungsionalitas tingkat sebelumnya. Tingkat kompatibilitas database diatur ke OTOMATIS secara default saat pertama kali dibuat dan ini adalah pengaturan yang direkomendasikan. Tingkat kompatibilitas dipertahankan bahkan setelah jeda/lanjutkan database, operasi pencadangan/pemulihan.

Tingkat Kompatibilitas Komentar
AUTO Default. Nilainya secara otomatis diperbarui oleh mesin Synapse Analytics dan diwakili oleh 0 dalam sys.database_scoped_configurations. AUTO saat ini memetakan ke fungsionalitas Tingkat 20.
10 Menjalankan perilaku pemrosesan T-SQL dan kueri sebelum pengenalan dukungan tingkat kompatibilitas.
20 Tingkat kompatibilitas ke-1 yang mencakup tingkah laku pemrosesan Transact-SQL dan kueri yang terjaga. Prosedur tersimpan sistem sp_describe_undeclared_parameters didukung di bawah tingkat ini.
9000 Tingkat kompatibilitas pratinjau. Fitur pratinjau yang terjaga di bawah tingkat ini dipanggil dalam dokumentasi khusus fitur. Tingkat ini juga mencakup kemampuan tingkat non-9000 tertinggi.

= EXEC_QUERY_STATS_FOR_SCALAR_FUNCTIONS { ON | NONAKTIF }

BERLAKU UNTUK: Azure SQL Database dan Azure SQL Managed Instance

Memungkinkan Anda mengontrol apakah statistik eksekusi untuk fungsi skalar yang ditentukan pengguna (UDF) muncul dalam tampilan sistem sys.dm_exec_function_stats . Untuk beberapa beban kerja intensif yang skalar UDF-berat, mengumpulkan statistik eksekusi fungsi dapat menyebabkan overhead performa yang nyata. Ini dapat dihindari dengan mengatur EXEC_QUERY_STATS_FOR_SCALAR_FUNCTIONS konfigurasi cakupan database ke OFF.

= ASYNC_STATS_UPDATE_WAIT_AT_LOW_PRIORITY { ON | NONAKTIF }

BERLAKU UNTUK: SQL Server (Dimulai dengan Pratinjau SQL Server 2022 (16.x), Database Azure SQL dan Azure SQL Managed Instance

Jika pembaruan statistik asinkron diaktifkan, mengaktifkan konfigurasi ini akan menyebabkan permintaan latar belakang memperbarui statistik menunggu kunci Sch-M pada antrean berprioritas rendah, untuk menghindari pemblokiran sesi lain dalam skenario konkurensi tinggi. Untuk informasi selengkapnya, lihat AUTO_UPDATE_STATISTICS_ASYNC.

= OPTIMIZED_PLAN_FORCING { ON | NONAKTIF }

BERLAKU UNTUK: SQL Server (Dimulai dengan Pratinjau SQL Server 2022 (16.x), Database Azure SQL (Pratinjau) dan Azure SQL Managed Instance (Pratinjau)

Paket yang dioptimalkan yang memaksa mengurangi overhead kompilasi untuk mengulangi kueri paksa. Setelah rencana eksekusi kueri dihasilkan, langkah-langkah kompilasi tertentu disimpan untuk digunakan kembali sebagai skrip pemutaran ulang pengoptimalan. Skrip pemutaran ulang pengoptimalan disimpan sebagai bagian dari XML showplan terkompresi di Penyimpanan Kueri, dalam atribut tersembunyi OptimizationReplay . Pelajari selengkapnya di Paket yang dioptimalkan memaksa dengan Penyimpanan Kueri.

DOP_FEEDBACK = { ON | NONAKTIF }

BERLAKU UNTUK: SQL Server (Dimulai dengan Pratinjau SQL Server 2022 (16.x)

Mengidentifikasi inefisiensi paralelisme untuk kueri berulang, berdasarkan waktu dan waktu tunggu yang berlalu. Jika penggunaan paralelisme dianggap tidak efisien, umpan balik DOP menurunkan DOP untuk eksekusi kueri berikutnya, dari apa pun yang dikonfigurasi DOP, dan memverifikasi apakah itu membantu. Memerlukan Penyimpanan Kueri diaktifkan.

PARAMETER_SENSITIVE_PLAN_OPTIMIZATION = { ON | OFF }

BERLAKU UNTUK: SQL Server (Dimulai dengan Pratinjau SQL Server 2022 (16.x)

Ini membahas skenario di mana satu rencana cache untuk kueri berparameter tidak optimal untuk semua kemungkinan nilai parameter masuk. Ini adalah kasus dengan distribusi data yang tidak seragam.

Izin

ALTER ANY DATABASE SCOPED CONFIGURATION Diperlukan pada database. Izin ini dapat diberikan oleh pengguna dengan CONTROL izin pada database.

Keterangan Umum

Meskipun Anda dapat mengonfigurasi database sekunder untuk memiliki pengaturan konfigurasi terlingkup yang berbeda dari database utamanya, semua database sekunder menggunakan konfigurasi yang sama. Pengaturan yang berbeda tidak dapat dikonfigurasi untuk sekunder individual.

Menjalankan pernyataan ini menghapus cache prosedur dalam database saat ini, yang berarti bahwa semua kueri harus dikombinasikan ulang.

Untuk kueri nama 3 bagian, pengaturan untuk koneksi database saat ini untuk kueri dihormati, selain untuk modul SQL (seperti prosedur, fungsi, dan pemicu) yang dikompilasi dalam konteks database lain dan oleh karena itu menggunakan opsi database tempat mereka berada. Demikian pula, saat memperbarui statistik secara asinkron, pengaturan ASYNC_STATS_UPDATE_WAIT_AT_LOW_PRIORITY untuk database tempat statistik berada dihormati.

Peristiwa ALTER_DATABASE_SCOPED_CONFIGURATION ditambahkan sebagai peristiwa DDL yang dapat digunakan untuk mengaktifkan pemicu DDL, dan merupakan anak dari grup pemicu ALTER_DATABASE_EVENTS .

Pengaturan konfigurasi terlingkup database akan dibawa dengan database, yang berarti bahwa ketika database tertentu dipulihkan atau dilampirkan, pengaturan konfigurasi yang ada tetap ada.

Dimulai dengan SQL Server 2019 (15.x), di Azure SQL Database, dan Azure SQL Managed Instance, beberapa nama opsi telah berubah:

  • DISABLE_INTERLEAVED_EXECUTION_TVF diubah menjadi INTERLEAVED_EXECUTION_TVF
  • DISABLE_BATCH_MODE_MEMORY_GRANT_FEEDBACK diubah menjadi BATCH_MODE_MEMORY_GRANT_FEEDBACK
  • DISABLE_BATCH_MODE_ADAPTIVE_JOINS diubah menjadi BATCH_MODE_ADAPTIVE_JOINS

Batasan dan Pembatasan

MAXDOP

Pengaturan terperinci dapat mengambil alih pengaturan global dan gubernur sumber daya tersebut dapat menutup semua pengaturan MAXDOP lainnya. Logika untuk pengaturan MAXDOP adalah sebagai berikut:

  • Petunjuk kueri mengambil alih sp_configure konfigurasi lingkup database dan . Jika grup sumber daya MAXDOP diatur untuk grup beban kerja:

    • Jika petunjuk kueri diatur ke nol (0), petunjuk tersebut akan ditimpa oleh pengaturan gubernur sumber daya.

    • Jika petunjuk kueri bukan nol (0), petunjuk tersebut dibatasi oleh pengaturan gubernur sumber daya.

  • Konfigurasi tercakup database (kecuali nol) mengambil sp_configure alih pengaturan kecuali ada petunjuk kueri dan dibatasi oleh pengaturan gubernur sumber daya.

  • Pengaturan sp_configure ini ditimpa oleh pengaturan gubernur sumber daya.

QUERY_OPTIMIZER_HOTFIXES

Ketika QUERYTRACEON petunjuk digunakan untuk mengaktifkan Pengoptimal Kueri default SQL Server 7.0 hingga versi SQL Server 2012 (11.x) atau perbaikan Pengoptimal Kueri, itu akan menjadi kondisi OR antara petunjuk kueri dan pengaturan konfigurasi terlingkup database, yang berarti jika diaktifkan, konfigurasi cakupan database berlaku.

Geo DR

Database sekunder yang dapat dibaca (Grup Ketersediaan AlwaysOn, database Azure SQL dan database yang Azure SQL Managed Instance direplikasi secara geografis), gunakan nilai sekunder dengan memeriksa status database. Meskipun kompilasi ulang tidak terjadi pada failover dan secara teknis primer baru memiliki kueri yang menggunakan pengaturan sekunder, idenya adalah bahwa pengaturan antara primer dan sekunder hanya bervariasi ketika beban kerja berbeda dan oleh karena itu kueri yang di-cache menggunakan pengaturan optimal, sedangkan kueri baru memilih pengaturan baru yang sesuai untuk mereka.

DacFx

Karena ALTER DATABASE SCOPED CONFIGURATION adalah fitur baru di Azure SQL Database, Azure SQL Managed Instance dan SQL Server (dimulai dengan SQL Server 2016 (13.x)) yang memengaruhi skema database, ekspor skema (dengan atau tanpa data) tidak dapat diimpor ke versi SQL Server yang lebih lama, seperti SQL Server 2012 (11.x) atau SQL Server 2014 (12.x). Misalnya, ekspor ke DACPAC atau BACPAC dari database SQL Database atau SQL Server 2016 (13.x) yang menggunakan fitur baru ini tidak akan dapat diimpor ke server tingkat bawah.

ELEVATE_ONLINE

Opsi ini hanya berlaku untuk pernyataan DDL yang mendukung WITH (ONLINE = <syntax>). Indeks XML tidak terpengaruh.

ELEVATE_RESUMABLE

Opsi ini hanya berlaku untuk pernyataan DDL yang mendukung WITH (RESUMABLE = <syntax>). Indeks XML tidak terpengaruh.

Metadata

Tampilan sistem sys.database_scoped_configurations (Transact-SQL) menyediakan informasi tentang konfigurasi terlingkup dalam database. Opsi konfigurasi yang dicakup database hanya muncul di sys.database_scoped_configurations karena mereka mengambil alih pengaturan default di seluruh server. Tampilan sistem sys.configurations (Transact-SQL) hanya menampilkan pengaturan di seluruh server.

Contoh

Contoh-contoh ini menunjukkan penggunaan ALTER DATABASE SCOPED CONFIGURATION

J. Beri Izin

Contoh ini memberikan izin yang diperlukan untuk menjalankan ALTER DATABASE SCOPED CONFIGURATION kepada pengguna Joe.

GRANT ALTER ANY DATABASE SCOPED CONFIGURATION to [Joe] ;

B. Mengatur MAXDOP

Contoh ini menetapkan MAXDOP = 1 untuk database utama dan MAXDOP = 4 untuk database sekunder dalam skenario replikasi geografis.

ALTER DATABASE SCOPED CONFIGURATION SET MAXDOP = 1 ;
ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET MAXDOP = 4 ;

Contoh ini menetapkan MAXDOP untuk database sekunder agar sama dengan yang ditetapkan untuk database utamanya dalam skenario replikasi geografis.

ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET MAXDOP = PRIMARY ;

C. Mengatur LEGACY_CARDINALITY_ESTIMATION

Contoh ini mengatur LEGACY_CARDINALITY_ESTIMATION ke AKTIF untuk database sekunder dalam skenario replikasi geografis.

ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET LEGACY_CARDINALITY_ESTIMATION = ON ;

Contoh ini menetapkan LEGACY_CARDINALITY_ESTIMATION untuk database sekunder seperti untuk database utamanya dalam skenario replikasi geografis.

ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET LEGACY_CARDINALITY_ESTIMATION = PRIMARY ;

D. Mengatur PARAMETER_SNIFFING

Contoh ini mengatur PARAMETER_SNIFFING ke NONAKTIF untuk database utama dalam skenario replikasi geografis.

ALTER DATABASE SCOPED CONFIGURATION SET PARAMETER_SNIFFING = OFF ;

Contoh ini mengatur PARAMETER_SNIFFING ke NONAKTIF untuk database sekunder dalam skenario replikasi geografis.

ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET PARAMETER_SNIFFING = OFF ;

Contoh ini menetapkan PARAMETER_SNIFFING untuk database sekunder seperti pada database utama dalam skenario replikasi geografis.

ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET PARAMETER_SNIFFING = PRIMARY ;

E. Mengatur QUERY_OPTIMIZER_HOTFIXES

Atur QUERY_OPTIMIZER_HOTFIXES ke AKTIF untuk database utama dalam skenario replikasi geografis.

ALTER DATABASE SCOPED CONFIGURATION SET QUERY_OPTIMIZER_HOTFIXES = ON ;

F. Hapus Cache Prosedur

Contoh ini menghapus cache prosedur (hanya mungkin untuk database utama).

ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE_CACHE;

G. Atur IDENTITY_CACHE

BERLAKU UNTUK: SQL Server (Dimulai dengan SQL Server 2017 (14.x)), database Azure SQL dan Azure SQL Managed Instance

Contoh ini menonaktifkan cache identitas.

ALTER DATABASE SCOPED CONFIGURATION SET IDENTITY_CACHE = OFF ;

H. Atur OPTIMIZE_FOR_AD_HOC_WORKLOADS

BERLAKU UNTUK: SQL Server (Dimulai dengan SQL Server 2019 (15.x)), database Azure SQL dan Azure SQL Managed Instance

Contoh ini memungkinkan stub paket yang dikompilasi disimpan dalam cache saat batch dikompilasi untuk pertama kalinya.

ALTER DATABASE SCOPED CONFIGURATION SET OPTIMIZE_FOR_AD_HOC_WORKLOADS = ON;

i. Mengatur ELEVATE_ONLINE

BERLAKU UNTUK: SQL Server (Dimulai dengan SQL Server 2019 (15.x)), database Azure SQL dan Azure SQL Managed Instance

Contoh ini mengatur ELEVATE_ONLINE ke FAIL_UNSUPPORTED.

ALTER DATABASE SCOPED CONFIGURATION SET ELEVATE_ONLINE = FAIL_UNSUPPORTED ;

j. Atur ELEVATE_RESUMABLE

BERLAKU UNTUK: SQL Server (Dimulai dengan SQL Server 2019 (15.x)), database Azure SQL dan Azure SQL Managed Instance

Contoh ini mengatur ELEVATE_RESUMABLE ke WHEN_SUPPORTED.

ALTER DATABASE SCOPED CONFIGURATION SET ELEVATE_RESUMABLE = WHEN_SUPPORTED ;

K. Menghapus rencana kueri dari cache paket

BERLAKU UNTUK: SQL Server (Dimulai dengan SQL Server 2017 (14.x)), database Azure SQL dan Azure SQL Managed Instance

Contoh ini menghapus rencana tertentu dari cache prosedur

ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE_CACHE 0x06000500F443610F003B7CD12C02000001000000000000000000000000000000000000000000000000000000;

L. Mengatur durasi jeda

BERLAKU UNTUK: Azure SQL Database dan Azure SQL Managed Instance

Contoh ini menetapkan durasi jeda indeks yang dapat dilanjutkan menjadi 60 menit.

ALTER DATABASE SCOPED CONFIGURATION
SET PAUSED_RESUMABLE_INDEX_ABORT_DURATION_MINUTES = 60

Sumber Daya Tambahan

Sumber Daya MAXDOP

Sumber Daya LEGACY_CARDINALITY_ESTIMATION

Sumber Daya PARAMETER_SNIFFING

Sumber Daya QUERY_OPTIMIZER_HOTFIXES

Sumber Daya ELEVATE_ONLINE

Panduan untuk Operasi Indeks Online

Sumber Daya ELEVATE_RESUMABLE

Panduan untuk Operasi Indeks Online

Informasi selengkapnya