CORREGIR: El espacio utilizado en los aumentos de la base de datos tempdb continuamente cuando se ejecuta una consulta que crea objetos internos de la base de datos tempdb en SQL Server 2005

Nº de error: 50002301 (revisión SQL)
Microsoft distribuye correcciones de Microsoft SQL Server 2005 como un archivo descargable. Como las revisiones son acumulativas, cada versión nueva contiene todas las revisiones y revisión de todas las revisiones de seguridad que se incluyeron con la versión anterior de SQL Server 2005.

Síntomas

En Microsoft SQL Server 2005, ejecute una consulta que crea objetos internos de la base de datos tempdb . Cuando ejecuta la consulta muchas veces, el espacio utilizado en la base de datos tempdb aumenta continuamente. Por último, la base de datos tempdb llenarse. Además, debe reiniciar el servicio SQL Server para limpiar la base de datos tempdb .

Cuando se produce este problema, tiene la instrucción siguiente contra la base de datos tempdb muchas veces.
SELECT SUM(internal_object_reserved_page_count) AS [internal object pages used],(SUM(internal_object_reserved_page_count)*1.0/128) AS [internal object space in MB]
FROM sys.dm_db_file_space_usage;

Si lo hace, el valor de la columna internal_object_reserved_page_count aumenta cada vez que se ejecuta esta instrucción.

A continuación, se consulta la vista de administración dinámica sys.dm_db_session_space_usage. Al hacerlo, aumenta el valor de la columna internal_objects_alloc_page_count sin un incremento correspondiente en el valor de la columna internal_objects_dealloc_page_count.

Causa

Cada vez que ejecuta la consulta, SQL Server crea los objetos internos en la base de datos tempdb . En algunas condiciones, SQL Server desasignar las páginas que se asignan a los objetos internos de la base de datos tempdb .

Solución

La corrección para este problema en primer lugar se publicó en la actualización acumulativa 6. Para obtener más información acerca de cómo obtener este paquete de actualización acumulativa para SQL Server 2005 Service Pack 2, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
Paquete 6 de actualización de 946608 acumulativa para SQL Server 2005 Service Pack 2
Nota: Como las compilaciones son acumulativas, cada versión de corrección nueva contiene todas las revisiones y revisión de todas las revisiones de seguridad que se incluyeron con la versión anterior de SQL Server 2005. Microsoft recomienda que considere la posibilidad de aplicar la versión más reciente de revisión que contenga este hotfix. Para obtener más información, haga clic en el siguiente número de artículo para verlo en Microsoft Knowledge Base:
937137 el SQL Server 2005 crea que se publicaron después del lanzamiento de SQL Server 2005 Service Pack 2
Las revisiones de Microsoft SQL Server 2005 se crean para determinados service Pack de SQL Server. Debe aplicar un hotfix de SQL Server 2005 Service Pack 2 a una instalación de SQL Server 2005 Service Pack 2. De forma predeterminada, cualquier hotfix suministrada en un service pack de SQL Server se incluye en el próximo service pack de SQL Server.

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Aplicable a".

Más información

Para obtener más información acerca de cómo obtener una lista completa de las operaciones que utilizan objetos internos, visite los siguientes sitios Web de Microsoft:Para determinar la problemática sesión ID (SPID) que asignan las páginas en la base de datos tempdb , puede examinar el búfer de asignación. Para ello, primero debe habilitar el indicador de traza 1106. De forma predeterminada, el indicador de traza 1106 no está habilitado. A continuación, debe ejecutar la siguiente instrucción para mostrar la información de asignación y desasignación en la base de datos tempdb .
SELECT record.value('(Record/@id)[1]', 'int') AS record_id,
CONVERT (varchar, DATEADD (ms, -1 * ((inf.cpu_ticks / inf.cpu_ticks_in_ms) - [timestamp]), GETDATE()), 126) AS EventTime,
[timestamp] ,
record.value('(Record/@id)[1]', 'int') AS RingBuffer_Record_Id,
record.value('(Record/ALLOC/Event)[1]', 'int') AS AllocationEventType,
record.value('(Record/ALLOC/SpId)[1]', 'int') AS SpId,
record.value('(Record/ALLOC/EcId)[1]', 'int') AS EcId,
record.value('(Record/ALLOC/PageId)[1]', 'nvarchar(50)') AS AllocatedPageId,
record.value('(Record/ALLOC/AuId)[1]', 'nvarchar(50)') AS AllocationUnitId,
record.value('(Record/ALLOC/LsId)[1]', 'nvarchar(50)') AS LsId
FROM sys.dm_os_sys_info inf CROSS JOIN (
SELECT timestamp, CONVERT (xml, record) AS record
FROM sys.dm_os_ring_buffers
WHERE ring_buffer_type = 'RING_BUFFER_ALLOC_TRACE'
AND ( record LIKE '%<Event>23</Event>%' -- uniform extent allocation
OR record LIKE '%<Event>22</Event>%' -- uniform extent deallocation
OR record LIKE '%<Event>24</Event>%' -- mixed extent allocation
OR record LIKE '%<Event>25</Event>%' -- mixed extent deallocation
OR record LIKE '%<Event>10</Event>%' -- page allocation
OR record LIKE '%<Event>11</Event>%' -- page deallocation
)) AS t
ORDER BY record.value('(Record/@id)[1]', 'int') ASC

Puede comparar esta información con la información de SQL Server Profiler para determinar las consultas que asignar páginas y que desasignar páginas en la base de datos tempdb .

Nota: Se recomienda que no utilice el indicador de traza 1106 en servidores de producción porque el indicador de traza 1106 afecta al rendimiento de SQL Server.

Para obtener más información acerca de qué archivos se cambian y para obtener información acerca de los requisitos previos para aplicar el paquete de actualización acumulativa que contiene la revisión que se describe en este artículo de Microsoft Knowledge Base, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
Paquete 6 de actualización de 946608 acumulativa para SQL Server 2005 Service Pack 2

Referencias

Para obtener más información acerca de la lista de compilaciones disponibles después de SQL Server Service Pack 2, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
937137 el SQL Server 2005 crea que se publicaron después del lanzamiento de SQL Server 2005 Service Pack 2
Para obtener más información sobre el modelo de servicio Incremental de SQL Server, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
935897 un modelo de servicio Incremental está disponible en el equipo de SQL Server para entregar revisiones para problemas detectados
Para obtener más información acerca de cómo obtener SQL Server 2005 Service Pack 2, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
913089 cómo obtener el service pack más reciente para SQL Server 2005
Para obtener más información acerca de las nuevas características y mejoras de SQL Server 2005 Service Pack 2, visite el siguiente sitio Web de Microsoft:Para obtener más información acerca del esquema de nomenclatura para las actualizaciones de SQL Server, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
Paquetes de actualización de 822499 nuevo esquema de nomenclatura para software de Microsoft SQL Server
Para obtener más información acerca de la terminología de la actualización de software, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
824684 descripción de la terminología estándar que se utiliza para describir las actualizaciones de software de Microsoft
Propiedades

Id. de artículo: 947204 - Última revisión: 14 ene. 2017 - Revisión: 1

Comentarios