如果一个程序每两秒钟要执行一条sql server数据库命令的话,是每隔两秒钟连接数据库,执行T-sql语句,关闭连接比较好呢?还是从程序一运行开始就连接上,每隔两秒执行T-sql,直到程序退出前关闭连接好呢?主要是资源占用,执行效率,系统稳定性这几方面考虑。

解决方案 »

  1.   

    sql server有线程池的,你就一直连接上,sql server会帮你去管理的,这个不要你操心
      

  2.   

    没必要频繁断开然后再连,而且2秒太短了,sqlserver缓冲池会管理
      

  3.   

    #1.数据库连接算是个比较大的消耗资源,占用内存,且SQL SERVER完成自行管理。
    #2.如果你这个程序只有1个,那么占用一个常连接问题不大;假如有成千上百个程序都在跑,那个数据库的连接资源就开始紧张了
    #3.对于这种情况,连接池技术相应而生,这个技术是客户端的缓存技术。举个例子:
    A进程在缓冲池占用了一个L1连接,SQL SERVER相应建立一个S1连接。
    A进程,执行完SQL后,释放L1,但这时S1,并没有释放。
    B进程,进到缓冲池,需要一个空闲连接,正好L1空闲,就分给了它,这时B进程,还是用S1连接来执行它的SQL的,所以S1连接没有被重建,节省了不少时间和资源。
    #4.当然了,S1重用时会有一个清理操作,再加上L1释放和重新分配的时间,会比常连接慢一点,但消耗不大。
    所以,有了连接池,SQL SERVER只要维护几百个连接,就可以供客户端几千个连接“同时”使用,何乐而不为?所以除了#2的那种情况,我建议使用完连接后,马上断开。