1. 備份日志, 避免日志過快增長 no_log / trancate_only
BACKUP LOG realnew_DATA WITH NO_LOG
DBCC SHRINKDATABASE(realnew_DATA ,TRUNCATEONLY)
BACKUP LOG realnew_DATA WITH Truncate_ONLY
BACKUP LOG sjyh WITH NO_LOG
DBCC SHRINKDATABASE(sjyh,TRUNCATEONLY)
BACKUP LOG sjyh WITH Truncate_ONLY
2. 維持歷史庫數據表中的記錄不超過5000條, 并將實時庫中數據插入歷史庫
1) 使用存儲過程 --作業
CREATE procedure insert_calHistory as
if ((select count(tag_id) from CalcOUT_1_HIS)>3000)
begin
delete from CalcOUT_1_HIS where tag_id in (select top 500 tag_id from CalcOUT_1_HIS order by tag_id)
end
insert into CalcOUT_1_HIS select * from CalcOUT_1_REAL
go
然后,添加作業
調度:每天每隔3分鐘執行一次
SQL: exec insert_calHistory
2) 使用觸發器--針對表一級的
CREATE TRIGGER deleterecord ON [dbo].[testtrigger]
after INSERT
AS
IF
(SELECT COUNT(*) FROM testtrigger) >5000
BEGIN
DELETE FROM testtrigger where id not in ( select top 300 id from testtrigger order by id desc)
END