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 重启 ...
随机推荐
- Qt编写气体安全管理系统3-用户模块
一.前言 从这篇开始逐个写具体的功能模块,用户模块主要有四个方面,用户登录.用户退出.用户管理.权限控制.这里都按照简单的常规做法来做,比如用户登录界面,就将用户名提供下拉框选择,然后输入密码,密码框 ...
- Qt编写自定义控件61-通用移动
一.前言 通用移动类,目标就是为了实现放入任意的控件以后,支持鼠标拖动,在容器中或者父类中拖动,这个应用场景非常多,比如在地图上放置的设备,需要用户自行按下拖动到指定的合适的位置,然后保存设备的位置坐 ...
- 深入理解JVM+G1+GC.pdf (中文版带书签)
目录 序 VII前言 IX 第1章 JVM & GC基础知识 11.1 引言 21.2 基本术语 31.2.1 Java相关术语 41.2.2 JVM/GC通用术语 241.2.3 G1涉及术 ...
- elasticsearch关键词查询不分词
$query = [ 'bool' => [ 'must' => [ 'match_phrase' => ['content' => $word] //$word词不被分词 ] ...
- VC.DNS解析(winsock)
1.尝试了 gethostbyname(...) 和 Qt598中的qhostinfo::fromname(...),都可以解析出来IP,但是有一个问题:域名指向的IP改变了,这两种方式需要等较长时间 ...
- 客户端连接Codis集群
新建maven webapp项目 添加相关依赖: <dependency> <groupId>redis.clients</groupId> <artifac ...
- 爬虫存储介质之MongoDB存储
常用数据库 mongoDB4.0: 下载:https://www.mongodb.com/ windows安装.Linux安装见: https://www.runoob.com/mongodb/mon ...
- 面向对象分析与设计—OOA部分
第二部分 面向对象分析 2.1 面向对象分析(OOA)的定义? OOA——面向对象的分析,就是运用面向对象方法进行系统分析,对问题域(问题所涉及的范围)和系统责任(所开发的系统应具备的职能)进行分析与 ...
- PAT(B) 1086 就不告诉你(Java)
题目链接:1086 就不告诉你 (15 point(s)) 题目描述 做作业的时候,邻座的小盆友问你:"五乘以七等于多少?"你应该不失礼貌地围笑着告诉他:"五十三.&qu ...
- IAR_EW_MSP430下载
附带完整安装过程,来自本人下载截图. 附带四种花色的花样灯源码和仿真图(ps:不用担心是错的,有疑问欢迎博客留言) 链接:https://pan.baidu.com/s/1ShDRlEQLwkYNOu ...