天天看點

SAP HANA Database Explorer 裡的 SQL 語句如何排錯 trouble shoot

調試器可用于幫助查找過程、函數或匿名塊中的問題。 以下步驟示範了如何使用調試器來調試過程。

選中某個存儲過程,右鍵,選擇 Open for debugging:

SAP HANA Database Explorer 裡的 SQL 語句如何排錯 trouble shoot

從調試器附加選項對話框中,確定選擇了 SQL 控制台連接配接。

SAP HANA Database Explorer 裡的 SQL 語句如何排錯 trouble shoot

通過單擊行号旁邊的在過程中設定斷點。 行号旁邊将出現一個複選标記,表示已設定斷點。

SAP HANA Database Explorer 裡的 SQL 語句如何排錯 trouble shoot

在資料庫浏覽器中右鍵單擊需要調試的存儲過程,然後選擇 Generate Call Statement 或 Generate Call Statement with UI。

SAP HANA Database Explorer 裡的 SQL 語句如何排錯 trouble shoot

該過程的調用語句将在新的 SQL 控制台中打開。 提供輸入參數值,例如 10,然後運作該語句。

SAP HANA Database Explorer 裡的 SQL 語句如何排錯 trouble shoot

當斷點觸發時,執行将暫停。

SAP HANA Database Explorer 裡的 SQL 語句如何排錯 trouble shoot

可以檢查使用的任何變量的目前值。 可以通過單擊上面突出顯示的編輯按鈕來修改某些局部和全局變量類型的值。

SAP HANA Database Explorer 裡的 SQL 語句如何排錯 trouble shoot

可以使用調試器頂部的導航圖示繼續執行。 可以使用分離圖示停止調試會話。

SAP HANA Database Explorer 裡的 SQL 語句如何排錯 trouble shoot

右鍵菜單裡,還能使用 Report Code Coverage 檢視代碼執行覆寫率:

SAP HANA Database Explorer 裡的 SQL 語句如何排錯 trouble shoot

代碼覆寫率報告顯示命中的語句數。

SAP HANA Database Explorer 裡的 SQL 語句如何排錯 trouble shoot

該報告還直覺地顯示了命中的語句和未命中的語句。

SAP HANA Database Explorer 裡的 SQL 語句如何排錯 trouble shoot

SQLScript analysis

SQLScript 代碼分析器可用于識别訓示代碼品質、安全性或性能問題的模式。

SAP HANA Database Explorer 裡的 SQL 語句如何排錯 trouble shoot

效果如下:

SAP HANA Database Explorer 裡的 SQL 語句如何排錯 trouble shoot

輕按兩下某個問題将打開另一個包含該過程的 SQL 的頁籤,該問題将突出顯示。

SAP HANA Database Explorer 裡的 SQL 語句如何排錯 trouble shoot

Explain plan

解釋計劃以表格形式提供編譯後的計劃,而不執行它。 當很難在不引起問題的情況下重制問題時,這在分析某些情況時非常有用。

SAP HANA Database Explorer 裡的 SQL 語句如何排錯 trouble shoot

SQL Analyzer

SQL 分析器提供了如何執行分析的 SQL 語句的圖形視圖,這可以提供對查詢執行的更多見解。 最新版本可用作 Visual Studio Code 的擴充或 SAP Business Application Studio 中的附加擴充 (SAP Performance Tools)。 可以在 SAP HANA 資料庫浏覽器中生成一個 .plv 檔案,然後可以在 SQL Analyzer 中打開該檔案。 内部部署 SAP HANA 資料庫浏覽器、内部部署 SAP HANA 駕駛艙以及 SAP HANA 工作室中還包含 SQL 分析器的先前版本。

SAP HANA Database Explorer 裡的 SQL 語句如何排錯 trouble shoot

可以在 Visual Studio Code 裡安裝對應的插件來檢視分析檔案:

SAP HANA Database Explorer 裡的 SQL 語句如何排錯 trouble shoot

顯示前 5 個主要運算符、前 10 個關鍵路徑運算符、編譯和執行 SQL 語句所花費的時間、峰值記憶體、結果記錄數和通路表的資訊。

SAP HANA Database Explorer 裡的 SQL 語句如何排錯 trouble shoot

切換到 PLAN GRAPH 頁籤以直覺地檢視查詢執行的詳細資訊。

SAP HANA Database Explorer 裡的 SQL 語句如何排錯 trouble shoot

SQL trace

在調試問題或識别特定應用程式正在使用的 SQL 語句時,SQL 跟蹤會很有幫助。 以下步驟示範了啟用 SQL 跟蹤,然後使用 SAP HANA 資料庫資料總管檢視生成的跟蹤檔案的示例。

右鍵菜單裡通過 Show overview 進行查詢:

SAP HANA Database Explorer 裡的 SQL 語句如何排錯 trouble shoot

為標明的資料庫顯示不同的資訊和統計資料。

SAP HANA Database Explorer 裡的 SQL 語句如何排錯 trouble shoot

要确定為填充概覽的各個字段(例如使用的記憶體)而執行的 SQL 請求,請通過在 SQL 控制台中運作以下 SQL 語句來啟用 SQL 跟蹤。

SAP HANA Database Explorer 裡的 SQL 語句如何排錯 trouble shoot

ALTER SYSTEM ALTER CONFIGURATION ('indexserver.ini', 'SYSTEM') SET ('sqltrace', 'trace') = 'on', ('sqltrace', 'application') = 'sap_xsac_hrtt', ('sqltrace', 'user') = 'DBAdmin' WITH RECONFIGURE;

1

可以通過對以下監控視圖執行選擇來檢視配置檔案的名稱、它們的内容和更改曆史記錄:

M_INIFILES

M_INIFILE_CONTENTS

M_INIFILE_CONTENT_HISTORY

CONFIGURATION_PARAMETER_PROPERTIES

M_CONFIGURATION_PARAMETER_VALUES

trace 檔案的位置:

SAP HANA Database Explorer 裡的 SQL 語句如何排錯 trouble shoot

可以在檔案中檢視傳回有關 HANA 執行個體正在使用的記憶體的資訊的 SQL 查詢。 例如,突出顯示的查詢就是這樣一種 SQL 請求。

SAP HANA Database Explorer 裡的 SQL 語句如何排錯 trouble shoot

Expensive statements trace

檢查消耗大量時間、CPU 或記憶體的 SQL 語句可能很重要。 以下步驟示範了如何啟用昂貴的語句跟蹤。

下面的 SQL 将啟用昂貴語句的跟蹤,設定門檻值,運作一些将超過門檻值的語句,然後禁用昂貴的語句跟蹤。

SAP HANA Database Explorer 裡的 SQL 語句如何排錯 trouble shoot

可以在視圖中找到超出昂貴語句門檻值的語句清單:M_EXPENSIVE_STATEMENTS

SAP HANA Database Explorer 裡的 SQL 語句如何排錯 trouble shoot

Viewing trace files with SQL

SAP HANA 資料庫提供一組監控視圖,允許通路跟蹤檔案。 一個例子是 M_MERGED_TRACES 系統視圖,它包含多個跟蹤檔案的内容,允許在特定時間段内跨跟蹤檔案執行查詢。 以下說明提供了一些通路視圖的示例。

可以查詢有關可用跟蹤檔案和來自各個跟蹤檔案的内容的資訊。

SAP HANA Database Explorer 裡的 SQL 語句如何排錯 trouble shoot

執行以下 SQL 查詢以檢視過去 45 分鐘的條目。

SAP HANA Database Explorer 裡的 SQL 語句如何排錯 trouble shoot

SAP HANA 的 SAP Note SQL 語句集合包含一個名為 HANA_TraceFiles_Content 的查詢,該查詢還包括與跟蹤檔案中的某些字元串比對的相關 SAP 注釋。

SAP HANA Database Explorer 裡的 SQL 語句如何排錯 trouble shoot