SAP HANA Hint簡介

我發現Google和百度上關於HANA DB Hint的中文介紹比較少,因此就寫了這一篇。本文部份內容來自SAP note 2142945 – FAQ: SAP HANA Hints。sql

什麼是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。orm

  • 130480 Database hints in Open SQL for Oracle內存

  • 133381 Database hints in Open SQL for MS SQL Serverit

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

相關文章
相關標籤/搜索