当前位置: 首页 > 面试题库 >

Oracle的JDBC查询超时如何实现?

何飞翰
2023-03-14
问题内容

我很好奇Oralce JDBC瘦客户端如何实现查询超时。可以通过调用java.sql.Statement的setQueryTimeout(int
seconds)方法进行设置。

这是在客户端的驱动程序本身中实现的吗?是否生成并加入了新线程?还是JDBC驱动程序只是将参数发送给Oracle,然后强制执行超时?

达到超时后,将释放客户端和数据库上的哪些资源,并且哪些资源仍然存在?即使客户端放弃了查询还是终止了查询,Oracle仍会继续运行查询吗?客户端上还有游标对象吗?

谢谢


问题答案:

Tanel Poder撰写了一篇有关取消如何通过OCI(Oracle呼叫接口)工作的文章。我想对JDBC也做了类似的事情。如果您通过OCI使用胖驱动程序,则可以尝试跟踪会话(通过设置sqlnet.ora)并查看记录了什么。



 类似资料:
  • 本文向大家介绍Oracle如何实现跨库查询,包括了Oracle如何实现跨库查询的使用技巧和注意事项,需要的朋友参考一下 实现结果:在一个数据库中某个用户下编写一个存储过程,在存储过程中使用DBLINK连接另一个数据库,从此数据库中的一个用户下取数,然后插入当前的数据库中的一个表中。 二. 实现方法步骤:     1. 创建存储过程     2. 在存储过程中先创建database link    

  • 尝试从Spring的事务中执行过程时收到此错误。 SQL状态[HY008];错误代码[0];查询超时了。;嵌套的异常是com。微软sqlserver。jdbc。SQLServerException:查询已超时。 当数据集较大时,这会在10分钟内发生。正在为此使用Azure SQL server。 尝试过: @事务(超时=18000) Azure DB未显示用于编辑远程查询超时时间选项的连接属性

  • 问题内容: 这不是连接超时,因为与数据库的连接正常。问题是我正在调用的存储过程花费的时间超过30秒,并且会导致超时。 该函数的代码如下所示: ExecuteScalar调用正在超时。如何延长此功能的超时时间? 对于快速存储过程,它可以正常工作。但是,其中一个功能需要一段时间,并且调用失败。当以这种方式调用ExecuteScalar函数时,我似乎找不到任何延长超时时间的方法。 问题答案: 如果您正在

  • 本文向大家介绍Oracle如何实现like多个值的查询,包括了Oracle如何实现like多个值的查询的使用技巧和注意事项,需要的朋友参考一下 问题背景描述: 某天客户有一个需求,给定一批的手机号码或者电话号码,查询出相关的通话记录,以及相关的一些信息。 客户给定的被叫号码如图所示: 查询出来的结果如下图所示(本批次的结果不是上图导入的结果查询的,为了格式说明,因此导入两张结果不相关的图片): 由

  • 问题内容: 我如何跟踪Linux服务器上发生的MySQL查询? 例如,我希望设置某种侦听器,然后请求一个网页并查看引擎执行的所有查询,或者仅查看在生产服务器上运行的所有查询。我怎样才能做到这一点? 问题答案: 您可以运行MySQL命令以查看在任何给定时间正在处理哪些查询,但这可能无法实现您所希望的。 获取历史记录而不必使用服务器修改每个应用程序的最佳方法可能是通过触发器。您可以设置触发器,以便每次

  • 问题内容: 我想知道如何使用Java获取解释计划。我之所以需要它,是因为我们有一个特殊用户可以编写报告的框架。这些报告有时会生成大量查询,我们想在其中动态解释并存储其成本。这样,我们可以稍后分析高成本查询并进行优化。 给我非法列异常的示例代码: 问题答案: 用这个: