在專用 Exadata 基礎架構上使用自治式 AI 資料庫的 SQL 追蹤
您可以將 SQL 追蹤與專用 Exadata 基礎架構上的自治式 AI 資料庫搭配使用,以協助您識別過多資料庫工作負載的來源,例如應用程式中的高負載 SQL 敘述句。
關於 SQL 追蹤
當應用程式作業花費的時間超過預期時,取得在此作業中執行之所有 SQL 敘述句的追蹤,其詳細資訊 (例如該 SQL 敘述句在剖析、執行以及擷取階段所花費的時間) 將可協助您識別並解決效能問題的原因。您可以使用 Autonomous AI Database 上的 SQL 追蹤來達成此目標。
- 從設定資料庫開始儲存「SQL 追蹤」檔案。請參閱設定自治式 AI 資料庫的 SQL 追蹤以瞭解詳細資訊。
- 接著,啟用 SQL 追蹤功能。請參閱在 Autonomous AI 資料庫上啟用 SQL 追蹤。
附註:
啟用 SQL 追蹤功能可能會在啟用追蹤收集時,降低階段作業的應用程式效能。此效能影響預期是因為收集並儲存追蹤資料的超載所致。 - 若要停止收集 SQL 追蹤資料,您必須停用 SQL 追蹤。請參閱停用 SQL 追蹤。
- 當您停用 SQL 追蹤時,在階段作業執行並啟用追蹤功能時所收集的追蹤資料會寫入階段作業中的
SESSION_CLOUD_TRACE
視觀表,以及您在設定 SQL 追蹤時設定的儲存桶追蹤檔。有兩個選項可以檢視追蹤資料:- 檢視並分析儲存至「雲端物件存放區」之追蹤檔中的「SQL 追蹤」資料。如需詳細資訊,請參閱檢視儲存在自治式 AI 資料庫之雲端物件存放區的追蹤檔。
- 檢視並分析儲存至檢視
SESSION_CLOUD_TRACE
的「SQL 追蹤」資料。如需詳細資訊,請參閱在自治式 AI 資料庫的 SESSION_CLOUD_TRACE 視觀表中檢視追蹤資料。
在 Autonomous AI Database 上啟用 SQL 追蹤
附註:
啟用 SQL 追蹤功能可能會在啟用追蹤收集時,降低階段作業的應用程式效能。此效能影響預期是因為收集並儲存追蹤資料的超載所致。若要啟用資料庫階段作業的 SQL 追蹤,請執行下列動作:
在 Autonomous AI Database 上檢視儲存到雲端物件存放區的追蹤檔案
DEFAULT_LOGGING_BUCKET
設定的雲端物件存放區儲存桶。
「SQL 追蹤」功能會以下列格式,將階段作業中收集的追蹤資料寫入「雲端物件存放區」:
default_logging_bucket/sqltrace/clientID/moduleName/sqltrace_numID1_numID2.trc
檔案名稱的元件為:
-
default_logging_bucket :為
DEFAULT_LOGGING_BUCKET
資料庫特性的值。請參閱設定自治式 AI 資料庫的 SQL 追蹤以瞭解詳細資訊。 -
clientID
:為用戶端識別碼。請參閱在自治式 AI 資料庫啟用 SQL 追蹤以瞭解詳細資訊。 -
moduleName
:為模組名稱。請參閱在自治式 AI 資料庫啟用 SQL 追蹤以瞭解詳細資訊。 -
numID1
_numID2
:是「SQL 追蹤」功能提供的兩個 ID。numID1
和numID2
數值會使用追蹤功能,在雲端物件儲存的相同儲存桶中建立追蹤檔,以獨特的方式區別每個追蹤檔案名稱與其他階段作業。當資料庫服務支援併行執行,而階段作業執行平行查詢時,「SQL 追蹤」功能可以產生多個具有不同
numID1
和numID2
值的追蹤檔。
附註:
當 SQL 追蹤在同一個階段作業內多次啟用並停用時,每個追蹤重複都會產生「雲端物件存放區」中的個別追蹤檔。為了避免覆寫階段作業中產生的先前追蹤,後續產生的檔案會遵循相同的命名慣例,並在追蹤檔案名稱加上數字尾碼。此數值字尾以數字 1 開頭,之後每個追蹤反覆都會以 1 遞增。例如,當您將從屬端 ID 設為 "sql_test"
,並將模組名稱設為 "modname"
時,下列為產生的追蹤檔案名稱範例:
sqltrace/sqlt_test/modname/sqltrace_5415_56432.trc
您可以執行 TKPROF
,將追蹤檔轉譯成可讀取的輸出檔。
在 SESSION_CLOUD_TRACE 檢視中檢視 Autonomous AI Database 的追蹤資料
SESSION_CLOUD_TRACE
視觀表中,會有儲存至「雲端物件存放區」追蹤檔的相同追蹤資訊。
SESSION_CLOUD_TRACE
視觀表中檢視 SQL 追蹤資料。SESSION_CLOUD_TRACE
視觀表包含兩個資料欄:ROW_NUMBER
和 TRACE
。DESC SESSION_CLOUD_TRACE
Name Null? Type
---------- ----- ------------------------------
ROW_NUMBER NUMBER
TRACE VARCHAR2(32767)
ROW_NUMBER
指定在 TRACE
資料欄中找到之追蹤資料的順序。寫入追蹤檔的每一行追蹤輸出都會成為表格中的一列,且可在 TRACE
資料欄中使用。
停用階段作業的 SQL 追蹤之後,就可以在 SESSION_CLOUD_TRACE
視觀表上執行查詢。
SELECT trace FROM SESSION_CLOUD_TRACE ORDERBY row_number;
SESSION_CLOUD_TRACE
中的資料會在階段作業期間持續存在。登出或關閉階段作業之後,資料就無法再使用。
如果在同一個階段作業中啟用並多次停用「SQL 追蹤」,SESSION_CLOUD_TRACE
會累計顯示所有重複項目的追蹤資料。因此,在先前停用追蹤之後,於階段作業中重新啟用追蹤並不會移除先前反覆產生的追蹤資料。