KB2629456: corrección de acceso al insertar un registro en una nueva partición vacía en SQL Server 2008 o en SQL Server 2008 R2

Microsoft distribuye las soluciones Microsoft SQL Server 2008 Service Pack 3 (SP3) o Microsoft SQL Server 2008 R2 como un archivo que se puede descargar. Debido a que las correcciones son acumulativas, cada versión nueva contiene todas las revisiones y todas las actualizaciones de seguridad incluidas en la versión anterior de SQL Server 2008 SP3 o SQL Server 2008 R2.

Síntomas

Imagine la siguiente situación:

  • Cree particiones para una tabla en SQL Server 2008 o en SQL Server 2008 R2.

  • No se habilita la compresión en todas las particiones.

  • Intenta insertar un registro en una nueva partición vacía.

En este escenario, se produce una infracción de acceso y se registra el error siguiente en el registro de errores de SQL Server:

<Date> <Time> spid##      ***Stack Dump being sent to C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\LOG\SQLDump0001.txt<Date> <Time> spid##      SqlDumpExceptionHandler: Process 66 generated fatal exception c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server is terminating this process.<Date> <Time> spid##      * BEGIN STACK DUMP:<Date> <Time> spid##      *  Exception Address = 0000000000C37D22 Module(sqlservr+0000000000137D22)<Date> <Time> spid##      *  Exception Code    = c0000005 EXCEPTION_ACCESS_VIOLATION<Date> <Time> spid##      *  Access Violation occurred reading address 0000000000000020 

Nota Este problema también se produce en Microsoft SQL Server 2008 R2.

Resolución

Información sobre la actualización acumulativa

Service Pack 2 de SQL Server 2008

La corrección para este problema se publicó por primera vez en la actualización acumulativa 8 para SQL Server 2008 Service Pack 2. Para obtener más información acerca de este paquete de actualización acumulativa, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

2648096 Paquete de actualización acumulativa 8 para SQL Server 2008 Service Pack 2Nota Como las compilaciones son acumulativas, cada nueva versión de corrección contiene todas las revisiones y todas las revisiones de seguridad incluidas en la versión anterior de corrección de SQL Server 2008. Microsoft recomienda que considere la posibilidad de aplicar la versión de corrección más reciente que contenga este Hotfix. Si desea obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

2402659 Las compilaciones de SQL Server 2008 que se lanzaron después de que se publicó SQL Server 2008 Service Pack 2 Los Hotfix 2008 de Microsoft SQL Server se crean para determinados Service Packs de SQL Server. Debe aplicar una revisión de SQL Server 2008 Service Pack 2 a una instalación de SQL Server 2008 Service Pack 2. De forma predeterminada, cualquier Hotfix proporcionado en un Service Pack de SQL Server se incluye en el siguiente Service Pack de SQL Server.

SQL Server 2008 R2

La corrección para este problema se publicó por primera vez en la actualización acumulativa 11. Para obtener más información sobre cómo obtener este paquete de actualización acumulativa para SQL Server 2008 R2, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

2633145 Paquete de actualización acumulativa 11 para SQL Server 2008 R2 Nota Como las compilaciones son acumulativas, cada nueva versión de corrección contiene todas las revisiones y todas las revisiones de seguridad incluidas en la versión anterior de corrección de SQL Server 2008 R2. Le recomendamos que considere la posibilidad de aplicar la versión de corrección más reciente que contenga este Hotfix. Si desea obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

981356 Las compilaciones de SQL Server 2008 R2 que se lanzaron después de publicar SQL Server 2008 R2

Service Pack 1 de SQL Server 2008 R2

La corrección para este problema se publicó por primera vez en la actualización acumulativa 4 para SQL Server 2008 R2 Service Pack 1. Para obtener más información acerca de cómo obtener este paquete de actualización acumulativa, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

2633146 Paquete de actualización acumulativa 4 para SQL Server 2008 R2 Service Pack 1Nota Como las compilaciones son acumulativas, cada nueva versión de corrección contiene todas las revisiones y todas las revisiones de seguridad incluidas en la versión anterior de corrección de SQL Server 2008 R2. Le recomendamos que considere la posibilidad de aplicar la versión de corrección más reciente que contenga este Hotfix. Si desea obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

2567616 Las compilaciones de SQL Server 2008 R2 que se publicaron después de que se publicó SQL Server 2008 R2 Service Pack 1

Service Pack 3 de SQL Server 2008

La corrección para este problema se publicó por primera vez en el paquete de actualización acumulativa 2 para SQL Server 2008 Service Pack 3. Para obtener más información sobre cómo obtener este paquete de actualización acumulativa para SQL Server 2008 Service Pack 3, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

2633143 Paquete de actualización acumulativa 2 para SQL Server 2008 Service Pack 3Nota Como las compilaciones son acumulativas, cada nueva versión de actualización contiene todas las revisiones y todas las actualizaciones de seguridad que se incluían en la versión anterior de actualización de SQL Server 2008 Service Pack 3. Le recomendamos que considere aplicar la versión de actualización más reciente que contiene este Hotfix. Si desea obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

2629969 Las compilaciones de SQL Server 2008 que se lanzaron después de que se publicó SQL Server 2008 Service Pack 3

Más información

Para confirmar si está experimentando el problema descrito en este artículo de Knowledge base, siga estos pasos:

  1. Abra una conexión de DAC a SQL Server y ejecute la consulta siguiente:

    Use <your_db_name>select * from sys.sysrscols rsc where rsc.rsid in ( select sau.container_idfrom sys.system_internals_allocation_units sau join sys.partitions pt on sau.container_id = pt.partition_idand pt.object_id = object_id(<YourPartitionedTable>) and pt.index_id = 1) 

    Nota En esta consulta, <YourPartitionedTable> es un marcador de posición para el nombre de la tabla de particiones.

  2. En el resultado de la consulta, compruebe si la columna rscolid contiene un valor grande. Este es un ejemplo de un valor tan grande:

    rsid

    rscolid

    hbcolid

    rcmodified

    inteligencia

    Cid

    ordkey m

    72057594380091392

    0

    1

    614911578

    56

    0

    cuatro

    72057594380091392

    once

    13

    614911578

    12967

    53265

    0

    72057594380091392

    2007

    614911578

    32999

    53265

    0

    72057594380091392

    13

    4,5

    614911578

    32999

    53265

    0

    72057594380091392

    apartado

    614911578

    59

    0

    0

    72057594380091392

    4,5

    apartado

    614911578

    59

    0

    0

    72057594380091392

    apartado

    18

    614911578

    1834

    0

    0

    72057594380091392

    67108865

    19

    614911578

    19627

    53625

    0

    72057594380091392

    23

    ,23

    614911578

    56

    0

    0

    72057594380091392

    ,23

    veinticuatro

    614911578

    10407

    53625

    0

    72057594380091392

    veinticuatro

    veinticinco

    614911578

    662636

    0

    0

En este ejemplo, el valor de 67108865 es significativamente mayor que el de otros. Esto indica que está experimentando el problema que se describe en este artículo de Knowledge base.

Para solucionar este problema, vuelva a crear las particiones afectadas. Póngase en contacto con el soporte técnico de Microsoft para averiguar qué particiones intervienen. O bien, puede reconstruir todas las particiones con la siguiente consulta:

ALTER INDEX <your_table_index>ON <your_table_name>REBUILD Partition = allGO 

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft recogidos en la sección "Se aplica a".

¿Necesita más ayuda?

Ampliar sus conocimientos
Explorar los cursos
Obtener nuevas características primero
Unirse a Microsoft Insider

¿Le ha sido útil esta información?

¡Gracias por sus comentarios!

Gracias por sus comentarios. Quizá le interese ponerse en contacto con uno de nuestros agentes de soporte de Office.

×