本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Aurora DSQL 的系統資料表和命令
請參閱下列各節,以了解 Aurora DSQL 支援的系統資料表和目錄。
系統表
Aurora DSQL 與 PostgreSQL 相容,因此 Aurora DSQL 也有來自 PostgreSQL 的許多系統目錄資料表
重要的 PostgreSQL 目錄資料表和檢視
下表列出可在 Aurora DSQL 中使用的最常見資料表和檢視。
| 名稱 | 描述 |
|---|---|
|
|
所有結構描述的相關資訊 |
|
|
所有資料表的相關資訊 |
|
|
所有屬性的相關資訊 |
|
|
(預先) 定義檢視的相關資訊 |
|
|
描述所有資料表、資料欄、索引和類似物件 |
|
|
規劃器統計資料的檢視 |
|
|
使用者的相關資訊 |
|
|
使用者和群組的相關資訊 |
|
|
列出所有索引 |
|
|
列出資料表的限制 |
支援和不支援的目錄資料表
下表指出 Aurora DSQL 支援和不支援哪些資料表。
| Name | 適用於 Aurora DSQL |
|---|---|
|
|
否 |
|
|
是 |
|
|
否 |
|
|
否 |
|
|
是 |
|
|
是 |
|
|
否 (使用 |
|
|
是 |
|
|
是 |
|
|
是 |
|
|
是 |
|
|
是 |
|
|
否 |
|
|
否 |
|
|
是 |
|
|
是 |
|
|
是 |
|
|
是 |
|
|
否 |
|
|
否 |
|
|
否 |
|
|
否 |
|
|
否 |
|
|
否 |
|
|
是 |
|
|
是 |
|
|
否 |
|
|
否 |
|
|
否 |
|
|
是 |
|
|
是 |
|
|
否 |
|
|
是 |
|
|
否 |
|
|
是 |
|
|
否 |
|
|
否 |
|
|
否 |
|
|
否 |
|
|
否 |
|
|
否 |
|
|
是 |
|
|
否 |
|
|
否 |
|
|
否 |
|
|
否 |
|
|
是 |
|
|
是 |
|
|
否 |
|
|
是 |
|
|
否 |
|
|
否 |
|
|
否 |
|
|
否 |
|
|
否 |
|
|
否 |
|
|
否 |
|
|
是 |
|
|
是 |
|
|
是 |
|
|
是 |
|
|
是 |
|
|
是 |
|
|
否 |
支援和不支援的系統檢視
下表指出 Aurora DSQL 支援和不支援哪些檢視。
| Name | 適用於 Aurora DSQL |
|---|---|
|
|
否 |
|
|
否 |
|
|
是 |
|
|
否 |
|
|
否 |
|
|
否 |
|
|
是 |
|
|
否 |
|
|
否 |
|
|
是 |
|
|
否 |
|
|
否 |
|
|
否 |
|
|
否 |
|
|
否 |
|
|
否 |
|
|
否 |
|
|
否 |
|
|
是 |
|
|
否 |
|
|
否 |
|
|
否 |
|
|
是 |
|
|
是 |
|
|
是 |
|
|
是 |
|
|
否 |
|
|
否 |
|
|
是 |
|
|
是 |
|
|
是 |
|
|
是 |
|
|
否 |
|
|
是 |
|
|
否 |
|
|
否 |
|
|
否 |
|
|
否 |
|
|
否 |
|
|
否 |
|
|
否 |
|
|
是 |
|
|
否 |
|
|
否 |
|
|
否 |
|
|
否 |
|
|
否 |
|
|
否 |
|
|
否 |
|
|
否 |
|
|
否 |
|
|
否 |
|
|
否 |
|
|
否 |
|
|
否 |
|
|
否 |
|
|
否 |
|
|
否 |
|
|
否 |
|
|
否 |
|
|
否 |
|
|
否 |
|
|
否 |
|
|
否 |
|
|
否 |
|
|
否 |
|
|
否 |
|
|
否 |
|
|
否 |
|
|
否 |
|
|
否 |
|
|
否 |
|
|
否 |
|
|
否 |
sys.jobs 和 sys.iam_pg_role_mappings 檢視
Aurora DSQL 支援下列系統檢視:
sys.jobs-
sys.jobs提供非同步作業的狀態資訊。例如,在您建立非同步索引之後,Aurora DSQL 會傳回job_uuid。您可以搭配使用此job_uuid與sys.jobs來查詢作業的狀態。SELECT * FROM sys.jobs WHERE job_id = 'example_job_uuid'; job_id | status | details ------------------+------------+--------- example_job_uuid | processing | (1 row) sys.iam_pg_role_mappings-
檢視
sys.iam_pg_role_mappings提供授予 IAM 使用者的許可相關資訊。例如,如果DQSLDBConnect是授予 Aurora DSQL 非管理員存取權的 IAM 角色,而名為testuser的使用者獲授予DQSLDBConnect角色和對應的許可,您可以查詢sys.iam_pg_role_mappings檢視以查看哪些使用者獲得哪些許可。SELECT * FROM sys.iam_pg_role_mappings;
有用的系統中繼資料查詢
使用這些查詢來取得資料表統計資料和中繼資料,而無需執行昂貴的操作,例如完整資料表掃描。
取得資料表的預估資料列計數
若要在不執行完整資料表掃描的情況下取得資料表中資料列的大致計數,請使用下列查詢:
SELECT reltuples FROM pg_class WHERE relname = 'table_name';
此命令會傳回類似以下的輸出:
reltuples -------------- 9.993836e+08
此方法比 Aurora DSQL 中的SELECT COUNT(*)大型資料表更有效率。
ANALYZE 命令。
ANALYZE 命令會收集資料庫中資料表內容的統計資料,並將結果儲存在 pg_stats 系統檢視中。之後,查詢規劃器會使用這些統計資料,協助判斷最有效率的查詢執行計劃。
使用 Aurora DSQL 時,您無法在明確交易內執行 ANALYZE 命令。ANALYZE 不受資料庫交易逾時限制的約束。
為了減少手動介入的需求,並確保統計資料的最新狀態,Aurora DSQL 會自動以背景處理程序執行 ANALYZE。系統會依據資料表中觀察到的變更率自動觸發這項背景作業。其與自前次分析後已插入、更新或刪除的資料列 (元組) 數目連結。
ANALYZE 會以非同步方式在背景執行,其活動可透過下列查詢在系統檢視 sys.jobs 中進行監控:
SELECT * FROM sys.jobs WHERE job_type = 'ANALYZE';
重要考量事項
注意
ANALYZE 作業會按 Aurora DSQL 中的其他非同步作業一樣計費。當您修改資料表時,可能會間接觸發自動背景統計資料收集作業,進而因相關聯的系統層級活動而產生計量費用。
系統會自動觸發背景 ANALYZE 任務、收集與手動 ANALYZE 相同的統計資料類型,並依預設將其套用到使用者資料表。此自動化程序會排除系統和目錄資料表。