灵活查询适用于 HANA DB,但不适用于 HSQL DB

Posted

技术标签:

【中文标题】灵活查询适用于 HANA DB,但不适用于 HSQL DB【英文标题】:Flexible query is working For HANA DB but not working in HSQL DB 【发布时间】:2018-07-06 07:11:57 【问题描述】:

我有以下灵活的搜索查询

 Select vt:code,vt:productcode,vw:code,vw:productcode from abcd AS vt JOIN wxyz AS vw ON vt:imeinumber = vw:ssnout  where vt:productcode != vw:productcode

在我的本地系统中,数据库是 HSQL,因此查询无法正常工作并处于等待状态,而在云服务器中,数据库是 HANA,因此它可以完美运行并给出准确的结果。

【问题讨论】:

【参考方案1】:

查询需要很长时间才能运行,可能是因为连接列 ssnout 上没有索引。

您可以使用正确的表名和列名,通过类似一击的语句创建索引。

CREATE INDEX idx_ssnout ON WZYZ(SSNOUT)

【讨论】:

【参考方案2】:

尝试使用 JOIN 而不是 INNER JOIN

SELECT vt.code,vt.productcode,vw.code,vw.productcode 

FROM 

  abcd AS vt JOIN wxyz AS vw ON vt.imeinumber = vw.ssnout 
 
WHERE vt.productcode != vw.productcode

【讨论】:

抱歉,在发帖时我已经写了 INNER JOIN ,但我只尝试使用 JOIN。另一件事是两个表都有一个巨大的记录,一个表有大约 57k 条记录,另一个有大约 20k 条记录。 您从 HAC 运行此查询时是否遇到任何错误? 是的,我已经尝试了上述查询。现在担心的是查询执行所花费的时间,大约需要 25-30 分钟,而在 hana 中,它会在 10 毫秒(毫秒)内给出结果。 所以现在语法是正确的。与云设置相比,在本地环境中需要更多时间,这取决于许多因素。 您可以针对确切的用例提出新问题,以便有人可以为您指出更好的查询或解决方案。

以上是关于灵活查询适用于 HANA DB,但不适用于 HSQL DB的主要内容,如果未能解决你的问题,请参考以下文章

为啥 django test --keep-db 适用于 postgres 数据库但不适用于默认 sqlite3

查询适用于 phpMyAdmin,但不适用于 Java [重复]

为啥 mysql 中的这个查询适用于该表,但不适用于该表的视图?

用于 DynamoDB 查询的 Python 代码适用于 v3.6,但不适用于 python 2.7

媒体查询适用于移动 Firefox,但不适用于移动 Chrome

MySQL 查询适用于 Workbench,但不适用于 C# 代码