机房有台windows server2003的服务器上装了sql server200。服务器配置为4CPU,8G.
同网段内的客户端访问数据库服务很正常。
但是不同网段的客户端访问数据库服务器,能连接上数据库服务,直接ping 数据库服务所在的服务器。延时小于1毫秒。
但是在服务器上通过任务管理器查看到sqlserver.exe这个进程的CPU占用率为50%。请问大家遇到过这样的问题吗?

解决方案 »

  1.   

    cpu高的问题 应该是内部的语句导致吧 查出占用CPU比较多几个sql语句 分析下
      

  2.   

    一般是由SQL语句引起的,用SQL Profiler工具跟踪一下.
      

  3.   

    平均<80%的使用状况,应该都可以接受。lz,业务高峰期,cpu 多少?
      

  4.   

    在同一个网段内就没有任何问题。在不同的网段内就又问题。
    我觉得应该和语句没有任何关系。只要一连接上sql server服务,
    不做任何操作,sqlserver.exe的cpu占用率就很高.
      

  5.   

    LZ先用以下SQL语句查询是否有比较占CPU的查询
    SELECT 
    substring(text,qs.statement_start_offset/2
    ,(CASE 
    WHEN qs.statement_end_offset = -1 THEN len(convert(nvarchar(max), 
    text)) * 2 
    ELSE qs.statement_end_offset 
    END - qs.statement_start_offset)/2) 
    ,qs.plan_generation_num as recompiles
    ,qs.execution_count as execution_count
    ,qs.total_elapsed_time - qs.total_worker_time as total_wait_time
    ,qs.total_worker_time as cpu_time
    ,qs.total_logical_reads as reads
    ,qs.total_logical_writes as writes
    ,last_execution_time
    FROM sys.dm_exec_query_stats qs
    CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) st
    LEFT JOIN sys.dm_exec_requests r 
    ON qs.sql_handle = r.sql_handle
    ORDER BY 3 DESC
    如果没有查出比较占CPU的查询,有可能中了SQL的蠕虫病毒?
    http://topic.csdn.net/t/20051114/10/4391346.html
      

  6.   

    用SQL Profiler工具跟踪一下.
    或--占用CPU最多
    SELECT TOP 10 total_worker_time / execution_count       AS [Avg CPU Time],
                  (SELECT Substring(text, statement_start_offset / 2, ( CASE
                                                                          WHEN statement_end_offset = -1 THEN Len(CONVERT(NVARCHAR(max), text)) * 2
                                                                          ELSE statement_end_offset
                                                                        END - statement_start_offset ) / 2)
                   FROM   sys.Dm_exec_sql_text(sql_handle)) AS query_text,
                  *
    FROM   sys.dm_exec_query_stats
    ORDER  BY [Avg CPU Time] DESC 找到后分析问题所在
      

  7.   

    只是连接上数据库服务器,不做任何操作,就只是单纯的连接上而已。都会出现sqlserver.exe cpu占用很高。
      

  8.   

    应该是程序连接上后执行了什么耗CPU的SQL语句,
    用SQL Profiler工具跟踪一下.
      

  9.   

    连接进去以后SYSPROCESS中看到有什么信息吗?有没有什么耗资源的执行?