共计 1768 个字符,预计需要花费 5 分钟才能阅读完成。
本篇文章为大家展示了如何理解 SAP HANA Hint,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
什么是 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,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注丸趣 TV 行业资讯频道。