SqlServer最佳化:當資料量查詢不是特別多,但資料庫伺服器的CPU資源一直100%時,如何最佳化?

來源:互聯網
上載者:User

標籤:http   class   問題   resource   images   被鎖   技術   res   arc   

最近和同事處理一個小程式,資料量不是特別大,某表的的資料記錄: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之間。

 

SqlServer最佳化:當資料量查詢不是特別多,但資料庫伺服器的CPU資源一直100%時,如何最佳化?

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.