sybase数据库怎么删除百万以上数据
发布时间:2010-05-20 14:01:29 文章来源:www.iduyao.cn 采编人员:星星草
sybase数据库如何删除百万以上数据?
sybase数据库如何删除百万以上数据?以下两个语句都不能用:
1、 DELETE FROM DM_MDN_TERMINAL_RELATION_T
2、truncate table DM_MDN_TERMINAL_RELATION_T
------解决方案--------------------
不能一下子删除这么多数据,容易日志满
可以考虑加条件段
比如主键序号(xh)什么的
然后一段一段的删除
DELETE FROM 表名 WHERE xh>='10000001' AND xh<='10000100' //先删除100条记录
------解决方案--------------------
------解决方案--------------------
下面的经验是针对SQL Server的,但SYBASE也是同理。希望对你有帮助。
我们在SQL Server上面删除1.6亿条记录,不能用truncate(因为只是删除其中部分数据)。经过实验,每次删除400万条要花1.5 - 3小时,而且是越到后面越慢,正常的话,需要大约102个小时,大约4天半时间。这在生产环境下是不能接受的。
经过一个处理之后,我每次删除400万条记录花5 - 6分钟,删除全部1.6亿条记录花了4 - 5个小时!
为什么??
每次删除记录,数据库都要相应地更新索引,这是很慢的IO操作。而且后面索引碎片越来越多,就更慢。这就是为什么一开始只花1.5小时,后面要3小时才能删除400万条记录的原因。
我在删除前先保存当前索引的DDL,然后删除其索引,
然后根据使用的删除条件建立一个临时的索引(这是提高速度的另外一个重要原因!)
开始删除操作,完成之后再重建之前的索引。
------解决方案--------------------
对了,还有一点,删除的时候不要在记录日志的模式下面,否则日志文件就要爆了。
我们是每上次400万条记录,就清空一次日志文件。
删除之前,做个完整备份,哈哈。
------解决方案--------------------
------解决方案--------------------
这个大表上面有3个索引,其中有一个clustered,大约占30GB空间(只是索引),
删除3个索引大约花15分钟,其中最费时的是删除clustered index,花了10多分钟
建一个新的索引(non-clustered)花了20分钟
最后删除完成之后,重建3个索引大约30分钟。
也就是说,整个过程共花费不到一个小时,再加上4,5小时用于删除,共计6个小时左右。
如果没有上述操作的话,如开头说的,大约需要4天时间。
这个差别是非常大的。
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
unix 下操作sybase 问题.各位大虾不吝赐教
在hp-ux下通过shell连接数据库.
通过一个查询语句如下:
select count(*) ct from t1
un...
-
询问关于sybase advantage的字体对齐问题。
Windows 下的 Sybase SQL Advantage
文件版本 11.5.1.3
在返回信息窗口,只有宋体字...
-
数据导入问题
linux 下将每天将最新生成的文件导入到sybase anywhere 11数据库
如何实现????
------解决方案--------------------
...
-
Sybase [ASE]版发贴提问的智慧和技巧
发贴时,标题包含数据库名称操作系统以及相应版本号,
e.g. Windows XP下ASE15.0.3安装出错
...
-
求sybase15for x86
那位大侠有给传一个
------解决方案--------------------
正传给你QQ.......
-
请问sysbase中 sp_extendsegment 和 alterbase 有什么不同?
我知道sp_extendsegment 是将某个段扩到设备上,但是alterdabse不也有这...
-
求帮忙将一个sybase里的数据导入sqlite和SqlServer
有一个很老的管理系统好像是用pb+sybase asa7 做的,目前仍在用,
现在要升级新的...
-
有没有电话面试时候数据库的面试题目可以参考的啊?
有没有电话面试时候数据库的面试题目可以参考的啊?
------解决方案---------...
-
sybase master服务启动时发生段错误怎么办?
下面是errlog:
Directory is not a suitable Sybase directory.
Building Adaptiv...
-
sybase的int型数字时间,如何转换?
sybase有一字段存储的是时间,但为INT型,如值为1265856544,即2010-02-11 10:49:04
在SYBASE的SQL中,...