管理大型生产SQL数据库的删除

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了管理大型生产SQL数据库的删除相关的知识,希望对你有一定的参考价值。

我们有一个大的SQL生产DB(~1TB),需要定期修剪并保持合理的大小。 (即每周修剪最早的一周数据,因此我们一直有X周的数据)但是,这个数据库非常活跃,任何大型SQL操作都会破坏我们产品的性能。我已经用一个小的pyodbc包装器编写了一个存储过程,以便将块删除到更小,可管理的操作中。

ALTER PROCEDURE [dbo].[PurgeTickerHistory]
@Start bigint = 0, 
@End bigint = 0,
@ChunkSize int = 10000
AS
BEGIN
SET NOCOUNT ON;
declare @r int = 1;


while @r > 0
begin
    delete top(@ChunkSize)
        from dbo.TickerHistory
        where 1616905937 < @Start and 1616905937 > @End

    set @r = @@ROWCOUNT
end

end

这是一个完全可行的方法吗?或者,是否有更好的方法以更有效/更安全的方式完成我正在做的事情?

答案

是的,这是完全可行的。我们在现在的商店里做了类似的事情,而我之前的两个(从2005年开始提供Windows功能)。

以上是关于管理大型生产SQL数据库的删除的主要内容,如果未能解决你的问题,请参考以下文章

SQL Prompt7.2下载及破解教程

如何删除使用片段管理器添加的所有片段?

Laravel - 播种大型 SQL 文件

Oracle数据库从RMAN备份集片段还原指定单个归档日志进行日志挖掘分析

《java精品毕设》基于javaweb宠物领养平台管理系统(源码+毕设论文+sql):主要实现:个人中心,信息修改,填写领养信息,交流论坛,新闻,寄养信息,公告,宠物领养信息,我的寄养信息等(代码片段

如何将大型 SQL Server 表拉入 C# 进行分析