2743711 - Possible Unexpected Results When Using Query With an ORDER BY Clause on a Rowstore Table With a Parallelized Search on a Cpbtree-Type Index
Version 14 from May 28, 2019 in English
Show Changes
Symptom
A query on a rowstore table containing an ORDER BY clause can potentially lead to unexpected results in situations where the query is internally executed in a way that a search on a cpbtree-typed index is performed in a parallelized manner.
Other Terms
SAPHANA, HANA, wrong result, NO_INDEX_SEARCH, SELECT FROM
Reason and Prerequisites
Reason:
Due to a programming error in SAP HANA, the parallel execution might be handled incorrectly, which can potentially lead to unexpected results.
Affected Releases:
SAP HANA 1:
Revision = 122.21 (SPS12)
SAP HANA 2:
Revision = 024.07 (SPS02)
Revisions 034.00 and 035.00 (SPS03)
Prerequisites:
All of the following conditions need to be met:
A query is executed on a rowstore table with a cpbtree-typed index
The query is parallelized
An ORDER BY clause is used
To check how many cpbtree-typed indexes exist for a specific table, you can execute the following command:
SELECT count(*) FROM INDEXES WHERE SCHEMA_NAME = AND TABLE_NAME =
and INDEX_TYPE LIKE '%CPBTREE%'
To check if the query execution involved a parallelized search on a cpbtree-typed index, you can:
Create a PlanViz for the query, e.g. as described in SAP Note 2073964
In the PlanViz, search for nodes containing Cpbtree in their name
If you find any, check if their parent node owns multiple nodes with cpbtree in their name
This issue is not restricted to either SAP applications or custom code - both can be affected, as soon as the above conditions are met.
Solution
Apply one of the following SAP HANA revisions:
SAP HANA 1:
Revisions >= 122.22 (SPS12)
SAP HANA 2:
Revisions >= 024.08 (SPS02)
Revisions >= 036.00 (SPS03)
or higher
or higher
Workaround:
As a workaround you can use one of the following:
Add hint NO_INDEX_SEARCH to the query:
To pin the SQL Plan of the statement with the hint, see SAP Note 2222321 for details.
To configure a statement hint for the query, see SAP Note 2400006 for details.
You can disable the parallel execution of row engine globally using the following SQL statement:
ALTER SYSTEM ALTER CONFIGURATION ('indexserver.ini', 'SYSTEM' ) SET ('row_engine', 'parallel_query_execution') = 'false' WITH RECONFIGURE;
Please note that this can have severe performance impact on the whole system. You can revert the setting using the following SQL statement:
ALTER SYSTEM ALTER CONFIGURATION ('indexserver.ini', 'SYSTEM' ) UNSET ('row_engine', 'parallel_query_execution') WITH RECONFIGURE;
Disclaimer
The SAP HANA configuration parameter [row_engine] parallel_query_execution is an internal parameter and may only be used in the context of this SAP Note. Using such a parameter requires that the SAP HANA system has the revision specified in the SAP Note, the described error situation has occurred. Using internal parameters outside of this given scope is not supported.
Software Components
Software Component From To And Subsequent
HDB 1.00 1.00
HDB 2.00 2.00
Support Package Patches
Software Component Support Package Patch Level Download
SAP HANA DATABASE 1.00 SP122 000022
SAP HANA DATABASE 2.0 SP024 000008
SAP HANA DATABASE 2.0 SP036 000000
References
This document refers to
Number Title
2400006 FAQ: SAP HANA Statement Hints
2222321 How-To: Pinning SAP HANA SQL Plans
2073964 Create & Export PlanViz in HANA Studio
2628684 Known issues detected in SAP HANA 2 SPS03
2525424 Known issues detected in SAP HANA 2 SPS02
2380229 SAP HANA Platform 2.0 - Central Note
2325090 Known issues detected in SAP HANA 1 SPS12
1514967 SAP HANA: Central Note
This document is referenced by
Number Title
2142945 FAQ: SAP HANA Hints
2222121 SAP HANA Wrong Result Sets
2655761 SAP S/4HANA - restrictions and recommendations regarding specific revisions of SAP HANA database for use in SAP S/4HANA
2735060 SAP HANA 2.0 SPS 03 Database Revision 036
2746759 SAP HANA 2.0 SPS 03 Database Revision 037
2728470 SAP HANA 2.0 SPS 02 Database Maintenance Revision 024.08
Languages
日本語 (Machine Translation)
Português (Machine Translation)
- 启动PL/SQL Developer 报字符编码不一致错误 Database character set (AL32UTF8) and Client character set (ZHS16GBK) are different. Character set conversion may cause unexpected results. Note: you can set the client
今天写hibernate时候遇到一些异常 代码: 出现异常情况: 出现以上原因是Session关闭 如果不是使用的SessionFactory.getSession()来获得Session. 而是使用 ...
- oracle_union_operator
SQL: UNION Operator This SQL tutorial explains how to use the SQL UNION operator with syntax and exa ...
- DiG HOWTO How to use dig to query DNS name servers.
Contents Introduction Understanding the default output What can I discover? How do I … Get a short a ...
- Inside TSQL Querying - Chapter 1. Logical Query Processing
Logical Query Processing Phases Summary (8) SELECT (9) DISTINCT (11) <TOP_specification> <s ...
- SQL Fundamentals:Restricting and Sorting Data限制和排序数据(FROM-WHERE-SELECT-ORDER BY)
SQL Fundamentals || Oracle SQL语言 控制操作的显示列:基本的SELECT语句 控制行:限定查询和排序显示 分组统计查询 限定查询:WHERE字句 排序显示:ORDER B ...
- LaTeX排版设置图表的位置 Positioning images and tables
Positioning images and tables LATEX is an editing tool that takes care of the format so you only hav ...
- What is the bitmap index?
示例执行计划: postgres ; QUERY PLAN ---------------------------------------------------------------------- ...
- Solr搭建大数据查询平台
参考文章:http://www.freebuf.com/articles/database/100423.html 对上面链接的补充: solr-5.5.0版本已被删除,新url:http://mir ...
- 6.Type and Member Basics
1.The Different Kinds of Type Members 1.Constants:a symbol that identifies a never-changing data val ...
随机推荐
- 【Spring】基于@Aspect的AOP配置
Spring AOP面向切面编程,可以用来配置事务.做日志.权限验证.在用户请求时做一些处理等等.用@Aspect做一个切面,就可以直接实现. · 本例演示一个基于@Aspect的小demo 1. ...
- 使用ffmpeg.exe进行转码参数说明
使用ffmpeg.exe进行转码参数说明 摘自:https://blog.csdn.net/coloriy/article/details/47337641 2015年08月07日 13:04:32 ...
- RabbitMQ 入门教程(PHP版) 第六部分:远程调用(RPC)
在云计算环境中,很多时候需要用它其他机器的计算资源,把一部分计算任务分配到其他节点来完成.RabbitMQ 如何使用 RPC 呢?下面将会通过其它节点完成斐波纳契示例. 流程图  当客户端启动时,它 ...
- Linux strace追踪命令详解
strace介绍 strace命令是一个集诊断.调试.统计与一体的工具,我们可以使用strace对应用的系统调用和信号传递的跟踪结果来对应用进行分析,以达到解决问题或者是了解应用工作过程的目的.当然s ...
- PAT 甲级 1070 Mooncake (25 分)(结构体排序,贪心,简单)
1070 Mooncake (25 分) Mooncake is a Chinese bakery product traditionally eaten during the Mid-Autum ...
- java 时间的原生操作和工具类操作
package com.xc.test.dateoperation; import org.apache.commons.lang3.time.DateFormatUtils; import org. ...
- pca数学原理(转)
PCA的数学原理 前言 数据的向量表示及降维问题 向量的表示及基变换 内积与投影 基 基变换的矩阵表示 协方差矩阵及优化目标 方差 协方差 协方差矩阵 协方差矩阵对角化 算法及实例 PCA算法 实例 ...
- 【编程基础】CppLint工具使用过程
前言 coding最好要形成一定的编程风格,一般常用的开源风格有google code style,可以使用cpplint工具检查是否符合该编程风格. 目录 1. linux系统使用过程: 2. wi ...
- vue-cli3使用vue-router 使用动态路由,在刷新页面时报错
刚发现的一个问题,在使用vue-cli3创建项目之后,使用动=动态路由,demo: { path: '/aa/:id', name: 'aa', component: aa }, 编程式路由: thi ...
- 04点睛Spring MVC 4.1-拦截器
转发地址:https://www.iteye.com/blog/wiselyman-2214292 4.1 拦截器 拦截器实现了对每一个请求处理之前和之后进行相关的处理,类似于Servlet的filt ...