sys.database_query_store_options (T-SQL)

Berlaku untuk: SQL Server 2016 (13.x) dan yang lebih baru Azure SQL DatabaseAzure SQL Managed InstanceAzure 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
4 = READ_CAPTURE_SECONDARY
desired_state_desc nvarchar(60) Deskripsi tekstual mode operasi yang diinginkan dari Penyimpanan Kueri:
TIDAK AKTIF
READ_ONLY
BACA_TULIS
READ_CAPTURE_SECONDARY
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
4 = READ_CAPTURE_SECONDARY
actual_state_desc nvarchar(60) Deskripsi tekstual mode operasi aktual Penyimpanan Kueri.
TIDAK AKTIF
READ_ONLY
BACA_TULIS
KESALAHAN
READ_CAPTURE_SECONDARY

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 meskipun 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 prosedur tersimpan sp_query_store_consistency_check 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 menjalankan ALTER 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 grup ketersediaan dan replikasi geografis Azure SQL Database). Nilai ini dapat diamati secara efektif hanya pada replika sekunder yang dapat dibaca

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

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 hingga item dalam memori disimpan pada 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 bahwa Penyimpanan Kueri tidak dapat tumbuh lebih jauh lagi.


Untuk mengalihkan mode operasi Penyimpanan Kueri kembali ke baca-tulis, lihat Memverifikasi Penyimpanan Kueri mengumpulkan Data Kueri Secara Berkelanjutan dari Praktik Terbaik dengan Penyimpanan Kueri.
current_storage_size_mb bigint Ukuran Penyimpanan Kueri pada disk dalam megabyte.
flush_interval_seconds bigint Periode pembilasan reguler data Penyimpanan Kueri 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 tersimpan. 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 = NONE - berhenti mengambil 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 kehilangan 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)

NONE

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 = NONAKTIF - pembersihan berbasis ukuran tidak akan diaktifkan secara otomatis.

1 = AUTO - pembersihan berbasis ukuran akan diaktifkan secara otomatis ketika ukuran pada disk mencapai 90 persen max_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 persen max_storage_size_mb tercapai.
size_based_cleanup_mode_desc nvarchar(60) Deskripsi tekstual mode pembersihan berbasis ukuran aktual Penyimpanan Kueri:

TIDAK AKTIF
AUTO (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.

Izin

Memerlukan VIEW DATABASE STATE izin.

Keterangan

Nilai actual_state_desc READ_CAPTURE_SECONDARY adalah status yang diharapkan saat Penyimpanan Kueri untuk replika sekunder diaktifkan. Untuk informasi selengkapnya, lihat Penyimpanan Kueri untuk replika sekunder.

Langkah berikutnya