如何在 SQL 7.0 中不断取数并保持性能不至于下降太快(100分)

  • 主题发起人 主题发起人 XiaoLiang
  • 开始时间 开始时间
X

XiaoLiang

Unregistered / Unconfirmed
GUEST, unregistred user!

想法:SQL 7.0中,Table1 不断有记录insert 进来,
通过trigger 判断符合条件的记录就 insert into 到table2
前台有一个程序,每隔一段时间(最好为1-5秒),
不断从table2取记录,处理后分别删掉。
问题:(1)用两层好还是三层好?(我觉得区别不大)
(2)相隔多久取数据才不致于让数据库性能下降太快?
(3)是否用独立的 Query_Select 和Query_Delete
分别来进行select 和 delete ,并加上 prepare ,能否降低
对数据库的影响?还有别的措施也可降低影响吗?
(4)有无别的方法也可达到这个目的?
(5)在 SQL 7.0 中如何观察这个程序对数据库的影响?用
Performance Monitor 的哪些数据?
服务器配置 XeonIII 500 ,2cpu,1024M
操作系统:WinNT 4.0 ,SQL server 7.0
 
关键是你说不断有记录进来,这个进来的速度是多少,每秒有多少条记录。照你的说法,我
猜是不是每秒有几十条记录。应该不需要用三层,如果只是这个应用的话,对于表2来说
性能不会有太大的下降,因为这个表中数据不会很多的。
 
为什么要在前台处理删除? 轮询数据库当数据量大时系统性能会急剧下降.
你也可以写TRIGGER处理呀
 
实际情况是:
对于 table2 来说,记录有可能一秒进来几十条,也有可能几个小时才进来一条,
关键在于 table2 一有记录进来,就能在1-2秒中内处理。
我的处理没办法写在 trigger 中,因为涉及到外部DLL的 API 调用等等。
是不是当 table2 的记录数保持在几十条以内时,轮询对数据库性能的影响就不大?
另 table1 的 trigger 对数据库性能的影响有多大?如何测试其影响?
注:服务器的负荷已经较高了!
 
我已在生产环境下作了测试,基本上对系统没啥影响!
 
多人接受答案了。
 
后退
顶部