DB2检查数据在各节点分布情况
情景:总所周知,DB2的表空间(数据)在节点中存储是根据每张表的分区键来分布的,如果分区键建的不好,会直接导致表空间在各节点的占用大小不均匀,久而久之,其中一个或几个节点的大小已所剩无几,其他的却依旧充足,这样就不得不扩展空间不足的节点大小,对性能也会有所影响。
检查:
1、查看表空间使用情况,YOUR_SPACENAME为查看的表空间名
SELECT * FROM SYSIBMADM.TBSP_UTILIZATION WHERE TBSP_NAME='YOUR_SPACENAME';
每个节点各为一条数据,'DBPARTITIONNUM'为节点序号,'TBSP_UTILIZATION_PERCENT'为各节点使用比例,'TBSP_ID'为表空间序号
2、选取其中使用率较高与较低的两组节点进行比较每张表的数据分布情况,$1、$3为节点序号,$2为表空间序号,$4为schema名称
db2 -x "select 'select '''||trim(a.tabschema)||'.'||trim(a.tabname)||''' as tabname, count(*) from '||trim(a.tabschema)||'.'||trim(a.tabname)||' where dbpartitionnum('||b.colname||')=$1 with ur;' from syscat.tables a ,syscat.columns b where a.tbspaceid=$2 and a.tabschema=b.tabschema and a.tabschema=$4 and a.tabname=b.tabname and b.COLNo=0 " > cnt1.sql
db2 -txf cnt1.sql > cnt1.out
db2 -x "select 'select '''||trim(a.tabschema)||'.'||trim(a.tabname)||''' as tabname, count(*) from '||trim(a.tabschema)||'.'||trim(a.tabname)||' where dbpartitionnum('||b.colname||')=$3 with ur;' from syscat.tables a ,syscat.columns b where a.tbspaceid=$2 and a.tabschema=b.tabschema and a.tabschema=$4 and a.tabname=b.tabname and b.COLNo=0 " > cnt2.sql
db2 -txf cnt2.sql > cnt2.out
diff cnt1.out cnt2.out>diff.out
输出结果diff.out即此schema下所有表在两个节点数据分布差异情况
3、找出记录数相差很大的表,查看表的SQL定义
db2look -d [dbname] -i [userName] -w [password] -z [schemaName] -t [tableName] -e -nofed -o tableddl.sql
或者使用连接工具生成DDL查看
4、根据实际情况进行数据清理或者重新建表
补充:也可直接查看某一具体表在个节点的数据分布
select 'aaa.bbb' as tabname,count(*) as cnt ,dbpartitionnum(hash字段) from aaa.bbb group by dbpartitionnum(hash字段) with ur;
DB2检查数据在各节点分布情况的更多相关文章
- 双重检查加锁机制(并发insert情况下数据重复插入问题的解决方案)
双重检查加锁机制(并发insert情况下数据重复插入问题的解决方案) c#中单例模式和双重检查锁 转:https://blog.csdn.net/zhongliangtang/article/deta ...
- 【DB2】数据迁移
数据迁移概述 在日常生活中常有数据的导入导出,为此db2提出了很多工具可以选择,export.import.load.db2look.db2move.db2dart,如下图所示: a.最上面虚线框部分 ...
- DB2 移动数据总结一
数据移动参考的连接 IMPORT http://www-01.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.db2.luw.admin.cm ...
- DB2表数据导出、导入及常用sql使用总结
一.DB2数据的导出: export to [path(例:D:"TABLE1.ixf)]of ixf select [字段(例: * or col1,col2,col3)] from ...
- KS-检验(Kolmogorov-Smirnov test) -- 检验数据是否符合某种分布
Kolmogorov-Smirnov是比较一个频率分布f(x)与理论分布g(x)或者两个观测值分布的检验方法.其原假设H0:两个数据分布一致或者数据符合理论分布.D=max| f(x)- g(x)|, ...
- 求一组数字序列的分布情况(java)
最近需要做一个正态分布的函数图像所以要处理一段double序列 写了这个算法 先上效果图: 核心思想: 1先根据步长计算每一个区间 2循环进行判断序列中每个数属于哪个区间 3用一个数组来保存每一个区 ...
- veridata实验举例(2)验证表BONUS与表SALGRADE两节点同步情况
veridata实验举例(2)验证表BONUS与表SALGRADE两节点同步情况 续接前几篇文章: 1.GoldenGate配置(一)之单向复制配置 地址:点击打开链接 2.GoldenGate配置( ...
- Mycat 分片规则详解--数据迁移及节点扩容
使用的是 Mycat 提供的 dataMigrate 脚本进行对数据进行迁移和节点扩容,目前支持的 Mycat 是1.6 版本,由于 Mycat 是由 Java 编写的因此在做数据迁移及节点扩容时需要 ...
- Zookeeper命令行操作(常用命令;客户端连接;查看znode路径;创建节点;获取znode数据,查看节点内容,设置节点内容,删除节点;监听znode事件;telnet连接zookeeper)
8.1.常用命令 启动ZK服务 bin/zkServer.sh start 查看ZK服务状态 bin/zkServer.sh status 停止ZK服务 bin/zkServer.sh stop 重启 ...
随机推荐
- break 和 continue 的用法
break 是结束循环 continue 是结束本次循环,接下下一个循环
- spring 通过注解装配Bean
使用注解的方式可以减少XML的配置,注解功能更为强大,它既能实现XML的功能,也提供了自动装配的功能,采用了自动装配后,程序员所需要做的决断就少了,更加有利于对程序的开发,这就是“约定优于配置”的开发 ...
- pix2pix&Cycle GAN&pix2pix HD
这里简短地谈一下如题的三篇论文: 参考:https://blog.csdn.net/gdymind/article/details/82696481 (1)pix2pix:从一张图片生成另一张图片 p ...
- 改进初学者的PID-积分饱和
最近看到了Brett Beauregard发表的有关PID的系列文章,感觉对于理解PID算法很有帮助,于是将系列文章翻译过来!在自我提高的过程中,也希望对同道中人有所帮助.作者Brett Beaure ...
- MVC ViewBag和ViewData的使用
ViewBag public ActionResult About() { ViewBag.Message = "Your application description page.&quo ...
- php 保留2位小数
$num = 10.4567; //第一种:利用round()对浮点数进行四舍五入 echo round($num,); //10.46 //第二种:利用sprintf格式化字符串 $format_n ...
- LODOP统计table自动分页后的每页的某列合计值
LODOP中超文本会根据打印项高度或超过纸张,自动分页.(相关博文:Lodop打印控件 超文本自动分页.LODOP中ADD_PRINT_TABLE.HTM.HTML表格自动分页测试.Lodop打印表格 ...
- 【Leetcode_easy】888. Fair Candy Swap
problem 888. Fair Candy Swap solution: class Solution { public: vector<int> fairCandySwap(vect ...
- Cas(08)——单点登出
单点登出 目录 1.1 Cas Client端配置单点登出 1.2 Cas Server端禁用单点登出 1.1 Cas Client端配置单点登出 单点登出功能跟单点登录功能是 ...
- Vue零碎总结
1.Vue指令里的bind钩子是生成了vnode,但是将它插入/更新到浏览器dom树之前的操作,因此对于一些需要插入dom树后执行的操作它是不支持的,如el.focus()方法,这些要放在insert ...