灵活查询适用于 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