我公司之前服務器出現一部署就立刻cpu占滿(當時以為機器太爛了),而且非常之響。我聽着實在心煩。
由於服務器程序我可以調試。所以我就先看tomcat服務器的日志。反應着某一時間某一個方法一調用就服務器就立刻響。
然后我先把該方法屏蔽。。。看服務器反應。果然cpu不會立刻到滿了。(可以說能正常工作).
我然后開始調試該方法。
我一開始就認為是sql寫的有問題,本來想重新寫的,后來經理就說在sqlserver能用“存儲過程”來解決sql效率問題
(由於我對sqlserver數據庫,我們經理就叫某人幫我寫),經過一段時間后。那“存儲過程”出來了。但是現象未能達到效果;
然后我就開始重寫那句sql了
具體sql:我就不貼了。
做了例子吧:例如我想查"user"表的name字段中的姓氏:黎和陳 開頭,舊的語句是下面的sql
select * from user where 1=1 and name like '%[黎陳]%';
然后查詢后沒有問題。在自己的服務器也沒有問題。
但是一到服務器就立刻有反應。
后來我改成:
select * from user where 1=1 and name like '黎%' or name like '陳%';
就沒有什么問題了。所以嘛.....sql中的符號不懂就別亂用哦。。。。
我只知道這個中括號([])的不好之處。。。其他還是得日后才知道