O tempdb de um servidor (SQL Server 2008) aumenta para 500 GB + várias vezes por mês. É possível descobrir quais instruções SQL causaram esse problema? O problema geralmente não é causado por junções complexas create table #temp...; insert into #temp...
ou select ... into #temp...
complexas.
O tamanho inicial de alguns dos arquivos tempdb também é automaticamente definido para valores muito maiores sempre. Como evitá-lo?
Em algum momento, os planos em cache impedem o redimensionamento / redução dos arquivos. Como encontrar qual deles possui o tempdb?
sql-server
sql-server-2008
tempdb
u23432534
fonte
fonte
Respostas:
Existem três DMVs que você pode usar para rastrear o uso do tempdb:
Os dois primeiros permitirão rastrear alocações no nível de consulta e sessão. O terceiro rastreia as alocações no armazenamento de versão, no usuário e nos objetos internos.
A consulta de exemplo a seguir fornecerá alocações por sessão:
Se você deseja rastrear o uso por um período, considere coletar dados com sp_whoisactive , como demonstrado por Kendra Little .
fonte
[SPACE Allocated FOR USER Objects (in KB)]
e[SPACE Deallocated FOR USER Objects (in KB)]
o espaço ocupado real da sessão são?Pode haver várias fontes de um problema:
SORT_IN_TEMPDB = ON
fonte