zoukankan      html  css  js  c++  java
  • SAP HANA Hint简介

    我发现Google和百度上关于HANA DB Hint的中文介绍比较少,所以就写了这一篇。本文部分内容来自SAP note 2142945 – FAQ: SAP HANA Hints。

    什么是SAP HANA Hint

    HANA Hint是SAP14 HANA数据库服务器执行的一种指令。HANA Hint会影响一个数据库请求的生成和处理的方式,但绝不会改变这些数据库请求的响应结果。通俗的说,如果你不用Hint, 执行某条SQL语句查询到了N条记录。那么用了Hint,查询结果仍然是N条。HANA Hint通常用来进行HANA的性能调优,比如对执行某条SQL语句CPU或者内存占用率的优化。

    SAP HANA Hint有下列几种类型:

    1. SAP HANA DB Hints

    直接用于HANA Studio的SQL语句里。通过select * from hints能够拿到当前版本的HANA支持的所有Hint. 在我用的HANA服务器上总共216个:

    用法: 如下图红色下划线所示:

    如果您的Netweaver用的数据库是HANA,而您又想把这些Hint用在ABAP Open SQL里,那么可以使用语法: %_HINTS HDB后跟Hint的具体内容。例如下图:

    如果Netweaver的版本小于740, 需要将HDB替换成ADABAS。

    2. SAP ABAP Hints

    对于那些Netweaver用的数据库是非HANA DB的场景,需要使用数据库提供商特定的Hint。具体细节可以查询对应的SAP note。

    • 130480 Database hints in Open SQL for Oracle

    • 133381 Database hints in Open SQL for MS SQL Server

    • 150037 Database hints in Open SQL for DB6 (DB2 UDB)

    • 152913 Database hints in Open SQL for Informix

    • 162034 DB2/390: Database hints in Open SQL

    • 485420 iSeries: Database hints for Open SQL/Native SQL

    • 652096 Database hints in Open SQL for SAPDB / MaxDB

    • 1702338SYB: Database hints in Open SQL for Sybase ASE

    在ABAP的OPEN SQL里使用方法类似,把 %_HINTS后的HDB替换成指定数据库提供商的代号,再加上数据库提供商特定的Hint.

    ABAP支持的数据库提供商的代号在ABAP help里能查到。

    3. SAP HANA Calculation View Hints

    • ce2qo_disable_unfolding
    • ce2qo_for_nested_views_with_sql_execution
    • enable_star_join_ceqo
    • ce2qo_for_unit_conversion
    • qo_pop_hints
    • query_level_sql_hints

    这种类型的Hint用于HANA Studio里创建的Calculation View,而非ABAP Development Tool创建的CDS(Core Data Service) View. 我没有用过,没法举例。

    更多细节请查询SAP note 2509161。

    常用的HANA Hint介绍

    详细列表能在note 2142945的正文里找到,这里就不赘述了。值得一提的是,并没有一个统一的最佳实践指明了诸如”应用某某hint就一定能提高性能”。Hint的使用需要根据具体的SQL语句来分析,没办法一概而论。

    最极端的例子就是这对互斥的Hint: CS_JOIN 和NO_CS_JOIN, 它们分别用于建议HANA数据库采用或者不采用Column Store Join来响应数据请求。

    我的一个实际工作中的例子:这个简单的报表从HANA数据库中读取100条描述信息包含了文本”2017-12-11″的服务订单:

    总共花费了15秒钟:

    而当我加上NO_CS_JOIN的hint之后,

    性能提升到不到1秒即完成了数据查询。

    在note 2142945的末尾还包含很多其他有用的note。将来如果工作需要,我会将这些note陆续翻译成中文并加上自己的理解。

    希望本文能帮助您对SAP HANA Hint有一个最基本的认识。您可以关注我的微信公众号”汪子熙“获得我的更多原创SAP技术文章。

  • 相关阅读:
    hiho一下 第115周:网络流一•Ford-Fulkerson算法 (Edmond-Karp,Dinic,SAP)
    hiho一下 第二周&第四周:从Trie树到Trie图
    2016 acm香港网络赛 C题. Classrooms(贪心)
    2016 acm香港网络赛 F题. Crazy Driver(水题)
    2016 acm香港网络赛 B题. Boxes
    系统吞吐量(TPS)、用户并发量、性能测试概念和公式(转发)
    使Eclipse下支持编写HTML/JS/CSS/JSP页面的自动提示。
    Tomcat 系统架构与设计模式,第 2 部分: 设计模式分析
    Tomcat 系统架构与设计模式,第 1 部分: 工作原理
    Tomcat源码分析
  • 原文地址:https://www.cnblogs.com/sap-jerry/p/8433421.html
Copyright © 2011-2022 走看看