none
sql2005并发访问很多导致数据访问缓慢问题 RRS feed

  • 问题

  • 使用 sql 2005 , 作为单位oa数据库服务器。oa人数900多人,在sql监视器中看到同时200多个操作在进行,数据库访问延时可达到5分钟之久。

    请问有没有什么方法可以使得数据库访问效率提高。很紧急啊!

    2010年6月21日 10:15

答案

  • 200个操作在多长时间内执行?

    是200个活动连接么?可以用sp_who查看活动连接,通常500以内都是不会有什么大问题。

    延迟5分钟是指某个数据库操作么?建议你把延迟时间比较长的sql操作单独拿出来,看看查询计划,对查询做一些优化。一般这么长的执行时间基本上是没法使用软件了。

    sql profiler可以抓到一些执行时间长的语句,这些都是你重点分析的对象。检查是否有必要的索引,这个往往是导致查询慢的罪魁祸首。

    具体的优化,可以把具体的问题拿上来问。


    family as water
    2010年6月21日 13:42
  • Check if has blocking on the server.
    2010年6月21日 14:24
  • 跟踪或查询DMV,找出最频繁、最耗时的指令,根据数据结构甚至业务逻辑改进。。。也可能需要从硬件、数据库设计上作出调整
    Try SQL Server 2008 QQ:315054403 dgdba@hotmail.com
    2010年6月22日 4:06
  • 使用连接池, 减少连接数.

    活动监视器中, 不知道你看的是活动的进程200多, 还是总进程, 如果是活动进程, 那你应该看看总进程数, 如果总进程数很多, 那可能你得调整程序, 把连接及时关掉.

    如果总进程才200多, 那说明可能是 server 配置太差, 或者是你的表设计/T-SQL太差.

    你可以使用 sql profile  Trace 一下性能不好的, 如果无法改进, 那么尝试升级服务器硬件.

    2010年6月22日 4:38

全部回复

  • 200个操作在多长时间内执行?

    是200个活动连接么?可以用sp_who查看活动连接,通常500以内都是不会有什么大问题。

    延迟5分钟是指某个数据库操作么?建议你把延迟时间比较长的sql操作单独拿出来,看看查询计划,对查询做一些优化。一般这么长的执行时间基本上是没法使用软件了。

    sql profiler可以抓到一些执行时间长的语句,这些都是你重点分析的对象。检查是否有必要的索引,这个往往是导致查询慢的罪魁祸首。

    具体的优化,可以把具体的问题拿上来问。


    family as water
    2010年6月21日 13:42
  • Check if has blocking on the server.
    2010年6月21日 14:24
  • 跟踪或查询DMV,找出最频繁、最耗时的指令,根据数据结构甚至业务逻辑改进。。。也可能需要从硬件、数据库设计上作出调整
    Try SQL Server 2008 QQ:315054403 dgdba@hotmail.com
    2010年6月22日 4:06
  • 使用连接池, 减少连接数.

    活动监视器中, 不知道你看的是活动的进程200多, 还是总进程, 如果是活动进程, 那你应该看看总进程数, 如果总进程数很多, 那可能你得调整程序, 把连接及时关掉.

    如果总进程才200多, 那说明可能是 server 配置太差, 或者是你的表设计/T-SQL太差.

    你可以使用 sql profile  Trace 一下性能不好的, 如果无法改进, 那么尝试升级服务器硬件.

    2010年6月22日 4:38