Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir: SQL Server 2016 (13.x) ve sonraki sürümler
Azure SQL Database
Azure SQL Managed Instance
SQL database in Microsoft Fabric
Sorgu Deposu'ndaki belirli bir sorgu için belirli bir planı zorlamayı etkinleştirir.
Bir plan belirli bir sorgu için zorlandığında, SQL Server sorguyla her karşılaştığında, planı Sorgu İyileştiricisi'nde zorlamaya çalışır. Plan zorlama başarısız olursa Genişletilmiş Olay tetiklenir ve Sorgu İyileştirici'ye normal şekilde iyileştirmesi istenir.
Transact-SQL söz dizimi kuralları
Sözdizimi
sp_query_store_force_plan
[ @query_id = ] query_id ,
[ @plan_id = ] plan_id ,
[ @disable_optimized_plan_forcing = ] disable_optimized_plan_forcing ,
[ @replica_group_id = ] 'replica_group_id'
[ ; ]
Bağımsız değişken
Önemli
Genişletilmiş saklı yordamlar için bağımsız değişkenler, Sözdizimi bölümünde açıklandığı gibi belirli bir sırada girilmelidir. Parametreler sıra dışı girilirse bir hata iletisi oluşur.
[ @query_id = ] query_id
Sorgunun kimliği. @query_idbigintvarsayılan değildir.
[ @plan_id = ] plan_id
Zorlanacak sorgu planının kimliği. @plan_idbigint, varsayılan değer yoktur.
[ @disable_optimized_plan_forcing = ] disable_optimized_plan_forcing
İyileştirilmiş plan zorlamanın devre dışı bırakılıp bırakılmayacağını gösterir.
@disable_optimized_plan_forcing, varsayılan olarak olan 0.
[ @replica_group_id = ] 'replica_group_id'
Okunabilir ikincil öğeler için Sorgu Deposu etkinleştirildiğinde ikincil çoğaltmada planları zorlayabilirsiniz. birincil çoğaltmada sp_query_store_force_plan ve sp_query_store_unforce_plan yürütür.
@replica_group_id bağımsız değişkeninin kullanılması varsayılan olarak komutun yürütüldüğü yerel çoğaltmadır, ancak sys.query_store_plan_forcing_locations sistem kataloğu görünümüne başvuran bir replica_group_id belirtebilirsiniz.
Dönüş kodu değerleri
0 (başarı) veya 1 (başarısızlık).
Açıklamalar
Bu özellik tarafından zorlanan sonuçta elde edilen yürütme planı, zorlanan plana benzer veya aynıdır. Sonuçta elde edilen plan, sys.sp_query_store_force_plantarafından belirtilen planla aynı olmadığından, planların performansı değişebilir. Nadir durumlarda performans farkı önemli ve negatif olabilir; bu durumda yöneticinin zorunlu planı kaldırması gerekir.
sys.query_store_plan_forcing_locationsile ikincil çoğaltmalardaki zorunlu planları gözden geçirin.
İzinler
ALTER Veritabanında izin gerektirir.
Örnekler
Aşağıdaki örnek, Sorgu Deposu'ndaki sorgular hakkında bilgi döndürür.
SELECT txt.query_text_id,
txt.query_sql_text,
pl.plan_id,
qry.*
FROM sys.query_store_plan AS pl
INNER JOIN sys.query_store_query AS qry
ON pl.query_id = qry.query_id
INNER JOIN sys.query_store_query_text AS txt
ON qry.query_text_id = txt.query_text_id;
Zorlamak istediğiniz query_id ve plan_id belirledikten sonra, sorguyu plan kullanmaya zorlamak için aşağıdaki örneği kullanın.
EXECUTE sp_query_store_force_plan
@query_id = 3,
@plan_id = 3;
Okunabilir ikincil öğeler için Sorgu Deposu'nı almak için sys.query_store_replicas ile birleştirilmiş sys.query_store_plan_forcing_locationskullanın.
SELECT query_plan
FROM sys.query_store_plan AS qsp
INNER JOIN sys.query_store_plan_forcing_locations AS pfl
ON pfl.query_id = qsp.query_id
INNER JOIN sys.query_store_replicas AS qsr
ON qsr.replica_group_id = qsp.replica_group_id
WHERE qsr.replica_name = 'yourSecondaryReplicaName';
İlgili içerik
- sys.query_store_plan_forcing_locations (Transact-SQL)
- sys.query_store_replicas (Transact-SQL)
- sp_query_store_remove_plan (Transact-SQL)
- sp_query_store_remove_query (Transact-SQL)
- sp_query_store_unforce_plan (Transact-SQL)
- Sorgu Deposu katalog görünümlerini (Transact-SQL)
- Sorgu Deposu kullanarak performansı izleme
- sp_query_store_reset_exec_stats (Transact-SQL)
- sp_query_store_flush_db (Transact-SQL)
- Sorgu Deposu ile En İyi Uygulama