Deepgreen(Greenplum)数据表集中Analyze脚本

数据加载完成以后,通常需要更新分析计划,因为单独做一个表的Analyze比较麻烦,整库做Analyze会比较耗时,我们可以通过下面这个脚本,指定Analyze部分表。
具体实践时,只需修改下面对应的SQL语句、数据库psql命令地址、IP端口及数据库名即可:

#!/bin/bash
# filename: analyze_table.sh
# start time
start_time=$(date)
echo "-------- Start time is $start_time --------"
start_seconds=$(date +%s)
# get no partition tables
cmd_get_nopartitions="select schemaname||'.'||tablename as tablename from pg_tables where schemaname like 'rwnas_%' and tablename not like '%_1_prt_%' and schemaname||'.'||tablename not in (select schemaname||'.'||tablename from pg_partitions group by schemaname,tablename)"
exec_get_nopartitions=$(/app/greenplum-db-4.1.1.1/bin/psql -h 127.0.0.1 -p 5432 -d rwnas -U rwnas -t -c "${cmd_get_nopartitions}")
echo "${exec_get_nopartitions}" > nopartitions_tables.txt
echo "-------- No Partitions Tables List Below --------"
nopartitions_file=$(cat nopartitions_tables.txt)
echo "$nopartitions_file"
# analyze nopartition tables
rm -rf analyze_nopartitions_tables.txt
function for_np_file(){
for i in $nopartitions_file
do
echo "$(/app/greenplum-db-4.1.1.1/bin/psql -h 127.0.0.1 -p 5432 -d rwnas -U rwnas -c "analyze $i")"
echo "$i" >> analyze_nopartitions_tables.txt
done
}
for_np_file
# get partition tables
cmd_get_partitions="select schemaname||'.'||tablename as tablename from pg_partitions where schemaname like 'rwnas_%' group by schemaname, tablename"
exec_get_partitions=$(/app/greenplum-db-4.1.1.1/bin/psql -h 127.0.0.1 -p 5432 -d rwnas -U rwnas -t -c "${cmd_get_partitions}")
echo "${exec_get_partitions}" > partitions_tables.txt
echo "-------- Partitions Tables List Below --------"
partitions_file=$(cat partitions_tables.txt)
echo "$partitions_file"
# analyze partition tables
rm -rf analyze_partitions_tables.txt
function for_p_file(){
for q in $partitions_file
do
echo "$(/app/greenplum-db-4.1.1.1/bin/psql -h 127.0.0.1 -p 5432 -d rwnas -U rwnas -c "analyze $q")"
echo "$q" >> analyze_partitions_tables.txt
done
}
for_p_file
# end time
end_time=$(date)
echo "-------- End time is $end_time --------"
end_seconds=$(date +%s)
diff=$((end_seconds - start_seconds))
echo "Total $diff seconds."
时间: 2025-01-30 14:47:55

Deepgreen(Greenplum)数据表集中Analyze脚本的相关文章

优化Mysql数据表的shell脚本

由于公司数据库中的数据量较大,定期对公司的mysql数据库中的数据表进行优化操作(关于optimize的描述如下所示),数据库中有300多张数据表,手工去操作显然不太现实,用脚本来执行效率还是很不错的,脚本如下: mysql手册中关于 OPTIMIZE 的描述: OPTIMIZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] - 如果您已经删除了表的一大部分,或者如果您已经对含有可变长度行的表(含有VARCHAR, BLOB或T

列出所有请求表单提交数据的通用jsp脚本,调试可以使用

列出所有请求表单提交数据的通用jsp脚本,调试可以使用     将代码保存为 showRequestParameters.jsp   只要在处理表单的页面包含该文件即可 <%-- A Jsp Component that Shows Request Parameters      Include this page to view request parameters.     Example Use:              ...            <h2>Request Pa

删除数据表和清空数据表的内容(保存表结构)的SHELL脚本

A,删除指定数据库的所有数据表 #!/bin/bash # 删除mysql中所有表 # 示例: # Usage: ./script user password dbnane # Usage: ./script user password dbnane server-ip # Usage: ./script user password dbnane mysql.nixcraft.in # --------------------------------------------------- MUS

Deepgreen &amp; Greenplum DBA小白普及课之二(管理问题解答)

不积跬步无以至千里,要想成为一名合格的数据库管理员,首先应该具备扎实的基础知识及问题处理能力.本文参考Pivotal官方FAQ,对在管理Deepgreen & Greenplum时经常会遇到的问题提出解决思路/答案.希望对大家有所帮助,如果有朋友有更多的问题分享,请留言,我将一并整理. 下面单刀直入,开始问题浏览及解决思路梳理: 1.执行gpstart命令失败了,我该怎么办? 查看gpstart命令在Master执行失败后返回的错误原因: 检查gpstart的启动日志,这里可能存着更详细的信息,

Deepgreen &amp; Greenplum DBA小白普及课之四(性能问题解答)

不积跬步无以至千里,要想成为一名合格的数据库管理员,首先应该具备扎实的基础知识及问题处理能力.本文参考Pivotal官方FAQ,对在管理Deepgreen & Greenplum时经常会遇到的问题提出解决思路/答案,本篇主要讲性能方面的问题.希望对大家有所帮助,如果有朋友有更多的问题分享,请留言,我将一并整理. 1.我的SQL查询昨天性能还不错,到今天就变得非常慢了,我该怎么办? 如果你的SQL不是在数据库Master主机上执行了,是远程执行的,那么可以通过在Master主机上执行SQL看返回是

Deepgreen &amp; Greenplum DBA小白普及课之一(一般问题解答)

不积跬步无以至千里,要想成为一名合格的数据库管理员,首先应该具备扎实的基础知识及问题处理能力.本文参考Pivotal官方FAQ,对一些在使用和管理Deepgreen & Greenplum时经常会遇到的普通问题进行解答.希望对大家有所帮助,如果有朋友有更多的问题分享,请留言,我将一并整理. 下面单刀直入,开始问题浏览及解决思路梳理: 1.如何检查一张表的分区策略? 测试表:region 表的详细描述信息可以展示其分区策略:Distributed by: (r_regionkey) tpch=#

Deepgreen &amp; Greenplum 高可用(一) - Segment节点故障转移

尚书中云:惟事事,乃其有备,有备无患.这教导我们做事一定要有准备,做事尚且如此,在企事业单位发展中处于基础地位的数据仓库软件在运行过程中,何尝不需要有备无患呢? 今天别的不表,主要来谈谈企业级数据仓库软件Deepgreen和Greenplum的高可用特性之一:计算节点镜像. 一.首先从理论上来讲,正常Segment节点和他的Mirror是分布在不同主机上的,以防止单点故障导致的数据库访问异常.当正常Segment节点出现故障时,Mirror节点可以自动接管Segment节点的服务,数据库仍然可以

Deepgreen &amp; Greenplum DBA小白普及课之三(备份问题解答)

不积跬步无以至千里,要想成为一名合格的数据库管理员,首先应该具备扎实的基础知识及问题处理能力.本文参考Pivotal官方FAQ,对在管理Deepgreen & Greenplum时经常会遇到的问题提出解决思路/答案,本篇主要讲备份方面的问题.希望对大家有所帮助,如果有朋友有更多的问题分享,请留言,我将一并整理. 1.简单描述一下Deepgreen & Greenplum的备份架构? 当我们执行全库备份操作时,后台进行了如下操作: 检查备份命令语法 检查备份目录是否存在,如果不存在便创建目录

Oracle 数据表分区的策略_oracle

正在看的ORACLE教程是:Oracle 数据表分区的策略.本文描述通过统计分析出医院信息系统需分区的表,对需分区的表选择分区键,即找出包括在你的分区键中的列(表的属性),对大型数据的管理比较有意义, 本文的工作在Oracle8.1.6下实现. Oracle虽然是一个大型的DBMS,但如果不对记录比较多的表进行处理,仍然发挥不了Oracle管理大型数据的强大功能,因此对某些表进行分区,具有如下优点:  分区表中每个分区可以在逻辑上认为是一个独立的对象:  可以在一个表中的一个或多个分区上进行如删