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)

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的更多相关文章

  1. 启动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. 而是使用 ...

  2. oracle_union_operator

    SQL: UNION Operator This SQL tutorial explains how to use the SQL UNION operator with syntax and exa ...

  3. 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 ...

  4. Inside TSQL Querying - Chapter 1. Logical Query Processing

    Logical Query Processing Phases Summary (8) SELECT (9) DISTINCT (11) <TOP_specification> <s ...

  5. SQL Fundamentals:Restricting and Sorting Data限制和排序数据(FROM-WHERE-SELECT-ORDER BY)

    SQL Fundamentals || Oracle SQL语言 控制操作的显示列:基本的SELECT语句 控制行:限定查询和排序显示 分组统计查询 限定查询:WHERE字句 排序显示:ORDER B ...

  6. LaTeX排版设置图表的位置 Positioning images and tables

    Positioning images and tables LATEX is an editing tool that takes care of the format so you only hav ...

  7. What is the bitmap index?

    示例执行计划: postgres ; QUERY PLAN ---------------------------------------------------------------------- ...

  8. Solr搭建大数据查询平台

    参考文章:http://www.freebuf.com/articles/database/100423.html 对上面链接的补充: solr-5.5.0版本已被删除,新url:http://mir ...

  9. 6.Type and Member Basics

    1.The Different Kinds of Type Members 1.Constants:a symbol that identifies a never-changing data val ...

随机推荐

  1. 一、postman简介

    一.场景 1.开发接口的时候需要快速的调用接口,以便调试 2.测试的时候需要非常方便的调用接口,通过不同的参数去测试接口的输出 3.这些接口调用是需要保存下来的反复运行的 4.在运行过程中如果有断言( ...

  2. 【Python】使用POST方式抓取有道翻译结果

    1.安装requests库 2.打开有道翻译,按下F12,进入开发者模式,输入我爱青青,点击Network,再点击XHR 3.撰写爬虫 import requestsimport json # 使用有 ...

  3. [转]Winform打包工具SetupFactory 9 的使用

    写了个WinForm的小程序..以前没打过包..只是直接把Bin里的东西复制出来使用..自己使用是足够.但是发给别人毕竟不太好看(不牛逼)..所以就想着打包.. Vs2012自带的有打包的功能..相信 ...

  4. Spring cloud微服务安全实战-4-6搭建OAuth2资源服务器

    认证服务器已经搭建好了. 可以通过认证服务器拿到令牌 下面改造订单服务,让它可以用这个令牌. 争对订单服务要做三个事, 1.让订单服务知道它自己是Oauth协议里面的资源服务器.,它知道这个事后,它才 ...

  5. LwIP应用开发笔记之一:LwIP无操作系统基本移植

    现在,TCP/IP协议的应用无处不在.随着物联网的火爆,嵌入式领域使用TCP/IP协议进行通讯也越来越广泛.在我们的相关产品中,也都有应用,所以我们结合应用实际对相关应用作相应的总结. 1.技术准备 ...

  6. adb中文乱码问题怎么解决?

    1.chcp 65001      执行完命令后 2.在cmd命令弹出的终端页面,右键单击属性设置成字体Lucida Console ,设置完成就解决了 adb 中文乱码问题

  7. Freemarker讲解

    FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出.FreeMarker与Web容器无关,即在Web运行时,它并不知道Servlet或HTTP.它不仅可以用作表现层的实现 ...

  8. python 爬虫实例(三)

    问题描述 爬取博客园的首页数据URL[https://home.cnblogs.com/blog/page/1/],之后写到自己的Excel里面 环境: OS:Window10 python:3.7 ...

  9. Appium移动自动化测试-----(七)Desired Capabilities

    Desired Capabilities Desired Capabilities 在启动 session 的时候是必须提供的. Desired Capabilities 本质上是以 key valu ...

  10. models模型层

    ORM简介 查询数据层次图解:如果操作mysql,ORM是在pymysq之上又进行了一层封装 MVC或者MTV框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需 ...