oracle和金仓区别,个人睬坑
1、select中使用相关子查询oracle中正常执行效率在金仓中严重影响性能。以下是出现问题原SQL修改之后可在金仓执行效率好但在oracle效率不好思路将”select相关子查询“修改成left join多表连接。注意分页情况时一定使用order by排序。如果查询的是视图视图中sql使用了order by但是查询视图外的sql没使用那么分页查询在oracle中不影响效率。但是在金仓严重影响需要在查询视图后加上order by原SQL执行语句的抛错\n### Error querying database. Cause: com.kingbase8.util.KSQLException: An I/O error occurred while sending to the backend.\n### The error may exist in URL [jar:file:/home/scms/plis/lnplis/lnplis-2.0.0.jar!/BOOT-INF/lib/ruoyi-lnplis-0.0.1.jar!/mapper/PurchaseStatisticsQueryMapper.xml]\n### The error may involve com.ultra.plis.statistics.reportform.purchase.mapper.PurchaseStatisticsQueryMapper.findFrameContractInfoForMyBatis-Inline\n### The error occurred while setting parameters\n### SQL: SELECT * FROM ( SELECT TMP_PAGE.*, ROWNUM PAGEHELPER_ROW_ID FROM ( select * from table b where 11 ) TMP_PAGE) WHERE PAGEHELPER_ROW_ID ? AND PAGEHELPER_ROW_ID ?\n### Cause: com.kingbase8.util.KSQLException: An I/O error occurred while sending to the backend.\n; An I/O error occurred while sending to the backend.; nested exception is com.kingbase8.util.KSQLException: An I/O error occurred while sending to the backend.2、金仓对多表连接的条件中使用or性能不好所以需要把or拆分原sql优化后3、在kingbase中抛错For queries with named parameters you need to ust provide names for method paremeter在oracle中不抛错这个问题的根本原因是KingbaseES对JPA规范的要求更严格而Oracle的驱动相对宽松。写法问题不能省略Param(“orderDetailIds”) 否则在KingbaseES抛错。RepositorypublicinterfaceOrderDetailDaoextendsJpaRepositoryOrderDetail,String,JpaSpecificationExecutorOrderDetail{Query( from OrderDetail where id in (:orderDetailIds) and (deleteFlag 0 or deleteFlag is null))ListOrderDetailfindOrderDetailsByIdIn(Param(orderDetailIds)ListStringorderDetailIds);}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2550631.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!