gp_toolkit 說明
Greenplum數據庫提供了一個名為gp_tooikit的管理schema,該schema下有關於查詢系統目錄,日志文件, 用戶創建(databases,schema,table,indexs,view,function)等信息,也可以查詢資源隊列,表的膨脹表,表的傾斜, 系統自己維護的ID等的相關信息。注意不要在該schema下創建任何對象,否則會影響系統對元數據維護的錯誤問題, 同時再使用gpcrondump和gpdbrestore程序進行備份和恢復數據時,之前維護的元數據會發生更改。
1、表膨脹相關查詢
-- 該視圖顯示了那些膨脹的(在磁盤上實際的頁數超過了根據表統計信息得到預期的頁數)正規的堆存儲的表。 select * from gp_toolkit.gp_bloat_diag; -- 所有對象的膨脹明細 select * from gp_toolkit.gp_bloat_expected_pages;
2、表傾斜的相關信息
-- 該視圖通過計算存儲在每個Segment上的數據的變異系數(CV)來顯示數據分布傾斜。 select * from gp_toolkit.gp_skew_coefficients; -- 該視圖通過計算在表掃描過程中系統空閑的百分比來顯示數據分布傾斜,這是一種數據處理傾斜的指示器。 select * from gp_toolkit.gp_skew_idle_fractions;
3、鎖查詢相關的信息
-- 該視圖顯示了當前所有表上持有鎖,以及查詢關聯的鎖的相關聯的會話信息。 select * from gp_toolkit.gp_locks_on_relation; -- 該視圖顯示當前被一個資源隊列持有的所有的鎖,以及查詢關聯的鎖的相關聯的會話信息。 select * from gp_toolkit.gp_locks_on_resqueue;
4、日志查詢相關的信息
-- 該視圖使用一個外部表來讀取來自整個Greenplum(Master、Segment、鏡像)的服務器日志文件並且列出所有的日志項。 select * from gp_toolkit.gp_log_system; -- 該視圖用一個外部表來讀取在主機上的日志文件同時報告在數據庫會話中SQL命令的執行時間 select * from gp_toolkit.gp_log_command_timings; -- 該視圖使用一個外部表來讀取整個Greenplum系統(主機,段,鏡像)的服務器日志文件和列出與當前數據庫關聯的日志的入口。 select * from gp_toolkit.gp_log_database; -- 該視圖使用一個外部表讀取來自Master日志文件中日志域的一個子集。 select * from gp_toolkit.gp_log_master_concise;
5、資源隊列相關查詢信息
-- gp_toolkit.gp_resgroup_config視圖允許管理員查看資源組的當前CPU、內存和並發限制 select * from gp_toolkit.gp_resgroup_config; -- gp_toolkit.gp_resgroup_status視圖允許管理員查看資源組的狀態和活動 select * from gp_toolkit.gp_resgroup_status; -- 該視圖允許管理員查看到一個負載管理資源隊列的狀態和活動。 select * from gp_toolkit.gp_resqueue_status; -- 對於那些有活動負載的資源隊列,該視圖為每一個通過資源隊列提交的活動語句顯示一行。 select * from gp_toolkit.gp_resq_activity; -- 對於有活動負載的資源隊列,該視圖顯示了隊列活動的總覽。 select * from gp_toolkit.gp_resq_activity_by_queue; -- 資源隊列的執行優先級 select * from gp_toolkit.gp_resq_priority_backend; -- 該視圖為當前運行在Greenplum數據庫系統上的所有語句顯示資源隊列優先級、會話ID以及其他信息 select * from gp_toolkit.gp_resq_priority_statement; -- 該視圖顯示與角色相關的資源隊列。 select * from gp_toolkit.gp_resq_role;
6、查看磁盤上(database,schema,table,indexs,view)等的占用大小的相關信息
-- 外部表在活動Segment主機上運行df(磁盤空閑)並且報告返回的結果 select * from gp_toolkit.gp_disk_free; -- 該視圖顯示數據庫的總大小。 select * from gp_toolkit.gp_size_of_database; -- 該視圖顯示當前數據庫中schema在數據中的大小 select * from gp_toolkit.gp_size_of_schema_disk; -- 該視圖顯示一個表在磁盤上的大小。 select * from gp_toolkit.gp_size_of_table_disk; -- 該視圖查看表的索引 select * from gp_toolkit.gp_table_indexes; -- 該視圖顯示了一個表上所有索引的總大小。 select * from gp_toolkit.gp_size_of_all_table_indexes; -- 該視圖顯示分區子表及其索引在磁盤上的大小。 select * from gp_toolkit.gp_size_of_partition_and_indexes_disk; -- 該視圖顯示表及其索引在磁盤上的大小。 select * from gp_toolkit.gp_size_of_table_and_indexes_disk; -- 該視圖顯示表及其索引的總大小 select * from gp_toolkit.gp_size_of_table_and_indexes_licensing; -- 該視圖顯示追加優化(AO)表沒有壓縮時的大小。 select * from gp_toolkit.gp_size_of_table_uncompressed;
7、用戶使用的工作空間大小信息
-- 該視圖為當前在Segment上使用磁盤空間作為工作文件的操作符包含一行。 select * from gp_toolkit.gp_workfile_entries; -- GP工作文件管理器使用的磁盤空間 select * from gp_toolkit.gp_workfile_mgr_used_diskspace; -- 每個查詢的GP工作文件使用情況 select * from gp_toolkit.gp_workfile_usage_per_query; -- 每個segment在GP工作文件中的使用量 select * from gp_toolkit.gp_workfile_usage_per_segment;
8、查看用戶創建的信息(數據庫,schema,表,索引,函數,視圖)等信息
-- gp 中所有的名字(索引、表、視圖、函數)等的名字 select * from gp_toolkit."__gp_fullname"; -- gp 中AO表的名字 select * from gp_toolkit."__gp_is_append_only"; -- gp 中segment的個數 select * from gp_toolkit."__gp_number_of_segments"; -- gp 中用戶表的個數 select * from gp_toolkit."__gp_user_data_tables"; -- GP用戶數據表可讀 select * from gp_toolkit."__gp_user_data_tables_readable"; -- 用戶自己創建的schema信息 select * from gp_toolkit."__gp_user_namespaces"; -- 用戶自己創建的表信息 select * from gp_toolkit."__gp_user_tables";
9、系統中維護的ID信息
-- gp 本地維護的ID select * from gp_toolkit."__gp_localid"; -- gp master外部的log信息 select * from gp_toolkit."__gp_log_master_ext"; -- gp segment外部的log信息 select * from gp_toolkit."__gp_log_segment_ext"; -- gp master 的id信息 select * from gp_toolkit."__gp_masterid";
10、系統查用的查詢信息
-- 該視圖顯示那些沒有統計信息的表,因此可能需要在表上執行ANALYZE命令。 select * from gp_toolkit.gp_stats_missing; -- 該視圖顯示系統目錄中被標記為down的Segment的信息。 select * from gp_toolkit.gp_pgdatabase_invalid; -- 那些被分類為本地(local)(表示每個Segment從其自己的postgresql.conf文件中獲取參數值)的服務器配置參數,應該在所有Segment上做相同的設置。 select * from gp_toolkit.gp_param_settings_seg_value_diffs; -- 該視圖顯示系統中所有的角色以及指派給它們的成員(如果該角色同時也是一個組角色)。 select * from gp_toolkit.gp_roles_assigned;
11、系統中常用查詢的函數
select * from gp_toolkit.gp_param_settings(); select * from gp_toolkit.gp_skew_details(oid); select * from gp_toolkit."__gp_aocsseg"(IN oid); select * from gp_toolkit."__gp_aovisimap"(IN oid); select * from gp_toolkit.gp_param_setting(varchar); select * from gp_toolkit."__gp_skew_coefficients"(); select * from gp_toolkit."__gp_workfile_entries_f"(); select * from gp_toolkit."__gp_skew_idle_fractions"(); select * from gp_toolkit."__gp_aocsseg_name"(IN text); select * from gp_toolkit."__gp_aovisimap_name"(IN text); select * from gp_toolkit."__gp_aocsseg_history"(IN oid); select * from gp_toolkit."__gp_aovisimap_entry"(IN oid); select * from gp_toolkit."__gp_aovisimap_hidden_typed"(oid); select * from gp_toolkit."__gp_param_local_setting"(varchar); select * from gp_toolkit."__gp_aovisimap_entry_name"(IN text); select * from gp_toolkit."__gp_aovisimap_hidden_info"(IN oid); select * from gp_toolkit."__gp_workfile_mgr_used_diskspace_f"(); select * from gp_toolkit."__gp_aovisimap_hidden_info_name"(IN text); select * from gp_toolkit.gp_skew_coefficient(IN targetoid oid, OUT skcoid oid, OUT skccoeff numeric); select * from gp_toolkit.gp_skew_idle_fraction(IN targetoid oid, OUT sifoid oid, OUT siffraction numeric); select * from gp_toolkit.gp_bloat_diag(IN btdrelpages int4, IN btdexppages numeric, IN aotable bool, OUT bltidx int4, OUT bltdiag text); select * from gp_toolkit."__gp_aovisimap_compaction_info"(IN ao_oid oid, OUT content int4, OUT datafile int4, OUT compaction_possible bool, OUT hidden_tupcount int8, OUT total_tupcount int8, OUT percent_hidden numeric);
1、Greenplum 基本查詢信息
1.1、Greenplum 常用查詢
-- pg_constraint 對存儲對表的檢查,主鍵,唯一和外鍵約束。 select * from pg_catalog.pg_constraint; -- pg_compression 描述了可用的壓縮方法 select * from pg_catalog.pg_compression; -- pg_class 目錄表和大多數具有列或其他類似於表的所有其他表(也稱為關系)。 select * from pg_catalog.pg_class; -- pg_conversion 系統目錄表描述了可用的編碼轉換過程create轉換。 select * from pg_catalog.pg_conversion; -- pg_operator 存儲有關運算符的信息,包括內置和由其定義的運算符CREATE OPERATOR select * from pg_catalog.pg_operator; -- pg_partition 用於跟蹤分區表及其繼承級別關系。 select * from pg_catalog.pg_partition; -- pg_pltemplate 存儲過程語言的模板信息。 select * from pg_catalog.pg_pltemplate; -- pg_proc 有關函數(或過程)的信息,包括內置函數和由函數定義的函數CREATE FUNCTION。 select * from pg_catalog.pg_proc; -- pg_roles 提供對數據庫角色信息的訪問 select * from pg_catalog.pg_roles; -- pg_shdepend 記錄數據庫對象和共享對象(如角色)之間的依賴關系。 select * from pg_catalog.pg_shdepend; -- pg_shdescription 存儲共享數據庫對象的可選描述(注釋)。 select * from pg_catalog.pg_shdescription; -- pg_stat_activity每個服務器進程顯示一行,並顯示有關用戶會話和查詢的詳細信息。 select * from pg_catalog.pg_stat_activity; -- pg_stat_last_operation 包含有關數據庫對象(表,視圖等)的元數據跟蹤信息。 select * from pg_catalog.pg_stat_last_operation; -- pg_stat_last_shoperation 包含有關全局對象(角色,表空間等)的元數據跟蹤信息。 select * from pg_catalog.pg_stat_last_shoperation; -- pg_auth_members 顯示角色之間的成員關系。 select * from pg_catalog.pg_auth_members;
1.2、Greenplum 觸發器,鎖,類型等相關信息
-- pg_trigger 觸發器查詢信息。 select * from pg_catalog.pg_trigger; -- pg_type 數據庫中數據類型的信息。 select * from pg_catalog.pg_type; -- pg_locks 數據庫中打開的事務所持有的鎖的信息的訪問。 select * from pg_catalog.pg_locks; -- pg_user_mappingcatalog表存儲從本地用戶到遠程用戶的映射。 select * from pg_catalog.pg_user_mapping; -- pg_window 表存儲有關窗口函數的信息。 select * from pg_catalog.pg_window;
1.3、Greenplum 故障檢測相關的信息
-- gp_configuration_history 包含有關故障檢測和恢復操作的系統更改的信息。 select * from pg_catalog.gp_configuration_history order by time desc; -- gp_fault_strategy 指定故障動作。 select * from pg_catalog.gp_fault_strategy;
1.4、Greenplum 分布式事務有關信息
-- gp_distributed_log 包含有關分布式事務及其關聯的本地事務的狀態信息。 select * from pg_catalog.gp_distributed_log; -- gp_distributed_xacts 包含有關Greenplum Database分布式事務的信息。 select * from pg_catalog.gp_distributed_xacts;
1.5、Greenplum segment 有關信息
-- gp_distribution_policy 包含有關Greenplum數據庫表及其segment分發表數據的策略的信息。 select * from pg_catalog.gp_distribution_policy; -- gp_fastsequence 包含有關追加優化和面向列的表的信息 select * from pg_catalog.gp_fastsequence; -- gp_global_sequence 包含事務日志中的日志序列號位置,文件復制過程使用位置來確定要從主段復制到鏡像段的文件塊。 select * from pg_catalog.gp_global_sequence;
1.6、Greenplum 數據文件狀態有關信息
-- gp_persistent_database_node 跟蹤與數據庫對象的事務狀態相關的文件系統對象的信息。 select * from pg_catalog.gp_persistent_database_node; -- gp_persistent_filespace_node 跟蹤文件系統對象與文件空間對象的事務狀態相關的信息。 select * from pg_catalog.gp_persistent_filespace_node; -- gp_persistent_tablespace_node 跟蹤與表空間對象的事務狀態相關的文件系統對象的信息。 select * from pg_catalog.gp_persistent_tablespace_node; -- gp_pgdatabase 顯示有關Greenplum segment實例的狀態信息,以及它們是作為鏡像還是主要實例。 select * from pg_catalog.gp_pgdatabase;
1.7、Greenplum 有關儲存的信息
-- gp_transaction_log 包含有關特定segment本地事務的狀態信息。 select * from pg_catalog.gp_transaction_log; -- gp_version_at_initdb 在Greenplum數據庫系統的主節點和每個segment上。 select * from pg_catalog.gp_version_at_initdb; -- pg_appendonly 包含有關存儲選項和附加優化表的其他特征的信息。 select * from pg_catalog.pg_appendonly; -- pg_attrdef 存儲列默認值。 select * from pg_catalog.pg_attrdef; -- pg_attribute表存儲有關表列的信息。 select * from pg_catalog.pg_attribute; -- pg_authid表包含有關數據庫授權標識符(角色)的信息。 select * from pg_catalog.pg_authid; -- pg_cast里表存儲數據類型轉換路徑,包括內置路徑和使用的路徑 創建CAST。 select * from pg_catalog.pg_cast; -- pg_enum表包含將枚舉類型與其關聯值和標簽匹配的條目。 select * from pg_catalog.pg_enum; -- pg_exttable 系統目錄表用於跟蹤由中創建的外部表和Web表 創建外部表 命令。 select * from pg_catalog.pg_exttable; -- pg_filespace表包含有關在Greenplum數據庫系統中創建的文件空間的信息。 select * from pg_catalog.pg_filespace; -- pg_filespace_entry 空間需要文件系統位置來存儲其數據庫文件。 select * from pg_catalog.pg_filespace_entry; -- pg_inherits 系統目錄表記錄有關表繼承層次結構的信息。 select * from pg_catalog.pg_inherits; -- pg_largeobject系統目錄表包含構成"large objects"的數據。 select * from pg_catalog.pg_largeobject; -- pg_listener 系統目錄表支持LISTENNOTIFY 通知命令。 select * from pg_catalog.pg_listener; -- pg_max_external_files 顯示使用外部表時每個段主機允許的最大外部表文件數file協議。 select * from pg_catalog.pg_max_external_files;
2、Greenplum 插件相關信息
-- pg_extension 有關已安裝擴展的信息 select * from pg_catalog.pg_extension; -- pg_available_extension_versions 列出了可用於安裝的特定擴展版本。 select * from pg_catalog.pg_available_extension_versions; -- pg_available_extensions 列出了可用於安裝的擴展。 select * from pg_catalog.pg_available_extensions; -- pg_language系統目錄表注冊可以編寫函數或存儲過程的語言。 select * from pg_catalog.pg_language;
3、Greenplum 分區表的相關信息
-- pg_partition_columns 系統視圖用於顯示分區表的分區鍵列。 select * from pg_catalog.pg_partition_columns; -- pg_partition_columns 系統視圖用於顯示分區表的分區鍵列。 select * from pg_catalog.pg_partition_encoding; -- pg_partition_rule系統目錄表用於跟蹤分區表,檢查約束和數據包含規則。 select * from pg_catalog.pg_partition_rule; -- pg_partition_templates 系統視圖用於顯示使用子分區模板創建的子分區。 select * from pg_catalog.pg_partition_templates; -- pg_partitions 系統視圖用於顯示分區表的結構。 select * from pg_catalog.pg_partitions;
4、Greenplum 資源隊列相關信息
-- pg_stat_partition_operations 視圖顯示有關在分區表上執行的上一個操作的詳細信息 select * from pg_catalog.pg_stat_partition_operations; -- pg_stat_replication 視圖包含的元數據 walsender 用於Greenplum數據庫主鏡像的進程 select * from pg_catalog.pg_stat_replication; -- pg_stat_resqueues 視圖允許管理員隨時查看有關資源隊列工作負載的指標。 select * from pg_catalog.pg_stat_resqueues; -- pg_resqueuecapability 包含有關現有Greenplum數據庫資源隊列的擴展屬性或功能的信息 select * from pg_catalog.pg_resqueuecapability; -- pg_resgroup 包含有關Greenplum數據庫資源組的信息,這些資源組用於管理並發語句,CPU和內存資源。 select * from pg_catalog.pg_resgroup; -- pg_resgroupcapability 包含有關已定義的Greenplum數據庫資源組的功能和限制的信息 select * from pg_catalog.pg_resgroupcapability; -- pg_resourcetype 包含有關可分配給Greenplum數據庫資源隊列的擴展屬性的信息。 select * from pg_catalog.pg_resourcetype; -- pg_resqueue 包含有關Greenplum數據庫資源隊列的信息,這些隊列用於資源管理功能。 select * from pg_catalog.pg_resqueue; -- pg_resqueue_attributes 視圖允許管理員查看為資源隊列設置的屬性,例如其活動語句限制,查詢成本限制和優先級。 select * from pg_catalog.pg_resqueue_attributes;
5、Greenplum 表,視圖,索引等有關信息
5.1、Greenplum 中支持的索引
-- pg_am 有關索引方法的信息(btree,hash,gist,gin,bitmap索引) select * from pg_catalog.pg_am; -- pg_amop 有關與索引訪問方法操作符類關聯的運算符的信息 select * from pg_catalog.pg_amop; -- pg_amproc 有關與索引訪問方法操作符類關聯的支持過程的信息。 select * from pg_catalog.pg_amproc; -- pg_index 包含有關索引的部分信息。 select * from pg_catalog.pg_index; -- pg_opclass記錄系統目錄表定義索引訪問方法操作符類 select * from pg_catalog.pg_opclass;
5.2、Greenplum 表的關系信息
-- pg_tablespace系統目錄表存儲有關可用表空間的信息。 select * from pg_catalog.pg_tablespace; -- gp_persistent_relation_node 表跟蹤與關系對象(表,視圖,索引等)的事務狀態相關的文件系統對象的狀態 select * from pg_catalog.gp_persistent_relation_node; -- gp_relation_node 表包含有關系(表,視圖,索引等)的文件系統對象的信息。 select * from pg_catalog.gp_relation_node; -- pg_stat_operations 顯示有關對數據庫對象(例如表,索引,視圖或數據庫)或全局對象(例如角色)執行的上一個操作的詳細信息。 select * from pg_catalog.pg_stat_operations; -- gp_segment_configuration 表包含有關mirroring和segment配置的信息 select * from pg_catalog.gp_segment_configuration; -- pg_aggregate里table存儲有關聚合函數的信息。 select * from pg_catalog.pg_aggregate;
6、Greenplum 系統目錄存儲基本信息
6.1、Greenplum 儲存database,schema,table,view等的信息
-- pg_database里系統目錄表存儲有關可用數據庫的信息。 select * from pg_catalog.pg_database; -- pg_statistic里系統目錄表存儲有關數據庫內容的統計數據。 select * from pg_catalog.pg_statistic; -- pg_description系統目錄表存儲每個數據庫對象的可選描述(注釋)。 select * from pg_catalog.pg_description; -- pg_depend系統目錄表記錄數據庫對象之間的依賴關系。 select * from pg_catalog.pg_depend; -- pg_namespace系統目錄表存儲schema的名稱。 select * from pg_catalog.pg_namespace; -- gp_id系統目錄表標識Greenplum數據庫系統名稱和系統的segment數 select * from pg_catalog.gp_id; -- pg_rewrite 系統目錄表存儲表和視圖的重寫規則。 select * from pg_catalog.pg_rewrite; -- pg_type_encoding 系統目錄表包含列存儲類型信息。 select * from pg_catalog.pg_type_encoding; -- pg_attribute_encoding 系統目錄表包含列存儲信息。 select * from pg_catalog.pg_attribute_encoding;
7、以下只有在進入到gpexpand擴展時,才可以查詢
select * from gpexpand.expansion_progress; select * from gpexpand.status; select * from gpexpand.status_detail;
轉載自:https://blog.csdn.net/MyySophia/article/details/103226128