sql 服务器查询从 java 运行缓慢
我有一个java程序,它对sql server数据库运行一堆查询。其中第一个针对视图的查询返回大约 750k 条记录。我可以通过 sql server 管理工作室运行查询,并在大约 30 秒内获得结果。但是,我昨晚启动了程序运行。当我今天早上检查它时,这个查询仍然没有将结果返回给java程序,大约15个小时后。
我可以访问数据库来执行我想要的任何事情,但我真的不确定如何开始调试它。人们应该做些什么来弄清楚是什么导致了这样的情况?我不是一个dba,并且不熟悉sql server工具集,因此您可以向我提供有关如何执行您可能建议的更多细节将不胜感激。
这是代码
stmt = connection.createStatement();
clientFeedRS = stmt.executeQuery(StringBuffer.toString());
编辑1:
好吧,已经有一段时间了,这被偏离了方向,但这个问题又回来了。我考虑过从jdbc驱动程序v 1.2升级到2.0,但我们卡在jdk 1.4上,v 2.0需要jdk 1.5,所以这不是一个启动器。现在,我正在查看我的连接字符串属性。我看到2个可能有用。
SelectMethod=cursor|direct
responseBuffering=adaptive|full
目前,由于延迟问题,我正在运行光标作为selectMethod,并且使用响应缓冲区的默认值(已满)。更改这些属性可能有帮助吗?如果是这样,理想的设置是什么?根据我在网上找到的内容,我在想,使用直接选择方法和自适应响应缓冲可能会解决我的问题。有什么想法吗?
编辑2:
最后,我更改了这两个连接字符串参数,使用默认的选择方法(直接)并将响应缓冲区指定为自适应。这最终最适合我,并减轻了我所看到的延迟问题。谢谢你的帮助。