共計 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 行業資訊頻道。