数据库程序运行 缓慢问题(想不通)

spark_cao 2008-09-22 08:46:42
程序描述:

数据库表tab共八个字段,其中主键ID为bigint类型自动增长列
表上有个触发器
触发器功能:当其中的state字段由1变为0的时候将tab的该条数据删除备份到tab_back备份表中
客户端程序,只负责将state由1改为0

出现问题:

程序刚开始运行很正常,速度也很快,当表中的ID增长到300多万的时候,程序运行变慢。(tab表中数据并不多,都移动到备份表中去了)
后来,我将tab表删除,重新创建后。
程序运行又正常了。(但是每次ID增长超过300多万的时候,就又运行缓慢了)

请问各位大虾,这到底是怎么一回事,有什么办法解决?
...全文
154 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
spark_cao 2008-09-24
  • 打赏
  • 举报
回复
只有主键,默认建好的聚集索引,而且主键是自动增长列
查询的条件就只有ID,其它都没有用到

触发器也是很简单的update触发器,而且只判断state列是否修改了

现在就是搞不清楚到底是哪里的问题
starluck 2008-09-23
  • 打赏
  • 举报
回复


哪果只是判断: state 来处理是否转备份表,可以用另种方式转到备份表试下,看下效果会好点.

我觉得应该是触发器这里的问题.
netcup 2008-09-23
  • 打赏
  • 举报
回复
碎片的原因吧?定期优化索引或者重建索引试下。
comszsoft 2008-09-23
  • 打赏
  • 举报
回复
有没有主键和索引,有没有定时维护索引
zhaohongcat 2008-09-23
  • 打赏
  • 举报
回复
up
spark_cao 2008-09-23
  • 打赏
  • 举报
回复
索引建了,数据库也整理的

我觉得这个不是问题的症结

hyde100 2008-09-23
  • 打赏
  • 举报
回复
将表上的索引定期rebuild一下试试
JYR520 2008-09-23
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 fa_ge 的回复:]
这么大的表,要建索引的,不然查询会更慢,把填充因子设小一些.每隔一段时间要整理一下数据库。我的
考勤打卡记录每天有几千条记录,也要经常维护的,不然数据处理会很慢的。
[/Quote]

可以试试
spark_cao 2008-09-23
  • 打赏
  • 举报
回复
另外说一下,运行程序的服务器用的是SQL Server2000
spark_cao 2008-09-23
  • 打赏
  • 举报
回复
到底是什么原因呢
谁来帮帮我!
spark_cao 2008-09-23
  • 打赏
  • 举报
回复
跟备份表没有关系吧
我是去操作tab表,又不去操作备份表
fa_ge 2008-09-22
  • 打赏
  • 举报
回复
我的表记录也有几百万,但我只会保留近几个月数据,之前的统统干掉.不过楼主数据重要的话要把历史数据移到其它库中。
建议楼主建个作业,当表中数据量达到一定数据时移转到历史库中,并做碎片整理。
fa_ge 2008-09-22
  • 打赏
  • 举报
回复
这么大的表,要建索引的,不然查询会更慢,把填充因子设小一些.每隔一段时间要整理一下数据库。我的
考勤打卡记录每天有几千条记录,也要经常维护的,不然数据处理会很慢的。
-晴天 2008-09-22
  • 打赏
  • 举报
回复
是不是得把tab_back删除才对?
建议,tab_back表中不要设置索引.特别是不要设置聚集索引.
liuweiqi 2008-09-22
  • 打赏
  • 举报
回复
up

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧