当前位置: 首页 > 知识库问答 >
问题:

使用SQL服务器的JDBC ResultSet

羊舌高爽
2023-03-14

当使用JDBC的查询创建语句并获得数百万行的结果集(从SQL Server)时,真正执行了哪些SQL查询,这些行存储在哪里,有多少行?它使用SQL Server游标吗?我知道只有有限数量的行保存在客户端内存(Java代码所在的位置)中,那么其余的行保存在哪里呢,或者可能还没有从SQL Server查询到它们)?当我查看SQL Server profiler时,它只显示了普通的查询(没有添加游标或其他东西的TOP X)

共有1个答案

翁昊乾
2023-03-14

摘自有关自适应缓冲的 SQL Server 文档:

通常,当MicrosoftJDBCDriverforSQLServer执行查询时,驱动程序会将所有结果从服务器检索到应用程序内存中。尽管这种方法将SQL Server上的资源消耗降至最低,但对于产生非常大结果的查询,它可能会在JDBC应用程序中抛出OutOfMemoryError。

有一种方法可以解决这个问题,SQL Server称之为自适应缓冲,并且似乎默认为JDBC驱动程序版本2启用,您可能希望在文档中阅读它。要点如下:

为了允许应用程序处理非常大的结果,MicrosoftJDBCDriverforSQLServer提供了自适应缓冲。通过自适应缓冲,驱动程序可以在应用程序需要时从SQL Server检索语句执行结果,而不是一次全部。

 类似资料:
  • Support for the Microsoft SQL Server database. The following table summarizes current support levels for database release versions. 支持的Microsoft SQL Server版本 The following dialect/DBAPI options are av

  • 下面尝试过,但是直到并且除非我使Acyah geShipmentIn绑定节点为空(删除释放ID="9.2"xmlns="http://schema.infor.com/InforOAGIS/2"xmlns: xs="http://www.w3.org/2001/XMLSchema")选择查询不获取值。

  • 我可以在我自己的电脑上使用这个程序,但是我不能在服务器上使用。 服务器使用最高权限管理员打开程序。 具有的服务器WCF HTTP激活功能。NET4。5号门开着。 服务器endpoint地址使用"http://localhost",如下所示 endpoint地址="http://localhost"绑定="basicHttpBind"bindingConfiguration="NewBinding0

  • 我目前正在开发一个PHP应用程序,它将使用websockets进行客户机-服务器通信。我多次听说PHP不应该用于服务器应用程序,因为缺乏线程机制、内存管理(循环引用)或不方便的套接字库。 到目前为止,一切都工作得相当好。我使用phpws作为websocket库和DBAL来访问不同的数据库系统;PHP版本是5.3.8。服务器最多可服务30个客户端。然而,特别是在最近几天,我读了几篇文章,指出PHP对

  • 本文向大家介绍使用SQL Server连接服务器访问DB2 Server,包括了使用SQL Server连接服务器访问DB2 Server的使用技巧和注意事项,需要的朋友参考一下 首先,需要安装Microsoft OLE DB Provider for DB2 下载地址:http://download.microsoft.com/download/B/B/2/BB22098A-C071-415F-

  • 问题内容: 我正在尝试连接在docker容器中运行的pyodbc python脚本以登录到MSSQL数据库,我尝试了各种docker文件,但无法建立连接(在扩建docker或python尝试连接时失败),是否有人使用pyodbc有工作的dockerfile: Dockerfile: 要求 应用程序 构造容器docker build -t sqltest。 输出: 问题答案: 需要运行: 需要添加一