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)
Nenhum comentário