*** 请问如何能快速的删除一个海量表中的特定数据? *** drop table YOUtableCreate table YOUtable( .....) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1.条件字段建立索引.2.设置sqlserver自动清理日志 你的表是不是有很多索引?索引最大的好处就是加快查询速度,但是副作用也是很明显的,特别是对经常做DML操作的表,会降低DML的操作速度, 索引越多, 影响越大.对纪录数量这么大的表,我没有经验. 不过我想这么大的表, 用常用的方式处理恐怕效果不会很好, 建议参考一些相关的资料 索引已经建立了,还有什么别的好办法呢?怎么“设置sqlserver自动清理日志”? 先Declare 一個table變量。DECLARE @rsTmp Table(....)然後再把不符合條件的記錄INSERT到@rsTmp中去。再Truncate table,然後再回插數據到table中,不知這樣速度是否有加提高? 既然你的刪除是帶where的,那麼建立有效的索引是非常有必要的.如果你已經有了群集索引,那麼先暫時將它drop掉.並根據where中的情況建立組合索引,記得其前導列一定是使用最頻繁的列.如:where date < xxx and customer_id = xxx and card_no = xxx那麼就建立date,customer_id,card_no上的組合索引,並且where中單一的使用這些字段,千萬不要用函數,如:where convert(varchar(8),date,120) < xxx...同時,將海量的刪除分割開來,在where中儘量使用小的範圍,分步commit;這樣會使日誌的內容盡可能的小.海量的刪除會讓日誌一下子就爆滿.BTW:你有1萬5千万行數據,為什麼到現在才想起清數據? 删除时索引时是最关键的!之前,设置日志自动清除: sp_dboption dbname,'truncate log on checkpoint',true sp_dboption dbname,'autoshrink',true 又是动态行转列,但是需要排序,不想用临时表,可以实现么,多谢大家了! 如何用程序得到对SQL数据库指定表操作的SQL语句? 多表查询(特别) 急求一条按销售区域汇总的SQL语句 如何取分组的TOPN记录 请教一初级问题!!!!望各位高手回复 vfp多用户问题 教我协一句sql语句 sql 2008 行转列 求教 sql取金额各位的数值 关于在存储过程中使用SQL语句,得到SQLServer数据库安装文件所在目录 Oracle个人版8.1.6,创建了一个数据库如何在sql*plus中连接
2.设置sqlserver自动清理日志
索引最大的好处就是加快查询速度,但是副作用也是很明显的,特别是对经常做DML操作的表,会降低DML的操作速度, 索引越多, 影响越大.
对纪录数量这么大的表,我没有经验. 不过我想这么大的表, 用常用的方式处理恐怕效果不会很好, 建议参考一些相关的资料
DECLARE @rsTmp Table(....)
然後再把不符合條件的記錄INSERT到@rsTmp中去。再Truncate table,然後再回插數據到table中,不知這樣速度是否有加提高?
如果你已經有了群集索引,那麼先暫時將它drop掉.
並根據where中的情況建立組合索引,記得其前導列一定是使用最頻繁的列.如:
where date < xxx and customer_id = xxx and card_no = xxx
那麼就建立date,customer_id,card_no上的組合索引,並且where中單一的使用這些字段,千萬不要用函數,如:where convert(varchar(8),date,120) < xxx...
同時,將海量的刪除分割開來,在where中儘量使用小的範圍,分步commit;
這樣會使日誌的內容盡可能的小.
海量的刪除會讓日誌一下子就爆滿.BTW:你有1萬5千万行數據,為什麼到現在才想起清數據?
sp_dboption dbname,'truncate log on checkpoint',true
sp_dboption dbname,'autoshrink',true