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
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Plan kılavuzları, sorgu ipuçları veya sabit bir sorgu planı ekleyerek sorgu iyileştirmeyi etkiler. Plan kılavuzunda, en iyi duruma getirmek istediğiniz deyimi veya kullanmak istediğiniz sorgu ipuçlarını içeren bir OPTION yan tümcesini belirtirsiniz. veya sorguyu iyileştirmek için kullanmak istediğiniz belirli bir sorgu planı. Sorgu yürütüldüğünde, sorgu iyileştiricisi Transact-SQL deyimini plan rehberi ile eşleştirir ve çalışma zamanında OPTION ifadesini sorguya ekler veya belirtilen sorgu planını kullanır.
Plan Kılavuzu, bir sorguya sabit bir sorgu planı ve/veya sorgu ipuçları uygular.
Sınırlamalar ve kısıtlamalar
sp_create_plan_guide bağımsız değişkenleri gösterilen sırayla verilmelidir. sp_create_plan_guideparametreleri için değerler sağladığınızda, tüm parametre adları açıkça belirtilmelidir veya hiç belirtilmemiş olmalıdır. Örneğin, @name = belirtilirse, @stmt = , @type =vb. de belirtilmelidir. Benzer şekilde, @name = atlanırsa ve yalnızca parametre değeri sağlanırsa, kalan parametre adları da atlanmalıdır ve yalnızca değerleri sağlanmalıdır. Bağımsız değişken adları, yalnızca söz dizimini anlamanıza yardımcı olmak amacıyla açıklayıcı olarak kullanılır. SQL Server, belirtilen parametre adının, adın kullanıldığı konumdaki parametrenin adıyla eşleştiğinden emin değildir.
Aynı sorgu ve toplu iş veya modül için birden fazla NESNE veya SQL planı kılavuzu oluşturabilirsiniz. Ancak, herhangi bir zamanda yalnızca bir plan kılavuzu etkinleştirilebilir.
WITH ENCRYPTION yan tümcesini belirten veya geçici olan bir saklı yordama, işleve veya DML tetikleyicisine başvuran bir @module_or_batch değeri için OBJECT türündeki plan kılavuzları oluşturulamaz.
Bir plan kılavuzunun, etkin veya devre dışı olmasına bakılmaksızın, referans verdiği bir işlevi, saklı yordamı veya DML tetikleyicisini bırakmaya veya değiştirmeye çalışmak hataya neden olur. Plan kılavuzu tarafından başvurulan ve tetikleyici tanımlı bir tabloyu bırakmaya çalışmak da hataya neden olur.
İzinler
OBJECT türünde bir plan kılavuzu oluşturmak için başvuruda bulunan nesne üzerinde ALTER iznine sahip olmanız gerekir. SQL veya TEMPLATE türünde bir plan kılavuzu oluşturmak için geçerli veritabanında ALTER iznine sahip olmanız gerekir.
SSMS kullanarak plan kılavuzu oluşturma
Artı işaretine tıklayarak plan kılavuzu oluşturmak istediğiniz veritabanını genişletin ve ardından artı işaretine tıklayarak Programlanabilirlik klasörünü genişletin.
Plan Kılavuzları klasörüne sağ tıklayın ve Yeni Plan Kılavuzu... seçin.

Yeni Plan Kılavuzu iletişim kutusundaki Adı kutusuna plan kılavuzunun adını girin.
Deyimi kutusuna, plan kılavuzunun uygulanacağı Transact-SQL deyimini girin.
Kapsam türü listesinde, Transact-SQL deyiminin görüntülendiği varlık türünü seçin. Bu, Transact-SQL deyimini plan kılavuzuyla eşleştirme bağlamını belirtir. Olası değerler OBJECT, SQLve TEMPLATE'tir.
Parti Kapsamı kutusuna, Transact-SQL ifadesinin göründüğü toplu iş metnini girin. Toplu işlem metni bir
USEveritabanı ifadesi içeremez. Kapsamı toplu kutusu yalnızca kapsam türü olarak SQL seçildiğinde kullanılabilir. SQL kapsam türü olduğunda kapsam grup kutusuna hiçbir şey girilmezse, grup metninin değeri İfadesi kutusundaki değerle aynı olarak ayarlanır.Kapsamı şema adı listesinde, nesnenin bulunduğu şemanın adını girin. Kapsamı şema adı kutusu yalnızca kapsam türü olarak Nesne seçildiğinde kullanılabilir.
Kapsam nesnesi adı kutusuna Transact-SQL saklı yordamın, kullanıcı tanımlı skaler işlevin, çok ifadeli tablo değerli fonksiyonun veya Transact-SQL deyiminin geçtiği DML tetikleyicisinin adını girin. Kapsamı nesne adı kutusu yalnızca kapsam türü olarak Nesne seçildiğinde kullanılabilir.
Parametreler kutusuna, Transact-SQL deyimine eklenmiş tüm parametrelerin parametre adını ve veri türünü girin.
Parametreler yalnızca aşağıdakilerden biri doğru olduğunda uygulanır:
Kapsam türü SQL veya TEMPLATE. Eğer ŞABLONUise, parametreler NULL olmamalıdır.
Transact-SQL deyimi, sp_executesql kullanılarak gönderilir ve parametresi için bir değer belirtilir veya SQL Server parametreleştirildikten sonra dahili olarak bir deyim gönderir.
İpuçları kutusuna, Transact-SQL deyimine uygulanacak sorgu ipuçlarını veya sorgu planını girin. Bir veya daha fazla sorgu ipucu belirtmek için geçerli bir OPTION yan tümcesi girin.
Tamamtıklayın.
T-SQL kullanarak plan kılavuzu oluşturma
Nesne Gezgini'nde, bir Veritabanı Motoru örneğine bağlanın.
Standart çubuğunda Yeni Sorguöğesine tıklayın.
Aşağıdaki örneği kopyalayıp sorgu penceresine yapıştırın ve Yürüt'e tıklayın.
-- creates a plan guide named Guide1 based on a SQL statement EXEC sp_create_plan_guide @name = N'Guide1', @stmt = N'SELECT TOP 1 * FROM Sales.SalesOrderHeader ORDER BY OrderDate DESC', @type = N'SQL', @module_or_batch = NULL, @params = NULL, @hints = N'OPTION (MAXDOP 1)';
Daha fazla bilgi için bkz. sp_create_plan_guide (Transact-SQL).