多线程处理数据库问题!(100分)

  • 主题发起人 accelerator
  • 开始时间
A

accelerator

Unregistered / Unconfirmed
GUEST, unregistred user!
用delphi调用Oracle中的两个过程对数据库进行数据处理
因为数据量比较大,处理时间比较长,所以可能两个过程会同时被
调用。因此,我采用了多线程的方法,有如下问题:
我用线程 thread1 调用procedure1,用 thread2 调用procedure2,
其中procedure处理的时间比较长,所以procedure2应当先结束,可实际的
结果是procedure1 结束后,再执行procedure2
虽然采用了线程,当时在进行数据处理的时候,主窗体无法激活,请问这是
什么原因?
是否数据库多线程要用到TSession控件
还有,用到sleep在什么地方调用比较好
请各位指教
 
每个线程要有一个数据库连接,所以你在tthread中要动态生成
一个TSesssion对象给它用.当然别忘了结束的时候释放这个对象.
 
我用的是SQL2000,多个线程使用的是同一个连接,能正常工作,
但有一个问题,sqlserver.exe占用内存飞速增长(每插入7条记录,增长110k左右)
又是怎么回事呢?
 
后台线程优先级设低些.
 
在DELPHI5开发人员使用指南中开发程数据庫多线程确实TSesssion,也可以提高线程的优先级
 
应该是sleep的问题
对单cpu的机器,sleep回影响整个“进程”甚至所有“进程”,考虑用gettickcount或
now吧
 
多人接受答案了。
 
顶部