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

Greenplum常用的gp_toolkit & pg_catalog监控语句的更多相关文章

  1. oracle日常监控语句

    oracle常用的性能监控SQL语句 一.查询历史SQL: ---正在执行的SQL语句: select a.username, a.sid,b.SQL_TEXT, b.SQL_FULLTEXT fro ...

  2. 常用的几条sql语句

    ### 常用的几条sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,v ...

  3. (转载)常用的Mysql数据库操作语句大全

    打开CMD,进入数据库命令:mysql -hlocalhost -uroot -p 退出数据库:exit 用户管理: 1.新建用户: >CREATE USER name IDENTIFIED B ...

  4. Oracle学习总结(7)—— 常用的数据库索引优化语句总结

    不管是用C/C++/Java等代码编写的程序,还是SQL编写的数据库脚本,都存在一个持续优化的过程.也就是说,代码优化对于程序员来说,是一个永恒的话题. 近期,我们对之前编写的数据库脚本进行了全面的自 ...

  5. Greenplum 常用数据库管理语句,sql工具

    转载自:https://blog.csdn.net/you_xian/article/details/78549756作者:lianghc      在greenplum 使用过程中积累的一些常用查询 ...

  6. Oracle常用性能监控语句解析

    转:http://www.cnblogs.com/preftest/archive/2010/11/14/1876856.html 1.监控等待事件select event,sum(decode(wa ...

  7. Oracle数据库常用监控语句

    --在某个用户下找所有的索引 select user_indexes.table_name, user_indexes.index_name,uniqueness, column_name from ...

  8. 几个常用ORACLE运维监控的SQL语句

    1.消耗CPUSELECT a.CPU_TIME, --CPU时间 百万分之一(微秒)              a.OPTIMIZER_MODE,--优化方式              a.EXEC ...

  9. ORACLE常用监控语句(未完待续)

    --查询日志的切换频率 select  t1.RECID as srecid        ,t2.RECID as erecid        ,t1.FIRST_TIME as stime     ...

随机推荐

  1. 【Python爬虫案例学习】Python爬取淘宝店铺和评论

    安装开发需要的一些库 (1) 安装mysql 的驱动:在Windows上按win+r输入cmd打开命令行,输入命令pip install pymysql,回车即可. (2) 安装自动化测试的驱动sel ...

  2. windwos源码安装mysql

    进入官网下载相关的mysql安装文件,解压到指定目录如E:\mysql-5.7.23-winx64下,然后进入该目录下新建data文件夹与my.ini文件,在my.ini文件中 [mysqld] po ...

  3. ubuntu 安装harbor仓库

    一.介绍 Harbor,是一个英文单词,意思是港湾,港湾是干什么的呢,就是停放货物的,而货物呢,是装在集装箱中的,说到集装箱,就不得不提到Docker容器,因为docker容器的技术正是借鉴了集装箱的 ...

  4. python罗列oss文件

    # 列举文件 import oss2 from itertools import islice AccessKeyId = "your accesskeyid" AccessKey ...

  5. .NET Core入门

            .Net core MVC   如何使用 .NET Core,最基本的入行,很多博客以及官网都有的太多太多的例子,但是大部分没有人做到了真的让一个小白一步一步的去学, 我第一次接触的时 ...

  6. C#测试代码、函数、方法执行时间,方便进行系统性能评估

    代码如下: System.Diagnostics.Stopwatch stopwatch = new System.Diagnostics.Stopwatch(); stopwatch.Start() ...

  7. windows开机自启动的django服务

    做了一个django项目,想部署在win10的笔记本电脑上,可以开机后台自动启动.找了很多的方法.最后成功了. 参考了这个博主的内容. https://blog.csdn.net/qq_3595961 ...

  8. Github下载慢和下载过程中断等情况的解决方案

    Github下载慢和下载过程中断等情况的解决方案   最近老大push项目,正常的git clone每次都是下载一部分就断掉了. 尝试了修改hosts文件的方式,更换了延迟最低的域名也没啥用(难道我姿 ...

  9. 模仿jquery--offset方法。原生JS获取任意元素到文档document顶部的距离

    1.通过遍历目标节点.目标节点的父节点,依次溯源. 然后累加这些节点到其最近可定位的祖先节点的距离.向上直到document. 其中,需要使用到节点的offsetTop/offsetLeft属性,来获 ...

  10. 结对项目(java实现)

    一 .Github项目地址:https://github.com/734635746/MyApp 二.PSP表格 PSP2.1 Personal Software Process Stages 预估耗 ...