xumenger
2015-09-10 07:09
采纳率: 72.2%
浏览 3.0k
已采纳

Delphi的ADO访问数据库的问题

问题一:
多线程并发时,每个线程使用自己的adoconnection连接oracle,然后各自执行自己的查询,会不会有优先级的问题?

问题二:
sql语句在代码里通过ado查询和在plsql里查询,速度差异会很大吗?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • 已采纳

    (1)不会有什么优先级的问题,在sql中,单条语句本身构成一个事务它是原子的。比如
    update table set a = a + 1,这里a = a+1肯定是原子操作,不可能有并发问题。
    但是,如果你的程序中有多条sql语句,又没有事务,就不一定了。所以要用事务。
    (2)按理说差距不大,因为接口开销是很小的。但是如果你大量执行简单的查询,积少成多,也不一定。对此,你应该优化查询,多用存储过程。

    点赞 打赏 评论
  • lyhoo163 2015-09-10 10:43

    使用线程执行数据库操作,是以相对独立数据处理,独立完成操作为目的。它们是没有优先级的。也不存在事务机制。它们的速度,取决于线程分配CPU占用时间和数据处理们复杂性。

    点赞 打赏 评论
  • lyhoo163 2015-09-11 00:43

    交给线程处理(非同步),实质上就是交给操作系统,分配CPU时间段进行处理。它具有相对独立性。

    点赞 打赏 评论

相关推荐