这可以在 Hsqldb 中设置最大行大小吗?

Posted

技术标签:

【中文标题】这可以在 Hsqldb 中设置最大行大小吗?【英文标题】:Is this possible to set the max row size in Hsqldb? 【发布时间】:2017-08-16 20:02:36 【问题描述】:

在 SQL Server 2016 中,limit is 8060。我想在 Hsqldb 中定义相同的值。

原因是我们的大查询由使用从 Hibernate 获取的大量 EAGER 的应用程序生成(我知道这是不好的做法)。这会导致查询包含来自不同连接表的大量行。

查看Hsqldb documentation,找到了一个方法getMaxRowSize,但是好像不能定义值:

HSQLDB 不施加“已知”限制。限制以记忆为准 和磁盘可用性;此方法总是返回 0。

这对我来说不是很好。但我在想这是否可以通过其他方式或通过“隐藏”功能实现。

【问题讨论】:

为什么不将 ddl 中所有列的总和保持在所需限制以下? 我要解决的问题是:在大(非常大)查询中,SQL Server 向我显示错误Cannot create a row of size 8575 which is greater than the allowable maximum row size of 8060.。当我在 Hsqldb 中运行相同的查询时,不会发生相同类型的错误。所以我试图在两个数据库中设置相同的限制 只是为了我的理解:为什么需要在 hsqldb 上模拟这个问题? 应用程序在生产/同源/测试环境中使用SQL Server,Hsqldb用于开发和集成/功能测试。如果测试能出这种问题就好了。 好的,我明白了。我无法回答您的问题,但您可以考虑使用单独的开发人员数据库、开发人员版本甚至文档图像形式的“真实”SQL 服务器:blogs.msdn.microsoft.com/sqlserverstorageengine/2017/02/21/… 【参考方案1】:

您最好的选择是对每个字符或二进制列设置限制,以确保行的总数不超过 SQL Server 的最大行大小。 SQL Server 和 HSQLDB 都强制执行这些限制。

【讨论】:

嗨!我更新了我的问题以提供更多信息。当您使用来自不同联接表的大量列进行大型查询时,此限制会有所帮助。在我们的场景中,限制单个表中的列无济于事。

以上是关于这可以在 Hsqldb 中设置最大行大小吗?的主要内容,如果未能解决你的问题,请参考以下文章

在 React 本机应用程序中设置文本的最大大小

在 Linux 服务器中设置 HSQLDB

GCS 签名 URL:我可以设置上传的最大文件大小吗? [复制]

如何在 PyCharm 中设置最大行长?

Android中TextView中的字体大小能设置吗

在休眠配置文件中设置 HSQLDB 数据类型?