• 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技术文章。

  • 相关阅读:
    免备案 国外服务器 vps 推荐以及优惠码
    VSCode 实时预览 HTML 页面
    VPS 上安装 Nginx 就是这么简单
    Thinkphp 5 验证码无法正常显示的排错以及解决方案 【已解决】
    Composer 安装 topthink/think-captcha 时报错 requires topthink/framework ^6.0.0 【已解决】
    Linux ps命令
    MySQL 查询不区分大小写的问题以及编码格式问题
    Cyberduck 小黄鸭 跨平台的 FTP 软件
    MySQL 存储过程 详解
    php 四舍五入保留两位小数,自动补齐0
  • 原文地址:https://www.cnblogs.com/sap-jerry/p/8433421.html
Copyright © 2020-2023  润新知