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.
Applies to:SQL Server
Details
| Attribute | Value |
|---|---|
| Product Name | SQL Server |
| Event ID | 2814 |
| Event Source | MSSQLSERVER |
| Component | SQLEngine |
| Symbolic Name | PR_POSSIBLE_INFINITE_RECOMPILE |
| Message Text | SQLHANDLE %hs, PlanHandle %hs, başlangıç konumu %d, bitiş konumu %dolan olası bir sonsuz yeniden derleme algılandı. Son yeniden derleme nedeni %d. |
Explanation
Bir veya daha fazla deyim, sorgu toplu işleminin en az 50 kez yeniden derlenmesine neden oldu. Daha fazla yeniden derlemeyi önlemek için belirtilen deyim düzeltilmelidir.
Aşağıdaki tabloda yeniden derlemenin nedenleri listelenmiştir.
| Reason code | Description |
|---|---|
| 1 | Schema changed |
| 2 | Statistics changed |
| 3 | Deferred compile |
| 4 | Seçenek değişikliğini ayarla |
| 5 | Geçici tablo değiştirildi |
| 6 | Uzak satır kümesi değiştirildi |
| 7 | Değiştirilen göz atma izinleri için |
| 8 | Sorgu bildirim ortamı değiştirildi |
| 9 | PartitionView changed |
| 10 | İmleç seçenekleri değiştirildi |
| 11 | Seçenek (yeniden derleme) istendi |
| 12 | Parametreli plan boşaltıldı |
| 13 | Test planı doğrusallaştırma |
| 14 | Veritabanı sürümünü etkileyen plan değiştirildi |
| 15 | Sorgu Deposu planı zorlama ilkesi değiştirildi |
| 16 | Sorgu Deposu planı zorlanamadı |
| 17 | Sorgu Deposu planı eksik |
| 18 | Araya kaydedilen yürütme gerekli yeniden derleme |
| 19 | Yeniden derleme değil |
| 20 | Sorgu Deposu ipuçları değiştirildi |
| 21 | Sorgu Deposu ipuçları uygulaması başarısız oldu |
| 22 | İmleç sorgusunu yakalamak için Sorgu Deposu yeniden derleme |
| 23 | Çok düzlemli dağıtıcı planını temizlemek için yeniden derleme |
Tüm derleme kodlarını görüntülemek için aşağıdaki dinamik yönetim görünümü sorgusunu çalıştırın:
SELECT * FROM sys.dm_xe_map_values
WHERE name LIKE '%compile%cause%';
User action
Aşağıdaki sorguyu çalıştırarak yeniden derlemeye neden olan deyimini görüntüleyin. Replace the sql_handle, starting_offset, ending_offset, and plan_handle placeholders with the values specified in the error message.
database_nameveobject_namesütunlarıNULLgeçici ve hazırlanmış Transact-SQL deyimleri içindir.SELECT DB_NAME(st.dbid) AS database_name, OBJECT_NAME(st.objectid) AS object_name, st.text FROM sys.dm_exec_query_stats AS qs CROSS APPLY sys.dm_exec_sql_text(0x01000600B74C2A1300D2582A2100000000000000000000000000000000000000000000000000000000000000 /* replace the 0x01000600B... value with the actual sql_handle */ ) AS st WHERE qs.statement_start_offset = 123 /* replace 123 with actual starting_offset value */ AND qs.statement_end_offset = 456 /* replace 456 with actual ending_offset value */ AND qs.plan_handle = 0x06000100A27E7C1FA821B10600; /* replace 0x06000100A27E7C1FA821B10600 with actual plan_handle value */Neden kodu açıklamasına bağlı olarak, yeniden derlemeleri önlemek için deyimini, toplu işlemi veya yordamı değiştirin. Örneğin, saklı yordam bir veya daha fazla
SETdeyim içerebilir. Bu deyimler yordamdan kaldırılmalıdır.Yeniden derleme nedenleri ve çözümleri hakkında daha fazla örnek için bkz. SQL Server 2005'te Toplu Derleme, Yeniden Derleme ve Plan Önbelleğe Alma Sorunları. Yeniden derlemeler hakkında daha fazla bilgi için bkz. Yürütme planlarını yeniden derleme.
Sorun devam ederse Microsoft Müşteri Destek Hizmetleri'ne başvurun.