La tempdb de un servidor (SQL Server 2008) aumenta a 500 GB + varias veces al mes. ¿Es posible averiguar qué sentencias SQL causaron este problema? El problema generalmente no es causado por create table #temp...; insert into #temp...
o select ... into #temp...
sino uniones complejas.
los tamaño inicial de algunos de los archivos tempdb también se establece automáticamente en valores mucho mayores cada vez. ¿Cómo prevenirlo?
En algún momento, los planes en caché evitan cambiar el tamaño / reducir los archivos. ¿Cómo encontrar cuál tiene el tempdb?
sql-server
sql-server-2008
tempdb
u23432534
fuente
fuente
Respuestas:
Hay tres DMV que puede usar para rastrear el uso de tempdb:
Los dos primeros le permitirán realizar un seguimiento de las asignaciones a nivel de consulta y sesión. El tercero rastrea las asignaciones en el almacén de versiones, el usuario y los objetos internos.
La siguiente consulta de ejemplo le dará asignaciones por sesión:
Si desea realizar un seguimiento del uso durante un período de tiempo, considere recopilar datos con sp_whoisactive , como lo demostró Kendra Little .
fuente
[SPACE Allocated FOR USER Objects (in KB)]
y[SPACE Deallocated FOR USER Objects (in KB)]
el espacio ocupado real de la sesión?Puede haber varias fuentes de un problema:
SORT_IN_TEMPDB = ON
fuente