Seu tempdb esta ficando muito, mais muito grande.

Botão direito no tempdb ==> propriedades ==> Files ==> clique em cima do Initial Size e coloque o espaço que deseja.

Pode falar eita dificuldade.

E tem gente que fica perdido nessa. Acreditem....

 

Agora se não der certo vamos para o método grosseiro de ser :

Diminui para um tamanho especifico:

 

--- ****  INICIO Copie e cole este código no Manager Studio

 

USE TEMPDB

GO

SP_HELPDB TEMPDB

GO

DBCC SHRINKFILE (tempdev, 30)

GO

DBCC SHRINKFILE (templog, 5)

GO

SP_HELPDB TEMPDB

 

--  O 30 informa ao tempdb ficar com 30MB.

-- Lembrando que devemos diminuir também o arquivo de log, assim...

-- O 5 informa o log do  tempdb deve ficar com  5MB.

 

--- ****  FIM  VISUALIZE O RESULTADO COM O COMANDO SP_HELPDB TEMPDB

 

Podemos fazer por porcentagem também

 

--- ****  INICIO Copie e cole este código no Manager Studio

DBCC SHRINKDATABASE (tempdb, 10)

 

--- ****  FIM  VISUALIZE O RESULTADO COM O COMANDO SP_HELPDB TEMPDB

Eita mas sempre que voce roda algumas operações pesada tipo um delete big power.

Então vamos ser grosseiros.

Limpa o cache de procedimento ==> DBCC FREEPROCCACHE;

Operação é semelhante a FREEPROCCACHE, exceto que afeta outros tipos de caches ==> DBCC FREESYSTEMCACHE ('ALL');

Limpa o cache de conexão de consulta distribuída. ==> DBCC FREESESSIONCACHE;

Apelação total :

CHECKPOINT;

DBCC DROPCLEANBUFFERS;

 

SE NADA DER CERTO PARTA PARA O RADICAL

Reinicie o serviço do SQLServer:

 

Clique com o botão direito do mouse em "SQL Server" no SQL Server Configuration Manager e clique em Restart ou Reiniciar.

Atualização :

 

-- Define o limite mínimo de páginas alocadas no tempdb para considerar uma sessão "abusiva"

-- 128 páginas = 1 MB

DECLARE @limite_paginas INT = 128; -- Altere conforme necessário

 

-- Tabela temporária para armazenar sessões que excedem o limite

IF OBJECT_ID('tempdb..#SessoesAbusivas') IS NOT NULL

    DROP TABLE #SessoesAbusivas;

 

CREATE TABLE #SessoesAbusivas (

    session_id INT,

    total_paginas INT,

    sql_text NVARCHAR(MAX),

    status NVARCHAR(30),

    command NVARCHAR(50)

);

 

-- Popula a tabela com sessões abusivas

INSERT INTO #SessoesAbusivas (session_id, total_paginas, sql_text, status, command)

SELECT 

    s.session_id,

    (u.user_objects_alloc_page_count + u.internal_objects_alloc_page_count) AS total_paginas,

    t.text AS sql_text,

    r.status,

    r.command

FROM 

    sys.dm_db_session_space_usage u

JOIN sys.dm_exec_sessions s ON u.session_id = s.session_id

LEFT JOIN sys.dm_exec_requests r ON s.session_id = r.session_id

OUTER APPLY sys.dm_exec_sql_text(r.sql_handle) t

WHERE 

    (u.user_objects_alloc_page_count + u.internal_objects_alloc_page_count) >= @limite_paginas

    AND s.is_user_process = 1

    AND s.session_id <> @@SPID;  -- Não mata a própria sessão

 

-- Verifica e mata as sessões identificadas

DECLARE @sid INT;

DECLARE cur CURSOR FOR SELECT session_id FROM #SessoesAbusivas;

OPEN cur;

 

FETCH NEXT FROM cur INTO @sid;

WHILE @@FETCH_STATUS = 0

BEGIN

    PRINT 'Encerrando sessão: ' + CAST(@sid AS VARCHAR);

    BEGIN TRY

        EXEC ('KILL ' + @sid);

    END TRY

    BEGIN CATCH

        PRINT 'Erro ao encerrar sessão ' + CAST(@sid AS VARCHAR) + ': ' + ERROR_MESSAGE();

    END CATCH;

 

    FETCH NEXT FROM cur INTO @sid;

END

 

CLOSE cur;

DEALLOCATE cur;

 

-- Exibe o log das sessões que foram encerradas

SELECT * FROM #SessoesAbusivas;

 

-- Limpeza

DROP TABLE #SessoesAbusivas;