如何限制 DBeaver 数据编辑器以限制结果集大小?
Posted
技术标签:
【中文标题】如何限制 DBeaver 数据编辑器以限制结果集大小?【英文标题】:How can I limit DBeaver Data Editor to limit result set size? 【发布时间】:2020-03-04 13:47:01 【问题描述】:我知道默认值为 200,我们可以在“数据编辑器”部分的设置/首选项中对其进行配置,但似乎在所有结果都已从远程数据库获取到本地后才应用此过滤器。
如何在将请求发送到数据库本身之前限制这 200 个?
意思是,我想将 DBeaver 配置为将“Select * from... LIMIT 200”发送到远程,而不是向数据库发出“Select * from...”并在本地设置过滤器的 200 个结果数据库。
【问题讨论】:
【参考方案1】:通过选中“使用 SQL 限制提取大小”复选框,您应该会得到您想要的效果。
您可以通过查看dBeaver 执行日志中的查询来验证dBeaver 的行为方式是否符合您的预期。您将看到“LIMIT”已附加到您的查询中。
https://github.com/dbeaver/dbeaver/wiki/SQL-Editor#results-panel
可能值得注意的是,如果您想保证 LIMIT 始终选择设置数量的行。除了“使用 SQL 限制提取大小”之外,这两个选项都打开了,当您滚动数据并传递最后一行时,dBeaver 将重新运行完整的结果集。例如,当您第一次执行查询时,它将以“LIMIT 0, 200”运行,返回前 200 行。当您滚动超过第 200 行时,将执行一个新查询,其中包含“LIMIT 0, 400”。当您传递第 400 行时,将使用“LIMIT 0, 600”等运行新查询。
【讨论】:
这对我不起作用。我改为设置 Result Set Fetch Size = 0以上是关于如何限制 DBeaver 数据编辑器以限制结果集大小?的主要内容,如果未能解决你的问题,请参考以下文章
如何将 LEFT JOIN 限制为 SQL Server 中的第一个结果?
如何正确实现并发goroutine(和/或限制它们)以产生一致的结果?