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

SqlExceptionHelper:具有聚集的列存储索引的表不支持游标

董和泽
2023-03-14
问题内容

我正在尝试从DWH SQL Server表中导入数据,该表使用Clustered Columnstore
Index到kuduthrough中flume。但是,在我的自定义flume源从数据库中检索到一定数量的行之后,会发生此异常:

SqlExceptionHelper:具有聚集的列存储索引的表不支持游标

我使用的是JDBC SQL Server驱动程序类型4,显然,它使用游标来迭代结果集。因此,我尝试将提取大小设置为查询所限制的数字,但没有任何变化。

如何停止JDBC驱动程序使用游标,从而将所有行导入kudu表中?

提前致谢。


问题答案:

尝试selectmethod=direct在连接属性中进行设置。资料来源:

如果设置为direct(缺省值),则数据库服务器在响应查询时以单个响应的形式将完整结果集发送给驱动程序。
如果请求的结果集类型是仅转发结果集,则不会创建服务器端数据库游标
。通常,驱动程序不缓存响应。使用此方法,驱动程序必须在提交另一个查询之前处理对查询的整个响应。如果提交了另一个查询(例如,在同一连接上使用不同的语句),驱动程序将在提交第二个查询之前缓存对第一个查询的响应。通常,直接方法的性能优于游标方法。

当然,您需要将结果集定义为FORWARD_ONLY才能保证这一点。



 类似资料:
  • 问题内容: 我似乎无法进行代码优先迁移来创建SQL Azure数据库。 它总是抱怨SQL Azure缺少对没有聚簇索引的表的支持,而且我找不到周围的方法来创建数据库。 注意: 我用来在第一次创建数据库时创建更改跟踪表,因为显然它并不能为您做到这一点 如果我尝试`Update-Database,我会得到 未创建数据库。 更新: 我从头开始,并按照本指南启用了自动迁移(对数据库进行了刮擦,并从一个不存

  • 问题内容: 当我查看特定查询的执行计划时,我发现我的成本的77%在聚簇索引查找中。 我使用聚集索引的事实是否意味着我不会因为输出的列而看到性能问题? 对我来说,创建一个非聚集版本并包含所有正在输出的列会更好吗? 更新:聚集索引使用组合键。不知道这是否有所作为。 问题答案: 使用非聚集索引上的包含列的原因是为了避免对聚集数据进行“书签查找”。问题是,如果SQL Server _理论上可以_使用特定的

  • 在证书链验证期间,我需要将自定义的自签名根证书标记为受信任的,总的来说,我希望尽可能依赖系统API。 我创建了一个临时内存存储。 然后我将自定义根证书放入存储中。 CertGet证书链MSDN留档表示 HadAdditional存储任何附加存储的句柄,以搜索支持证书和证书信任列表(CTL)。 据我所知,如果我用根证书创建一个CTL并将其放置到存储中,CertGet证书链将信任它。因此,我在分配的缓

  • 问题内容: 查看执行计划,我在输出列表中看到“列A”。该操作是对非聚集索引的索引扫描:“ IX_name” 当我看到此索引的定义时。在“索引键”列或“包含”列中都看不到“ A列”。 如何使用非聚集索引来输出索引中不存在的列。它不应该在表或其他带有“ A列”的索引上使用“表扫描”。 问题答案: 如果表本身是集群1,那么所有二级索引都包含集群键2的副本(该键确定集群表中行的物理顺序)。 原因:群集表中

  • 问题内容: “使用的表类型不支持SPATIAL索引” 当我运行包含“ contains”关键字的查询时,我在MySQL中收到此错误。如何使表支持“空间索引”。查询是 从包含(列,“ 1”)的表中选择* 问题答案: Mysql仅通过* .myisam表(即ISAM引擎)支持空间索引。链接:http://dev.mysql.com/doc/refman/5.0/en/creating-spatial-

  • 我将此表数据导入phpmyadmin: 我看到了这个错误: -- --表 -- 更改表添加主键(),添加FULLTEXT KEY(),添加FULLTEXT KEY();MySQL说:文档 #1214-使用的表类型不支持全文索引 在localhost中,我为title和long_desc添加了,这样就行了,但当我导入时,我看到了这个错误。如何修复此错误?