SqlServer优化:当数据量查询不是特别多,但数据库服务器的CPU资源一直100%时,如何优化?...
生活随笔
收集整理的這篇文章主要介紹了
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之間。
?
轉載于:https://www.cnblogs.com/yy3b2007com/p/7294770.html
總結
以上是生活随笔為你收集整理的SqlServer优化:当数据量查询不是特别多,但数据库服务器的CPU资源一直100%时,如何优化?...的全部內容,希望文章能夠幫你解決所遇到的問題。