Sintomas
Quando o SQL Server estiver a executar uma consulta auto-parametrizada não cacheável, a consulta pode produzir uma violação de acesso em condições raras. A violação de acesso é registada no registo de erro do SQL Server juntamente com uma pilha de chamadas que contém o seguinte fragmento de exemplo:***Stack Dump being sent to C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\LOG\SQLDump0010.txtSqlDumpExceptionHandler: Process #### generated fatal exception c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server is terminating this process.* ********************************************************************************* BEGIN STACK DUMP:* date time spid #*** Exception Address = 000007FA0B512E2F Module(sqllang+0000000000E72E2F)* Exception Code = c0000005 EXCEPTION_ACCESS_VIOLATION* Access Violation occurred reading address 0000000000000018** Input Buffer ### bytes -* select identifier, registration_date, model, digit, place, failure, address, * remote_control, phone_number, state, location, updated, mta, * home_id, vod_address, observations * from equipment with(nolock) * where branch_group = 1 and equipment_type = 2 * and series = 'SERIES_AAA'* * ******************************************************************************** -------------------------------------------------------------------------------* Short Stack Dump000007FA0B512E2F Module(sqllang+0000000000E72E2F)000007FA0B57D7D2 Module(sqllang+0000000000EDD7D2)000007FA0A74788B Module(sqllang+00000000000A788B)000007FA0A746B5C Module(sqllang+00000000000A6B5C)000007FA0A747034 Module(sqllang+00000000000A7034)000007FA0A746F8C Module(sqllang+00000000000A6F8C)000007FA0A6C9851 Module(sqllang+0000000000029851)000007FA0AB5CF5C Module(sqllang+00000000004BCF5C)000007FA0AB54397 Module(sqllang+00000000004B4397)000007FA09990430 Module(sqldk+0000000000010430)000007FA09990214 Module(sqldk+0000000000010214)000007FA0998FEF7 Module(sqldk+000000000000FEF7)000007FA099AF15F Module(sqldk+000000000002F15F)000007FA099AF1E0 Module(sqldk+000000000002F1E0)000007FA099AE70E Module(sqldk+000000000002E70E)000007FA099AEFB9 Module(sqldk+000000000002EFB9)000007FA17411832 Module(KERNEL32+0000000000001832)000007FA19B1D609 Module(ntdll+000000000005D609) Neste exemplo, os sintomas são os seguintes:
-
Uma consulta simples que tem uma ou mais constantes na sua cláusula WHERE. O SQL Server pode auto-parametrizar estas constantes.
-
A cadeia "Violação de Acesso ocorreu 00000000000000018". (Esta cadeia termina em "18" em sistemas de 64 bits, "0C" em sistemas de 32 bits.)
-
O conteúdo do despejo de pilha curta terá a mesma profundidade ou profundidade semelhante e posições relativas de quadros de pilha (não necessariamente uma correspondência exata). Nota Este exemplo é retirado de um exemplo de 64 bits de SQL Server. Será diferente, mas ainda reconhecível num exemplo de um exemplo de 32 bits.
Informação de atualização cumulativa
Esta questão foi corrigida pela primeira vez na seguinte atualização cumulativa do SQL Server.
Cada nova atualização cumulativa do SQL Server contém todos os hotfixes e todas as correções de segurança que foram incluídas com a atualização cumulativa anterior. Confira as últimas atualizações cumulativas do SQL Server:
Estado
A Microsoft confirmou que este problema ocorre nos produtos da Microsoft listados na secção "Aplica-se a".
Referências
Conheça a terminologia que a Microsoft utiliza para descrever atualizações de software.