欄位字元型別不匹配導致CPU佔用率高
WINDOWS2003+MSSQL2005
CPUs:6*4
Mem:32G
cpu平均使用達40%;
MEM使用25G;
分析硬體效能狀態、彙總資訊如下:
記憶體頁交換較少、buffer命中率高、記憶體頁生命週期較長、IO佇列為0
綜上資訊初步判斷SQL語句編寫不合理導致CPU使用高居不下.
通過SQLProfiler工具以CPU執行時間為過濾條件(>=1000MS),抓取5小時的樣本資料:
其中的一個應用執行頻率高、1次/S,該儲存內嵌4條SQL,其中2條SQL的CPU執行時間超過1500MS。
分析該典型SQL語句:
原始 PROD中傳遞欄位的資料型別設定為N'vchar,TABLE中對應的欄位資料型別為VCHAR,因為欄位的資料型別不匹配導致index所走的路線為index seek 1% + index scan 99%
更改儲存欄位資料型別後index cost為index seek 50% + index seek 50%
效能得到明顯提升,CPU平均使用降到10%。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24867586/viewspace-717399/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 資料欄位型別匹配型別
- 異常等待事件Resmgr:Cpu Quantum導致CPU利用率高事件
- cpu佔用率100%怎麼解決 cpu佔用率高怎麼辦
- SQL中欄位比較型別不匹配錯誤:‘cannot be cast to’SQL型別AST
- Win10系統安裝中文IME導致CPU佔用率過高的解決方法Win10
- java應用CPU佔用率過高排查Java
- windows10cpu佔用率高怎麼辦Windows
- 效能分析(5)- 軟中斷導致 CPU 使用率過高的案例
- 【故障處理】序列cache值過小導致CPU利用率過高
- 【RAC】處理因ons導致CPU使用率過高的問題
- Nodejs mkdirP 模組導致CPU佔用高的問題NodeJS
- oracle_CPU佔用率高時的問題定位Oracle
- 欄位管理,為什麼只有新增的時候才自動匹配欄位型別型別
- Node.js 應用高 CPU 佔用率的分析方法Node.js
- CPU資源佔用100%怎麼辦?cpu佔用率高的解決辦法
- 保留兩位小數:資料庫欄位型別NUMBER,Java欄位型別Double型別資料庫型別Java
- Dubbo Hession反序列化導致CPU佔用飆高用例分析
- 【Mysql】JDB2導致磁碟io使用率高 導致mysql延遲過高MySqlDB2
- SQL字元型欄位按數字型欄位排序實現方法SQL字元排序
- win10空閒cpu很多cpu佔滿怎麼辦 win10cpu佔用率高怎麼辦Win10
- Oracle-不刪表資料,修改欄位型別Oracle型別
- win10系統keyshot佔用率高cpu怎麼辦_win10 keyshot佔用率100%cpu處理方法Win10
- MongoDB更改欄位型別MongoDB型別
- oracle的欄位型別Oracle型別
- HTML的input型別為hidden導致無法reset改欄位的value問題HTML型別
- Laravel 對於 Mysql 欄位string型別查詢,當使用數字對這個欄位進行查詢,PHP弱型別語言導致索引失效LaravelMySql型別PHP索引
- win10解決antimalware service executable cpu佔用率高的方法Win10
- 解決WinXP中CPU佔用率過高的問題(MaxWorkitems)(轉)
- 解決Windows XP中CPU佔用率過高的問題(轉)Windows
- 微軟新補丁與Outlook衝突 CPU佔用率高達99%微軟
- sql語句修改欄位型別和增加欄位SQL型別
- MySQL欄位型別最全解析MySql型別
- date、timestamp欄位型別型別
- MySQL欄位型別小記MySql型別
- 修改表的欄位型別型別
- sqlite sql 修改欄位型別SQLite型別
- rundll32.exe程式佔用率CPU高的原因及解決方法
- 記一次資料庫高CPU佔用率處理過程資料庫