Giriş
Genellikle izleme bayrakları, başlangıç sırasında veya kullanıcı oturumunda etkinleştirilir. Ancak, bu varolan bir veritabanı uygulamasında bazı sorguların beklenmeyen bir etkisi olabilir. Örneğin, bir uygulama veya birden çok sorgu içeren iş yükünü düşünün ve bu sorguların bazı ilgili bir düzeltme denetleyen bir izleme bayrağı'nı etkinleştirerek geliştirilmiş bir verimsiz bir sorgu yürütme planı kullanın. Ancak, aynı izleme bayrağı uygulandığında diğer sorgular daha iyi bir yürütme planı karşılaşabilirsiniz. Bu örnekte derlenen tüm sorguları yürütme planı seçimi etkiler veya oturumun zaman karşılık gelen izin ver izleme bayrağı etkin olmasıdır. Sorgu ve veri bağlı olarak, sorgu iyileştiricisi tarafından kullanılan modelleri değiştirme hem artırmayı ve belirli bir sorgu için yürütme planı verimlilik ve derleme süresi.
İzleme bayrağı sorgu yürütme planı herhangi bir istenmeyen şekilde etkiler, ancak diğer sorgu yürütme planı artırır, belirli bir sorgu için bir izleme bayrağı etkinleştirmek isteyebilirsiniz. Bir toplu (DBCC TRACEON komutunu kullanarak) sağ hedef sorgu önce izleme bayrağı'nı etkinleştirme ve sonra sorguyu izleme bayrağı (DBCC TRACEOFF komutunu kullanarak) hakkı devre dışı bırakma yapabilirsiniz. Ancak, bu her zaman varolan uygulamalar için Transact-SQL toplu metni kontrol etmek mümkün olmayabilir. Varolan bir iş yükünü zayıf sorgu performans deneyimi ve toplu metni değiştirmeden Sorgu için kullanılabilir plan etkileyen değişiklik uygulamak istediğiniz. Belirli bir sorgu için bir izleme bayrağı'nı etkinleştirmek için bir sorgu düzeyi seçeneğini kullanarak bunu yapabilirsiniz.
Microsoft SQL Server 2005 Service Pack 2 (SP2) ve Microsoft SQL Server 2008 sorgu düzeyi seçeneği ile başlayan "QUERYTRACEON" kullanılabilir. Bu seçenek, yalnızca tek sorgu derlenirken planı etkileyen bir izleme bayrağı etkinleştirmenizi sağlar. Diğer sorgu düzeyi seçenekleri gibi herhangi bir oturum ile çalıştırılan bir sorgu metni eşleştirmek için plan kılavuzları ile birlikte kullanın ve bu sorgu derlendiğinde planı etkileyen bir izleme bayrağı otomatik olarak uygulanır.
Daha fazla bilgi
Sözdizimi
<querytraceon_hint> ::=
{ QUERYTRACEON trace_flag_number }
Bağımsız değişkenlerQUERYTRACEON trace_flag_number
Bu sorgu derleme sırasında etkin plan etkileyen izleme bayrağı sayıyı belirtir. Aşağıdaki izleme bayrağı numaralarını desteklenir:
|İzleme bayrağı||Microsoft Bilgi Bankası makalesi||Kullanılabilir|
|4199||974006||SQL Server 2005 Service Pack 3 için toplu güncelleştirme 6;|
SQL Server 2008 için toplu güncelleştirme 7;
SQL Server 2008 Service Pack 1 için toplu güncelleştirme 7;
SQL Server 2008 R2 ve sonraki sürümleri.
|Tüm izleme bayrakları 4199 tarafından kapsanan||974006||SQL Server 2005 Service Pack 3 için toplu güncelleştirme 6;|
SQL Server 2008 için toplu güncelleştirme 7;
SQL Server 2008 Service Pack 1 için toplu güncelleştirme 7;
SQL Server 2008 R2 ve sonraki sürümleri.
|2335||2413549||SQL Server 2005 ve sonraki sürümleri.|
|2340||2009160||SQL Server 2005 ve sonraki sürümleri.|
|2389, 2390||Hiçbiri||SQL Server 2005 ve sonraki sürümleri. Bakın Lütfen ortamlar için SQL Server 2005'te bilinen bir sorun 929278.|
|4136||980653||SQL Server 2005 Service Pack 3 için Toplu Güncelleştirme 9;|
SQL Server 2008 Service Pack 1 için toplu güncelleştirme 7;
SQL Server 2008 R2 ve sonraki sürümler için toplu güncelleştirme 2.
|4137||2658214||SQL Server 2008 Service Pack 2 için toplu güncelleştirme 8;|
SQL Server 2008 Service Pack 3 için toplu güncelleştirme 7;
SQL Server 2008 R2 Service Pack 1 için toplu güncelleştirme 5;
SQL Server 2012 ve sonraki sürümler için toplu güncelleştirme 1.
|4138||2667211||SQL Server 2008 R2 için toplu güncelleştirme 13;|
SQL Server 2008 R2 Service Pack 1 için toplu güncelleştirme 7;
SQL Server 2008 R2 Service Pack 2 için toplu güncelleştirme 1;
SQL Server 2012 ve sonraki sürümler için toplu güncelleştirme 2...
Microsoft SQL Server 2014'de aşağıdaki plan etkileyen izleme bayrakları kullanılabilir:
|İzleme bayrağı||Açıklama|
|9481||SQL Server 2014 varsayılan veritabanı uyumluluk düzeyi 120 ile çalışırken kullanın. İzleme bayrağı 9481 Sorgu iyileştirici sorgu planı oluştururken önem estimator 70 (SQL Server 2012 sürümü) sürümünü kullanmaya zorlar.|
|2312||SQL Server 2014 olan SQL Server 2012 için uyumluluk düzeyi veritabanı uyumluluk düzeyi 110, çalışırken kullanın. İzleme bayrağı 2312 Sorgu iyileştirici sorgu planı oluştururken önem estimator 120 (SQL Server 2014 sürüm) sürümünü kullanmaya zorlar.|
AçıklamalarTabloda listelenen izleme bayrakları dışında izleme bayraklarını QUERYTRACEON seçeneği desteklenmiyor. Bir desteklenmeyen bir izleme bayrağı numarası kullanılıyorsa, ancak, bu seçenek herhangi bir uyarı veya hata döndürmez. Belirtilen izleme bayrağı, bir sorgu yürütme planı etkileyen değilse, seçenek sessizce gözardı edilecektir.
QUERYTRACEON trace_flag_number farklı bir izleme bayrağı sayılarla yineleniyorsa, birden fazla izleme bayrağı seçenek yan tümcesinde belirtilebilir.
QUERYTRACEON seçeneği ile bir sorgu yürütme sysadmin sabit sunucu rolü üyeliği gerektirir.
Plan kılavuzları' QUERYTRACEON seçeneği kullanılabilir.
Örnekler
- Belirli bir sorgu için izleme bayrağı 4199 tarafından denetlenen tüm plan etkileyen düzeltmeler etkinleştirebilirsiniz. Örneğin, aşağıdaki sorguyu kullanabilirsiniz:
SELECT x FROM correlated WHERE f1 = 0 and f2 = 1 OPTION (QUERYTRACEON 4199)
- İzleme Bayrakları 4199 ve belirli bir sorgu için 4137 tarafından denetlenen tüm plan etkileyen düzeltmeler etkinleştirebilirsiniz. Örneğin, aşağıdaki sorguyu kullanabilirsiniz:
SELECT x FROM correlated WHERE f1 = 0 AND f2 = 1 OPTION (QUERYTRACEON 4199, QUERYTRACEON 4137)