Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
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 | Lehetséges végtelen újrafordítást észleltek az SQLHANDLE %hs, PlanHandle %hs, a kezdő eltolás %dés a végső eltolás %desetében. Az utolsó újrafordítás oka %dvolt. |
Explanation
Egy vagy több utasítás miatt a lekérdezési köteg legalább 50-szer újrafordításra került. A megadott utasítást ki kell javítani a további újrafordítások elkerülése érdekében.
Az alábbi táblázat az újrafordítás okait sorolja fel.
| Reason code | Description |
|---|---|
| 1 | Schema changed |
| 2 | Statistics changed |
| 3 | Deferred compile |
| 4 | Beállítás módosítása |
| 5 | Módosult a temp tábla |
| 6 | A távoli sorok halmaza megváltozott |
| 7 | A böngészési engedélyek módosítása |
| 8 | Módosult a lekérdezésértesítési környezet |
| 9 | PartitionView changed |
| 10 | A kurzor beállításai megváltoztak |
| 11 | Kért lehetőség (újrafordítás) |
| 12 | Paraméteres terv kiürítve |
| 13 | Terv linearizálásának tesztelése |
| 14 | Az adatbázisverziót érintő terv módosult |
| 15 | Módosult a lekérdezéstár-terv kényszerítési szabályzata |
| 16 | A lekérdezéstár-terv kényszerítése nem sikerült |
| 17 | A Lekérdezéstárból hiányzik a csomag |
| 18 | Az interleaved execution required recompilation |
| 19 | Nem újrafordítás |
| 20 | A Lekérdezéstár tippjei megváltoztak |
| 21 | A Lekérdezéstár tippalkalmazás nem sikerült |
| 22 | Lekérdezéstár újrafordítása a kurzoros lekérdezés rögzítéséhez |
| 23 | Újrafordítás a többsíkú diszpécsercsomag megtisztításához |
Az összes fordítási kód megtekintéséhez futtassa a következő dinamikus felügyeleti nézet lekérdezését:
SELECT * FROM sys.dm_xe_map_values
WHERE name LIKE '%compile%cause%';
User action
Tekintse meg az újrafordítást okozó utasítást az alábbi lekérdezés futtatásával. Replace the sql_handle, starting_offset, ending_offset, and plan_handle placeholders with the values specified in the error message.
object_nameAzdatabase_nameoszlopokNULLalkalmi és előkészített Transact-SQL utasítások.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 */Az okkód leírása alapján módosítsa az utasítást, a köteget vagy az eljárást az újrafordítások elkerülése érdekében. Egy tárolt eljárás például tartalmazhat egy vagy több
SETutasítást. Ezeket az utasításokat el kell távolítani az eljárásból.Az újrafordítás okaira és megoldására további példákat az SQL Server 2005 Batch-fordítási, újrafordítási és csomag-gyorsítótárazási problémái című témakörben talál. További információ az újrafordításokról: Újrafordítási végrehajtási tervek.
Ha a probléma továbbra is fennáll, forduljon a Microsoft ügyfélszolgálatához.