今天记录一个比较隐晦不好排查的问题,写了个查询功能, 结果用户反馈在页面点查询得5 -6分钟才能出来,执行的过程中把数据库执行的sql取出来,字段替换掉在数据库直接执行很快不到1秒,结果在解决的过程中

1.尝试的给sql的有个字段多加了个条件,比如: user_code in ('12') 改成了  in ('12','1234') 结果程序执行果然快了,到这里就有点奇怪为啥 in 1个的时候慢,in 2个的时候快,然后又有用户反馈 两个的时候也有慢的情况,到这里感觉可能是碰巧解决了并没有找到问题的根本

2.经过观察执行的sql发现 sqlserver取出来的sql字段 前面都是这样:nvarchar(4000),@P3 nvarchar(4000) ,然后最近因为也是遇到mysql字符集和字段编码格式不一样导致索引失效,所以排查了一下表中的字段类型,果然:表里是 varchar ,程序在执行的时候设置成了 nvarchar导致索引失效,改了数据库表字段类型后,解决了!

同样还有个问题想请教各位大佬,为啥第一步的时候 程序执行的时候有的用户直接就很快?

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐