Deepgreen数据库数据分布状态查询脚本 - DK值调整参考

简介:

数据分布是Deepgreen数据库中经常需要优化的一个点,为了将数据均匀分布,经常需要在建表初期指定一个合理的分布键。但是随着数据的增多,分区表不免会产生数据倾斜,今天分享一个脚本,用于查询分区事实表的数据分布状态,给后期分布键的调整提供参考。
脚本简单封装了运维常用的查询语句:

#!/bin/bash
# filename: distributed_status.sh
IFS=$'\n'
db=$1
echo "You will examinate database $1's distribution status!"
# 读取并生成分布状态检查语句存入变量
distributed_status_array=$(psql -p 15432 -d $db -t -c "select 'SELECT gp_segment_id,count(*) from '||schemaname||'.'||tablename||' group by gp_segment_Id;' from pg_partitions group by schemaname,tablename;")
#定义循环查询函数
function distributed_status(){
for i in $distributed_status_array
do
echo $i
echo "$(psql -h 127.0.0.1 -p 5432 -d $db -t -c "$i")"
done
}
#执行函数
distributed_status

脚本执行前,需要在deepgreen用户下赋予可执行权限;执行时,在脚本后面传入数据库名:

dgadmin@flash:~$ ./distributed_status.sh tpch

如果IP和端口号与脚本不一致,可以在创建时相应修改~

目录
相关文章
|
4天前
|
存储 SQL 关系型数据库
数据库事务:确保数据完整性的关键20
【7月更文挑战第20天】事务是数据库操作的基本逻辑单位,确保数据一致性。ACID原则包括:原子性(操作全成或全败),一致性(事务前后数据合法性),隔离性(并发操作互不影响),持久性(提交后更改永久保存)。MySQL的InnoDB引擎支持事务,通过undo log实现回滚,redo log确保数据持久化。开启事务可使用`BEGIN`或`START TRANSACTION`,提交`COMMIT`,回滚`ROLLBACK`。
131 70
|
2天前
|
Oracle 安全 关系型数据库
|
2天前
|
存储 Oracle 关系型数据库
|
5天前
|
存储 缓存 监控
优化数据库查询的关键
【7月更文挑战第22天】优化数据库查询的关键
18 7
|
2天前
|
存储 Oracle 关系型数据库
关系型数据库Oracle运行RMAN脚本
【7月更文挑战第23天】
10 4
|
2天前
|
监控 Oracle 算法
|
2天前
|
Oracle 关系型数据库 数据库
关系型数据库Oracle编写RMAN脚本
【7月更文挑战第23天】
10 2
|
4天前
|
Oracle 关系型数据库 数据库
关系型数据库Oracle执行RMAN脚本
【7月更文挑战第22天】
14 2
|
4天前
|
Oracle 关系型数据库 数据库连接
|
5天前
|
机器学习/深度学习 人工智能 自然语言处理
数据的资产怎么被AI驱动的数据库理解
数据的资产怎么被AI驱动的数据库理解