Aracılığıyla paylaş


SQL Server sonuçları, sorgu kılavuzlara nasıl planlanır

SQL Server eşleşme türü OBJECT saklı yordam içinde görünen sorgulara kılavuzları planlamak tetikleyici veya işlev (modül) adlı @ module_or_batch bağımsız değişkenisp_create_plan_guide saklı yordamını.Bir plan kılavuzu modülü, varsa, planı kılavuz için belirtilen sorgu eşleşiyor.

Toplu işlemi içinde gönderilen sorguları SQL Server bunlara kılavuzları, eşleşen ilk sorguyu SQL tabanlı planı kılavuza eşleştirmeye çalışırken, sonraki sorgu parameterize çalışılırken tarafından ve sonra yeniden denemeden planlayın. Aşağıdaki resimde, bu işlem için genel bir bakış sağlar.

How SQL Server matches plan guides to queries

  1. The SQL Server sorgu iyileştiricisi recognizes an executed toplu iş as a request to compile each deyim within the toplu iş.

  2. Toplu işlem içinde belirli bir deyim için SQL Server SQL tabanlı ifadesine eşleştirmeye çalışır plan kılavuzu, @ module_or_batch bağımsız değişken herhangi bir sabit hazır bilgi değeri; dahil gelen toplu metnin uyan ve, @ stmt bağımsız değişkeni de toplu iş raporuna eşleşir.Bu tür bir plan kılavuzu bulunmaktadır ve bu eşleşmeyi başarılı, deyim metin planı kılavuzda belirtilen sorgu ipuçlarının bulunması için değiştirilir.deyim buna göre derlendi.

  3. Bir plan kılavuzu için adım 2 ' deyiminde eşleşen SQL Server Zorlanmış parameterization kullanarak deyim parameterize dener. Bu adımda, aşağıdaki nedenlerden biriyle parameterization başarısız olabilir:

    1. deyim, zaten parametrelenmiştir veya yerel değişkenler içerir.

    2. küme seçenek PARAMETERIZATION SIMPLE veritabanı (varsayılan ayar) uygulanan ve Tür deyim için geçerlidir ve sorgu PARAMETERIZATION ZORLANMıŞ ipucu belirtir TEMPLATE hiçbir plan kılavuzu yoktur.

    3. A plan kılavuzu türündeki ifade için geçerlidir ve sorgu ipucu PARAMETERIZATION SIMPLE belirtir TEMPLATE bulunmaktadır.

    Zorlanmış parameterization, başarılı olduğunda SQL Server parametreli hale getirilmiş biçimi eşleştirmeye çalışır deyim parametreli, oluşturulmuş olan SQL türü bir plan kılavuza deyim. Bu tür bir plan kılavuzu bulunmaktadır ve bu eşleşmeyi başarılı, deyim metin planı kılavuzda belirtilen sorgu ipuçlarının bulunması için değiştirilir.deyim buna göre derlendi.Bu tür bir plan kılavuzu eşleşti, parametreleştirilmiş deyim ilk derlenmiş bir plan Kılavuzu tarafından değiştirilen.

  4. 3. Adımda parameterization başarısız olursa SQL Server deyimin yeniden parameterize dener. Bu saat, SQL Server Basit parameterization varsayılan davranış uygulanır. Sonuçlanan sorgu doğrudan derlendi.Plan kılavuzları için basit parameterization sonuçlarını eşleştirilirler.

    Not

    RECOMPILE sorgu ipucu Zorlanmış veya basit parameterization ile parametreli sorgular için plan kılavuzları Tür SQL göz ardı edilir.Ayrıca, uyarısı verilir.