求助,如何才能快速删除历史数据?? 写个SQL语句:delete tb where dt<dateadd(yy,-1,getdate()) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 一个ERP系统的后台数据库,200多份表中都存有数据,各个表中的数据是相互关联的.需要进行清理的主要的存放各种业务数据的表(如库存数据\采购数据\销售数据\生产数据\财务数据等). 难,有外键,需要顺序而且有些子表估计没有日期字段,因为日期字段在主表中,子表是没有日期字段的。需要自己根据数据库的设计写删除语句。先删子表,再删主表如下两个表为主从表declare @sale table(销售单号 int,销售日期 datetime)declare @saleitem table(销售单号 int,商品编号 int,销售数量)--先删子表 delete @saleitem where 销售单号 in (select 销售单号 from @sale where 销售日期 < convert(datetime,'2007-01-01'))--再删主表 delete @sale where 销售日期 < convert(datetime,'2007-01-01') 一般的删除操作都要写日志的,所以大量的删除会比较慢,而且日志文件增长很快,还有索引碎片...有外键约束的话,删除是要有顺序才行。如果你有数据库的完整备份,可以在删除之前把数据库的日志模式改为“批量日志”的模式,以最小化的模式写日志文件,可以大大加快速度。之后要重建索引,否则性能上会有问题。删除之后,不要忘记改回来:“完全日志”的模式。然后不要忘记再做一个完整备份。本来想了一下使用 truncate table会比较快,但是truncate 是删除全部记录,而且重置自增列ID,估计这不是你希望要的。 如何清空一个MS SQL 2008 数据库中所有表中的所有记录 为什么数据库复制到另一个机子上后默认会老漏掉? 修改字段大小 【100分,确实有些疑难】关于按照某个字段部分内容来进行Group By的问题。 怎从sql2000每个一定天数从数拒库里读出记录 问题 数据库修改 like对guid类型不能使用索引,而对varchar等类型却可以 存储过程分页怎么会还是很慢! 寻找一个可以根据数据库表生成DELPHI和VB类的软件(现在一下找不到了,以前下载过) 关于存储过程的疑难问题:它到底能执行多少语句 求助解决存储过程:top参数和字符串共存问题 库背份,顶者有分
而且有些子表估计没有日期字段,因为日期字段在主表中,子表是没有日期字段的。需要自己根据数据库的设计写删除语句。先删子表,再删主表
如下两个表为主从表
declare @sale table(销售单号 int,销售日期 datetime)
declare @saleitem table(销售单号 int,商品编号 int,销售数量)
--先删子表
delete @saleitem where 销售单号 in (select 销售单号 from @sale where 销售日期 < convert(datetime,'2007-01-01'))
--再删主表
delete @sale where 销售日期 < convert(datetime,'2007-01-01')
以最小化的模式写日志文件,可以大大加快速度。之后要重建索引,否则性能上会有问题。
删除之后,不要忘记改回来:“完全日志”的模式。然后不要忘记再做一个完整备份。本来想了一下使用 truncate table会比较快,但是truncate 是删除全部记录,而且重置自增列ID,估计这不是你希望要的。