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技術文章。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2150990/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SAP S/4 HANA 1809簡介
- SAP HANA 中的 SLT 簡介
- SAP HANA Delivery Unit概念簡述
- SAP S/4HANA OData Mock Service 介紹Mock
- SAP HANA,S/4HANA 和 SAP BTP 的辨析
- SAP S/4HANA Cross Selling機制介紹ROS
- SAP S/4HANA Cloud SDK 入門介紹Cloud
- SAP Fiori 簡介
- SAP AppGyver 簡介APP
- SAP CAR簡介
- SAP S/4HANA中的採購簡化
- SAP S/4HANA extensibility擴充套件原理介紹套件
- SAP Event Mesh 簡介
- SAP ECC,SAP HANA和SAP S/4HANA之間有什麼區別?
- SAP S/4HANA New Simplified Data Model (NSDM) 模型介紹模型
- SAP F&R簡介
- SAP HANA Cloud 學習教程之一: 如何在 SAP BTP 上建立 SAP HANA Cloud 例項Cloud
- SAP HANA和區塊鏈區塊鏈
- SAP HANA Schemas 和 HDI ContainersAI
- SAP HANA分散式解決方案分散式
- SAP HANA命令列方式恢復命令列
- 什麼是 SAP HANA XS JavaScriptJavaScript
- SAP S4HANA BP初探
- SAP S/4HANA CDS View的訪問控制實現:DCL介紹View
- SAP Fiori Launchpad url 引數 sap-app-origin-hint 的含義APP
- Generate Distribution Model from SAP ERP to SAP EWM in SAP S/4Hana
- SAP UI5 Tools 使用簡介UI
- SAP Kyma(Extension Factory on SAP Cloud Platform)的架構簡介CloudPlatform架構
- 如何使用SAP HANA Vora規劃HANA大資料戰略?LH大資料
- SAP S/4HANA Cloud 系統整合的一些場景介紹Cloud
- 超詳細SAP HANA JOB全解析
- SAP HANA資料建模祕籍XV
- 在 SAP BTP 上體驗 SAP HANA Cloud 試用版本Cloud
- SAP Cloud for Customer Price-計價簡介Cloud
- 在 SAP Business Application Studio 裡訪問 SAP HANA Cloud 例項APPCloud
- 什麼是 SAP C/4HANA Foundation
- SAP HANA與BWA的異同點CB
- SAP S4HANA LTMC Practice - the first shot!
- SAP 前端技術的演化史簡介前端