sys.database_query_store_options (SQL Bertransaksi)

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

Mengembalikan opsi Penyimpanan Kueri untuk database ini.

Berlaku untuk: SQL Server (SQL Server 2016 (13.x) dan yang lebih baru), SQL Database.

Nama kolom Jenis data Deskripsi
desired_state smallint Menunjukkan mode operasi yang diinginkan dari Penyimpanan Kueri, secara eksplisit diatur oleh pengguna.
0 = NONAKTIF
1 = READ_ONLY
2 = READ_WRITE
desired_state_desc nvarchar(60) Deskripsi tekstual mode operasi yang diinginkan dari Penyimpanan Kueri:
TIDAK AKTIF
READ_ONLY
READ_WRITE
actual_state smallint Menunjukkan mode operasi Penyimpanan Kueri. Selain daftar status yang diinginkan yang diperlukan oleh pengguna, status aktual dapat menjadi status kesalahan.
0 = NONAKTIF
1 = READ_ONLY
2 = READ_WRITE
3 = KESALAHAN
actual_state_desc nvarchar(60) Deskripsi tekstual mode operasi aktual Penyimpanan Kueri.
TIDAK AKTIF
READ_ONLY
READ_WRITE
KESALAHAN

Ada situasi ketika status aktual berbeda dari status yang diinginkan:
- Jika database diatur ke mode baca-saja atau jika ukuran Penyimpanan Kueri melebihi kuota yang dikonfigurasi, Penyimpanan Kueri dapat beroperasi dalam mode baca-saja bahkan jika baca-tulis ditentukan oleh pengguna.
- Dalam skenario ekstrem Query Store dapat memasukkan status ERROR karena kesalahan internal. Dimulai dengan SQL Server 2017 (14.x), jika ini terjadi, Penyimpanan Kueri dapat dipulihkan dengan menjalankan sp_query_store_consistency_check prosedur tersimpan dalam database yang terpengaruh. Jika menjalankan sp_query_store_consistency_check tidak berfungsi, atau jika Anda menggunakan SQL Server 2016 (13.x), Anda harus menghapus data dengan menjalankanALTER DATABASE [YourDatabaseName] SET QUERY_STORE CLEAR ALL;
readonly_reason int Saat desired_state_desc READ_WRITE dan actual_state_desc READ_ONLY, readonly_reason mengembalikan peta bit untuk menunjukkan mengapa Penyimpanan Kueri dalam mode baca-saja.

1 - database dalam mode baca-saja

2 - database dalam mode pengguna tunggal

4 - database dalam mode darurat

8 - database adalah replika sekunder (berlaku untuk Always On dan Azure SQL Database geo-replikasi). Nilai ini dapat diamati secara efektif hanya pada replika sekunder yang dapat dibaca

65536 - Penyimpanan Kueri telah mencapai batas ukuran yang ditetapkan oleh MAX_STORAGE_SIZE_MB opsi . Untuk informasi selengkapnya tentang opsi ini, lihat OPSI UBAH KUMPULAN DATABASE (SQL Transact).

131072 - Jumlah pernyataan yang berbeda di Penyimpanan Kueri telah mencapai batas memori internal. Pertimbangkan untuk menghapus kueri yang tidak Anda perlukan atau tingkatkan ke tingkat layanan yang lebih tinggi untuk mengaktifkan transfer Penyimpanan Kueri ke mode baca-tulis.


262144 - Ukuran item dalam memori yang menunggu untuk dipertahankan pada disk telah mencapai batas memori internal. Penyimpanan Kueri akan berada dalam mode baca-saja untuk sementara sampai item dalam memori tetap ada di disk.


524288 - Database telah mencapai batas ukuran disk. Penyimpanan Kueri adalah bagian dari database pengguna, jadi jika tidak ada lagi ruang yang tersedia untuk database, itu berarti Penyimpanan Kueri tidak dapat berkembang lebih jauh lagi.


Untuk mengalihkan mode operasi Penyimpanan Kueri kembali ke baca-tulis, lihat Memverifikasi Bahwa Penyimpanan Kueri Mengumpulkan Data Kueri Terus-menerus dari Praktik Terbaik dengan Penyimpanan Kueri.
current_storage_size_mb bigint Ukuran Penyimpanan Kueri pada disk dalam megabyte.
flush_interval_seconds bigint Periode untuk pembersihan data Penyimpanan Kueri secara teratur ke disk dalam hitungan detik. Nilai defaultnya adalah 900 (15 menit).

Ubah dengan menggunakan ALTER DATABASE <database> SET QUERY_STORE (DATA_FLUSH_INTERVAL_SECONDS = <interval>) pernyataan .
interval_length_minutes bigint Interval agregasi statistik dalam hitungan menit. Nilai arbitrer tidak diperbolehkan. Gunakan salah satu hal berikut: 1, 5, 10, 15, 30, 60, dan 1440 menit. Nilai defaultnya adalah 60 menit.
max_storage_size_mb bigint Ukuran disk maksimum untuk Penyimpanan Kueri dalam megabyte (MB). Nilai defaultnya adalah 100 MB hingga SQL Server 2017 (14,x), dan 1 GB dimulai dengan SQL Server 2019 (15,x) .
Untuk edisi SQL Database Premium, defaultnya adalah 1 GB dan untuk edisi SQL Database Basic, defaultnya adalah 10 MB.

Ubah dengan menggunakan ALTER DATABASE <database> SET QUERY_STORE (MAX_STORAGE_SIZE_MB = <size>) pernyataan .
stale_query_threshold_days bigint Jumlah hari informasi untuk kueri disimpan di Penyimpanan Kueri. Nilai defaultnya adalah 30. Atur ke 0 untuk menonaktifkan kebijakan penyimpanan.
Untuk edisi SQL Database Basic, defaultnya adalah 7 hari.

Ubah dengan menggunakan ALTER DATABASE <database> SET QUERY_STORE ( CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = <value> ) ) pernyataan .
max_plans_per_query bigint Membatasi jumlah maksimum paket yang disimpan. Nilai defaultnya adalah 200. Jika nilai maksimum tercapai, Penyimpanan Kueri berhenti menangkap paket baru untuk kueri tersebut. Pengaturan ke 0 menghapus batasan sehubungan dengan jumlah paket yang ditangkap.

Ubah dengan menggunakan ALTER DATABASE<database> SET QUERY_STORE (MAX_PLANS_PER_QUERY = <n>) pernyataan .
query_capture_mode smallint Mode pengambilan kueri yang saat ini aktif:

1 = SEMUA - semua kueri diambil. Ini adalah nilai konfigurasi default untuk SQL Server (SQL Server 2016 (13.x) dan yang lebih baru).

2 = AUTO - menangkap kueri yang relevan berdasarkan jumlah eksekusi dan konsumsi sumber daya. Ini adalah nilai konfigurasi default untuk SQL Database.

3 = TIDAK ADA - berhenti menangkap kueri baru. Penyimpanan Kueri akan terus mengumpulkan statistik kompilasi dan runtime untuk kueri yang sudah diambil. Gunakan konfigurasi ini dengan hati-hati karena Anda mungkin melewatkan pengambilan kueri penting.

4 = CUSTOM - Memungkinkan kontrol tambahan atas kebijakan pengambilan kueri menggunakan opsi QUERY_CAPTURE_POLICY.
Berlaku untuk: SQL Server 2019 (15.x) dan yang lebih baru.
query_capture_mode_desc nvarchar(60) Deskripsi tekstual mode pengambilan aktual Penyimpanan Kueri:

ALL (default untuk SQL Server 2016 (13.x))

AUTO (default untuk SQL Database)

TIDAK ADA

KUSTOM
capture_policy_execution_count int Opsi kebijakan KUSTOM Mode Pengambilan Kueri. Menentukan berapa kali kueri dijalankan selama periode evaluasi. Defaultnya adalah 30.
Berlaku untuk: SQL Server 2019 (15.x) dan yang lebih baru.
capture_policy_total_compile_cpu_time_ms bigint Opsi kebijakan KUSTOM Mode Pengambilan Kueri. Menentukan total waktu CPU kompilasi yang berlalu yang digunakan oleh kueri selama periode evaluasi. Defaultnya adalah 1000.
Berlaku untuk: SQL Server 2019 (15.x) dan yang lebih baru.
capture_policy_total_execution_cpu_time_ms bigint Opsi kebijakan KUSTOM Mode Pengambilan Kueri. Menentukan total waktu CPU eksekusi yang berlalu yang digunakan oleh kueri selama periode evaluasi. Nilai defaultnya adalah 100.
Berlaku untuk: SQL Server 2019 (15.x) dan yang lebih baru.
capture_policy_stale_threshold_hours int Opsi kebijakan KUSTOM Mode Pengambilan Kueri. Menentukan periode interval evaluasi untuk menentukan apakah kueri harus diambil. Defaultnya adalah 24 jam.
Berlaku untuk: SQL Server 2019 (15.x) dan yang lebih baru.
size_based_cleanup_mode smallint Mengontrol apakah pembersihan akan diaktifkan secara otomatis ketika jumlah total data mendekati ukuran maksimum:

0 = OFF - pembersihan berbasis ukuran tidak akan diaktifkan secara otomatis.

1 = AUTO - pembersihan berbasis ukuran akan diaktifkan secara otomatis ketika ukuran pada disk mencapai 90 persenmax_storage_size_mb. Ini adalah nilai konfigurasi default.

Pembersihan berbasis ukuran menghapus kueri yang paling murah dan terlama terlebih dahulu. Ini berhenti ketika sekitar 80 persenmax_storage_size_mb tercapai.
size_based_cleanup_mode_desc nvarchar(60) Deskripsi tekstual mode pembersihan berbasis ukuran aktual penyimpanan kueri:

TIDAK AKTIF
OTOMATIS (default)
wait_stats_capture_mode smallint Mengontrol apakah Penyimpanan Kueri melakukan pengambilan statistik tunggu:

0 = NONAKTIF
1 = AKTIF
Berlaku untuk: SQL Server 2017 (14.x) dan yang lebih baru.
wait_stats_capture_mode_desc nvarchar(60) Deskripsi tekstual dari mode pengambilan statistik tunggu aktual:

TIDAK AKTIF
AKTIF (default)
Berlaku untuk: SQL Server 2017 (14.x) dan yang lebih baru.
actual_state_additional_info nvarchar(8000) Saat ini tidak digunakan. Dapat diimplementasikan di masa mendatang.

Izin

VIEW DATABASE STATE Memerlukan izin.

Lihat juga

sys.query_context_settings (SQL Bertransaksi)
sys.query_store_plan (SQL Bertransaksi)
sys.query_store_query (SQL Bertransaksi)
sys.query_store_query_text (SQL Bertransaksi)
sys.query_store_runtime_stats (SQL Bertransaksi)
sys.query_store_wait_stats (SQL Bertransaksi)
sys.query_store_runtime_stats_interval (SQL Bertransaksi)
Memantau Performa Dengan Menggunakan Penyimpanan Kueri
Tampilan Katalog (Transact-SQL)
sys.fn_stmt_sql_handle_from_sql_stmt (SQL Bertransaksi)
Prosedur Tersimpan Penyimpanan Kueri (SQL Transact)