我正致力于 java rmi 应用程序的性能调优 使用OQL执行以下查询:
select tpoint.host.value.toString() from sun.rmi.transport.tcp.TCPEndpoint tpoint
where (tpoint.host!=null && tpoint.csf!=null)
以上查询成功编译了 JVisualVM ,其中包含一些记录,然后出现此错误: -
结果太多了。请改进您的查询。
相同的查询无法在 Eclipse-MAT 中执行。
之后,从&& tpoint.csf!=null
删除above query
,它在 Eclipse-MAT 中编译得很好。与JVisualVM相比,它还需要非常短的时间并显示所有记录。
我无法在Eclipse-MAT中找到使用&& operator
的正确语法。
面对很难找到 Eclipse-MAT 的良好OQL参考值,我们非常感谢好的参考。
提前致谢...
答案 0 :(得分:2)
而不是&&运算符,您可以使用“和”来执行组合查询。似乎MAT只支持'和''或''不',而不是'&&' '||' '^'。
以下是MAT中正在运行的OQL查询。
SELECT tpoint.host.value.toString() FROM sun.rmi.transport.tcp.TCPEndpoint tpoint WHERE ((tpoint.host != null) and (tpoint.csf != null))
答案 1 :(得分:1)
MAT-Eclipse OQL和JVisualVM OQL之间存在语法上的差异。
在撰写本答案时,与MAT-Eclipse相比,可以在JVisualVM OQL(AFAIK)中编写更复杂的查询。
唯一的缺点是,JViualVM查询的响应时间非常大,而且响应不包括所有记录。
如果MAT开发人员在帮助内容中提供MAT OQL查询(groupby,子查询,字符串操作运算符)的良好文档,那将是很棒的。