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

    最近和同事处理一个小程序,数据量不是特别大,某表的的数据记录:7000W条记录左右,但是从改别执行一次查询时,却发现查询速度也不快,而且最明显的问题就是CPU100%。

    sql语句:

    select 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之间。

  • 相关阅读:
    2019/10/9 CSP-S 模拟测
    简单的面向对象
    魔术变量
    函数
    全局变量
    超级全局变量
    for循环
    while循环
    php数组排序
    python打造XslGenerator
  • 原文地址:https://www.cnblogs.com/yy3b2007com/p/7294770.html
Copyright © 2011-2022 走看看