MSSQLSERVER_8621MSSQLSERVER_8621

DettagliDetails

Nome prodottoProduct Name SQL ServerSQL Server
ID eventoEvent ID 86218621
Origine eventoEvent Source MSSQLSERVERMSSQLSERVER
ComponenteComponent SQLEngineSQLEngine
Nome simbolicoSymbolic Name OPTIMIZER_STACK_OVERFLOW_ERROPTIMIZER_STACK_OVERFLOW_ERR
Testo del messaggioMessage Text Spazio di stack esaurito durante l'ottimizzazione della query da parte di Query Processor.The query processor ran out of stack space during query optimization. Semplificare la query.Please simplify the query.

SpiegazioneExplanation

La causa più probabile dell'errore risiede nelle dimensioni della query espansa,The size of the expanded query is the most likely cause of the error. che sostituisce nella query originale le definizioni di ogni vista, colonna calcolata, funzione Transact-SQLTransact-SQL ed espressione di tabella comune a cui fa riferimento, nonché di ogni operazione di propagazione, ad esempio l'aggiornamento di indici secondari, viste e trigger.The expanded query substitutes into the original query the definitions of each of the views, computed columns, Transact-SQLTransact-SQL functions, and common table expressions it references, as well as cascading actions like updating secondary indexes, views, and triggers.

Probabilmente la query presenta alcune dimensioni grandi, ad esempio il numero di tabelle a cui fanno riferimento le definizioni delle viste o un'espressione scalare di dimensioni molto estese.Most likely the query is large in some dimension; for example, the number of tables referenced by view definitions, or a very large scalar expression.

Azione dell'utenteUser Action

Semplificare la query suddividendola in più query secondo la dimensione più grande.Simplify the query by breaking the query into multiple queries along the largest dimension. Rimuovere innanzitutto qualsiasi elemento della query non strettamente necessario, quindi provare ad aggiungere una tabella temporanea e separare la query in due parti.First remove any query elements that are not really necessary, then try adding a temp table and splitting the query in two. Non è sufficiente spostare semplicemente una parte della query in una subquery, funzione o espressione di tabella comune, poiché verrebbero ricombinate dal compilatore Transact-SQLTransact-SQL.Merely moving a part of the query to a subquery, function, or common table expression is insufficient because they get recombined by the Transact-SQLTransact-SQL compiler.