以下查询的执行速度截然不同.第二个比第一个快完成几个数量级.
SELECT * FROM A INNER JOIN B ON A.X=B.Y WHERE B.Z=1
SELECT * FROM A INNER JOIN (SELECT * FROM B) ON A.X=B.Y WHERE B.Z=1
Run Code Online (Sandbox Code Playgroud)
如果有人会写出这是为什么会很好.该数据库是HSQLDB有JDBC.
附加信息:版本HSQLDB是2.3.2.并且列AX被索引但列BY不是.
如果我使用适用于 Java8 的 AdoptOpenJDK HotSpot 构建,我可以使用 VisualVM 监控应用程序。如果我使用 OpenJ9 版本,VisualVM 会显示错误“无法检测到本地应用程序”。
有没有人让 VisualVM 与 OpenJ9 一起工作?
我想过滤名称,X组合永远不是X = Y让我们假设下表:
*Name* *X* *Y*
A 2 1
A 2 2 <--- fulfills requirement for Name=A, X=2
A 10 1
A 10 2
B 3 1
B 3 3 <--- fulfills requirement for Name=B, X=3
B 1 1 <--- fulfills requirement for Name=B, X=1
B 1 3
Run Code Online (Sandbox Code Playgroud)
所以我想返回组合Name = A,X = 10,其中X = Y永远不为真.这是我的方法(在语法上不正确)
SELECT *
FROM TABLE
WHERE NAME
, X NOT IN (SELECT DISTINCT NAME
, X
FROM TABLE
WHERE X=Y)
Run Code Online (Sandbox Code Playgroud)
我的问题是where语句无法处理多个列.有谁知道如何做到这一点?
我想创建一个没有确定/取消按钮的对话框。我知道如果你重写 createButton 方法,这可以实现。
如果根本不需要按钮栏,您如何覆盖 createButtonBar 方法以返回 null?这将节省一些代码。
sql ×2
adoptopenjdk ×1
buttonbar ×1
dialog ×1
distinct ×1
hsqldb ×1
jface ×1
openj9 ×1
optimization ×1
visualvm ×1