Simptomi
Pieņemsim, ka veidojat lokāli kompilētu saglabāto procedūru ar vaicājumu, kas satur lielu izteiksmi, kurā ir vairāk nekā 256 operatori programmā Microsoft SQL Server 2014. Mēģinot izmantot vaicājumu vai procedūru showplan_xml, tiek parādīts šāds kļūdas ziņojums:
Msg 41322, Level 16, State 33, Procedure <sp_name>, līnija <line_number>mat/PIT eksports/imports radās neveiksmīgas atmiņas optimizētas tabulas vai lokāli kompilētas saglabātās procedūras ar objekta ID< ID numurs >datu bāzes ID< ID numurs >. Kļūdas kods ir 0x88000015.
Cēlonis
Problēma rodas, jo radās kļūda SQL Server 2014.
Risinājums
Pēc tam, kad tiek lietots labojumfails, showplan_xml gūsit panākumus, veicot vietējo procedūru ar lielu operatoru skaitu. Šī problēma pirmo reizi tika izlabota tālāk sniegtajā SQL Server kumulatīvajā atjauninājumā.
Kumulatīvais atjauninājums 1 SQL Server 2014 /en-us/help/2931693
Katrā jaunajā kumulatīvajā SQL Server atjauninājumā ir iekļauti visi labojumfaili un visi drošības labojumi, kas bija iekļauti iepriekšējā kumulatīvajā atjauninājumā. Skatiet jaunākos kumulatīvos atjauninājumus SQL Server:
Risinājums
Lai novērstu šo problēmu, izmantojiet tālāk norādītos risinājumus.
-
Izteiksmes tiek sadalītas vairākās apakšizteiksmēs.
-
Izmantojiet iekavas, lai skaidri uzspiestu izteiksmju ligzdošanu, lai veiktu plašu, bet seklu izteiksmju koku, nevis dziļi ligzdotas izteiksmju koka vietā.
Statusa
Microsoft ir apstiprinājusi, ka šī problēma pastāv Microsoft produktos, kas ir norādīti sadaļā "attiecas uz".