Apagar Dados Antigos

O comando abaixo irá apagar todos os registros anteriores a data configurada e ele é específico para os produtos da Marrari (powerserver).

Para verificar o tamanho do banco de dados e limpar os logs (após este comando o log do SQL Server pode crescer consideravelmente) veja o tópico "Tamanho do Banco de Dados".

* Recomendo fazer um backup antes de executar o comando e sempre verifique se a data foi digitada corretamente.


Este comando é válido para os produtos SV100, SV420, SV430 e SV600.

DECLARE @dateref date

USE [DB_CLP_X]
SET @dateref = '2018-01-01'

DELETE FROM [TBL_CLP_XT1] WHERE [Date] < @dateref
DELETE FROM [TBL_CLP_XT2] WHERE [Date] < @dateref
DELETE FROM [TBL_CLP_XT3] WHERE [Date] < @dateref

DB_CLP_X = Trocar pelo nome do banco de dados.
2018-01-01 = Manter dados a partir desta data (excluir registros anteriores a esta data) (Ano+Mês+Dia)

 


Este comando é válido para o produto SV500.

Comando auxiliar
Comando auxiliar (opcional) para verificar quantos registros tem o banco de dados assim com a data do registro mais antigo e o mais recente.

-- CONFIGURAR
USE [DB_CLP_X]

-- Total de registros.
SELECT COUNT([Id]) as Registros FROM TBL_CLP_FAST 
-- Data do registro mais antigo.
SELECT TOP 1 [Date] as MaisAntigo FROM TBL_CLP_FAST ORDER BY [Id]
-- Data do registro mais recente.
SELECT TOP 1 [Date] as MaisRecente FROM TBL_CLP_FAST ORDER BY [Id] DESC

DB_CLP_X = Trocar pelo nome do banco de dados.

Comando para limpar o banco de dados
*Incluso comando para limpar o log do SQL Server (experimental).

-- CONFIGURAR
USE [DB_CLP_X] -- Banco de dados a ser processado (Apenas para o produto 500).
DECLARE @date AS DATE = '2018-01-01' -- Excluir dados anteriores a esta data.

-- Contagem de registros antes de excluir.
SELECT COUNT([Id]) as ANTES FROM TBL_CLP_FAST

-- Exclui da tabela resumo.
DELETE FROM TBL_CLP_XT1
WHERE [Date2] <= @date
GO

-- Exclui da tabela de registros.
DELETE FROM TBL_CLP_FAST
WHERE [Date] < (SELECT TOP 1 [Date] FROM TBL_CLP_XT1 ORDER BY [Id])
GO

-- Exclui da tabela auxiliar.
DELETE FROM TBL_CLP_SLOW
WHERE [Id] < (SELECT TOP 1 [SlowId] FROM TBL_CLP_FAST ORDER BY [Id])
GO

-- Contagem de registros depois de excluir.
SELECT COUNT([Id]) as DEPOIS FROM TBL_CLP_FAST

-- Libera o espaço do arquivo de log.
CHECKPOINT
DECLARE @target INT = (select TOP 1 [file_id] from sys.database_files where [type] = 1)
DBCC SHRINKFILE(@target, EMPTYFILE)
GO

DB_CLP_X = Trocar pelo nome do banco de dados.
2018-01-01 = Manter dados a partir desta data (excluir registros anteriores a esta data) (Ano+Mês+Dia)