客服端与服务端建立了连接,conn = CreateConn...
能不能同时执行2个以上命令,如:insert,select 都通过这个连接?
如果可以,我在多线程模式下就可以只创建一个连接就行了。

解决方案 »

  1.   

    嗯,这要是考虑数据库的执行性能问题?
    1.如果只建一个连接,所有sql语句操作都通过这个连接(只有一个连接)
    2.每个sql语句的执行在不同连接上执行(多个连接)
    不知道1.2那个性能更好些?
      

  2.   

    前提是:只在一个进程里面。
    我是考虑是这样的:
    1情况下,如果有多个sql语句要执行,是不是会一个一个排序执行(串行的)?
    2情况下,连接的创建和关闭,要消耗资源。但执行是不是并行的?
      

  3.   

    1. 可以。注意线程安全
    2. 使用连接池的话,2在大多数情况下性能占优(比如查询之类的)。但是纯insert,未必。
      

  4.   

    线程安全的隐患不知道指的是什么?
    如:
    conn;
    线程A
    {
    while(1)
       conn->ExeSQL("update table ...");
    }线程B
    {
    while(1)
       conn->ExeSQL("insert into table....");
    }
    现在是两个线程同时通过conn连接对表table进行操作,线程安全的隐患指什么情况?