星之岛屿 2023-11-15 08:58 采纳率: 66.7%
浏览 48
已结题

sqlserver运行存储过程调用cmd来执行jar,速度很慢怎么办

sqlserver运行了一个存储过程,是调用cmd执行需要传入数据的jar。


```sql
 declare @sql varchar(500)   
      
set @sql='java -jar D:\oah\out\artifacts\oah_jar\oah.jar'
+(SELECT ' '+[sta]+' '+[stb]+ ' '+[stc]   FROM [dbo].[AOAS](nolock)   
where sta=(select  I.sta from  inserted I ) )

 EXEC  xp_cmdshell  @sql
 

速度很慢。首先,我直接在cmd执行 'java -jar D:\oah\out\artifacts\oah_jar\oah.jar sta stb stc 是很快的。
在sql这里直接执行 xp_cmdshell 'java -jar D:\oah\out\artifacts\oah_jar\oah.jar sta stb stc‘ ,明明立刻就达到效果,流程传达到了,就是会一直显示在执行中,卡住了。
有能提供更速度的方法的吗 ?
或者不调用cmd,直接在存储过程中调用jar。而且我执行后两秒钟就后台数据已经达到效果,最好有办法让他别一直执行中,释放掉。

  • 写回答

18条回答 默认 最新

  • threenewbee 2023-11-15 09:11
    关注
    获得0.60元问题酬金

    是不是下面那个 select 很慢,硬编码,不调用 select 的情况下也很慢么

    评论

报告相同问题?

问题事件

  • 系统已结题 11月23日
  • 修改了问题 11月15日
  • 创建了问题 11月15日