如何解决调用SQLserver存储过程时,Spring JdbcTemplate非常慢
我正在使用JdbcTemplate.execute()调用与SQLServer数据库连接的SP。 使用相同的参数,当我直接在SQL Server Management Studio中执行SP时,它会在1秒钟内完成,但是当我在Java中使用JdbcTemplate时,它在几分钟内执行会导致严重的性能问题。
请注意,存储过程包含“ SET ANSI_NULLS ON”和“ SET QUOTED_IDENTIFIER ON”
解决方法
经过一些测试,我终于发现问题在于我的SP中的空白值判断:
我有一些SP的默认参数并将它们设置为@A nvarchar(255)='',然后在逻辑期间我需要将它们用作逻辑条件:if(@A不为null并且rtrim(ltrim( @A))'') 就这么简单,它在Management Studio中完全可以正常工作。
将init更改为@A nvarchar(255)并使用if(@A不为null)后,它还会在JdbcTemplate中返回结果...因此JdbcTemplate应该有一些内部逻辑来执行该空检查,但是我不确定原因和方式。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。