当前位置:Gxlcms > 数据库问题 > SqlServer优化:当数据量查询不是特别多,但数据库服务器的CPU资源一直100%时,如何优化?

SqlServer优化:当数据量查询不是特别多,但数据库服务器的CPU资源一直100%时,如何优化?

时间:2021-07-01 10:21:17 帮助过:20人阅读

gridid,lng,lat from finger_lib_server where lng>min_lng and lng<max_lng and lat>min_lat and lat<max_lat;

发现问题,使用下边的语句查看数据库是否有锁存在:

 --查看被锁表: 
    select   request_session_id  as spid,OBJECT_NAME(resource_associated_entity_id) as tableName   
    from  sys.dm_tran_locks where resource_type=OBJECT
      
    --spid   锁表进程 
    --tableName   被锁表名
      
 -- 解锁:
      
    declare @spid  int 
    Set @spid  = 57 --锁表进程
    declare @sql varchar(1000)
    set @sql=kill +cast(@spid  as varchar)
    exec(@sql)

当执行查看被琐表的时候,一下子就发现了近100条锁都是指向表:finger_lib_server表。

于是,通过sqlserver的查询优化发现表finger_lib_server表上并没有针对上边的查询创建对应的索引:

技术分享

创建索引后,发现不仅CPU占用不到30%,而且查询速度也基本在0~60ms之间。

 

SqlServer优化:当数据量查询不是特别多,但数据库服务器的CPU资源一直100%时,如何优化?

标签:http   class   问题   resource   images   被锁   技术   res   arc   

人气教程排行