简单查询需要很长时间
当我在DBeaver中首次执行查询时,最多可能需要10-15秒才能显示结果。在SQLDeveloper中,那些查询只需要几分之一的时间。简单查询需要很长时间
例如: 简单的 “选择从表1列1” 语句
DBeaver:2006ms, 的SQLDeveloper:306ms
实施例2(约其他方式;因此世界上没有服务器端缓存): 简单“选择表2列1” 语句
的SQLDeveloper:252ms, DBeaver:1933ms
DBeavers状态框说:
- 取结果集
- 发现属性COLUMN1
- 查找属性COLUMN1
- 晚绑定属性colummn1
2,3和4使用的大多数的查询执行时间。
我使用的是Oracle 11g,SQLDeveloper 4.1.1.19和DBeaver 3.5.8。
见http://dbeaver.jkiss.org/forum/viewtopic.php?f=2&t=1870
可能是什么原因?
DBeaver在查询中查找与对象相关的一些元数据。
上的Oracle数据库,它查询目录表,如
- SYS.ALL_ALL_TABLES/SYS.ALL_OBJECTS - 只有一次连接后,在第一个查询您执行
- SYS.ALL_TAB_COLS/SYS.ALL_INDEXES/SYS.ALL_CONSTRAINTS/... - 我相信每次查询一个以前没有使用的表。
版本3.6.10引入了一个选项来启用/禁用这些查询中使用的提示。禁用提示对我有很大的影响。该选项位于连接编辑对话框的Oracle Properties选项卡中。有关更多信息,请参阅issue 360 on dbeaver's github。
谢谢!我昨天看到了票,但是因为它是针对3.7版本发布的,所以我不得不等待。很好,它终于被解决了。 –
可了解的最佳方式是perfom的database trace
执行过一段时间的查询,以消除缓存效果。
比两个IDE中重复以下步骤
激活跟踪
ALTER SESSION SET tracefile_identifier = test_IDE_xxxx;
alter session set events '10046 trace name context forever, level 12'; /* binds + waits */
提供的XXXX识别测试。你会看到这个字符串作为跟踪文件名的一部分。
使用级别12查看等待事件和绑定变量。
运行查询
关闭conenction
这重要的是不要追查其他的东西。
检查两个跟踪文件上看到:
进行什么语句
什么行数是牵强
什么时候在DB
是经过其余时间客户端(IDE)负责
这应该为您提供足够的证据要求,如果一个IDE行为比其它的不同,或者简单发表的声明DB是不同的。
我投票结束这个问题,因为我们不是DBeaver技术支持。如果您发现该产品较慢,请使用另一个产品,或者提交一个错误。 – Mat
我并不是要求修复这个错误,如果它是一个。我在问是否有人经历过这件事,如果有人知道原因。 –
这不是一个编程问题。如果您想讨论这一点,请使用聊天功能。 – Mat