情景:总所周知,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检查数据在各节点分布情况的更多相关文章

  1. 双重检查加锁机制(并发insert情况下数据重复插入问题的解决方案)

    双重检查加锁机制(并发insert情况下数据重复插入问题的解决方案) c#中单例模式和双重检查锁 转:https://blog.csdn.net/zhongliangtang/article/deta ...

  2. 【DB2】数据迁移

    数据迁移概述 在日常生活中常有数据的导入导出,为此db2提出了很多工具可以选择,export.import.load.db2look.db2move.db2dart,如下图所示: a.最上面虚线框部分 ...

  3. DB2 移动数据总结一

    数据移动参考的连接 IMPORT http://www-01.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.db2.luw.admin.cm ...

  4. DB2表数据导出、导入及常用sql使用总结

      一.DB2数据的导出: export to [path(例:D:"TABLE1.ixf)]of ixf select [字段(例: * or col1,col2,col3)] from ...

  5. KS-检验(Kolmogorov-Smirnov test) -- 检验数据是否符合某种分布

    Kolmogorov-Smirnov是比较一个频率分布f(x)与理论分布g(x)或者两个观测值分布的检验方法.其原假设H0:两个数据分布一致或者数据符合理论分布.D=max| f(x)- g(x)|, ...

  6. 求一组数字序列的分布情况(java)

    最近需要做一个正态分布的函数图像所以要处理一段double序列 写了这个算法  先上效果图: 核心思想: 1先根据步长计算每一个区间 2循环进行判断序列中每个数属于哪个区间 3用一个数组来保存每一个区 ...

  7. veridata实验举例(2)验证表BONUS与表SALGRADE两节点同步情况

    veridata实验举例(2)验证表BONUS与表SALGRADE两节点同步情况 续接前几篇文章: 1.GoldenGate配置(一)之单向复制配置 地址:点击打开链接 2.GoldenGate配置( ...

  8. Mycat 分片规则详解--数据迁移及节点扩容

    使用的是 Mycat 提供的 dataMigrate 脚本进行对数据进行迁移和节点扩容,目前支持的 Mycat 是1.6 版本,由于 Mycat 是由 Java 编写的因此在做数据迁移及节点扩容时需要 ...

  9. Zookeeper命令行操作(常用命令;客户端连接;查看znode路径;创建节点;获取znode数据,查看节点内容,设置节点内容,删除节点;监听znode事件;telnet连接zookeeper)

    8.1.常用命令 启动ZK服务 bin/zkServer.sh start 查看ZK服务状态 bin/zkServer.sh status 停止ZK服务 bin/zkServer.sh stop 重启 ...

随机推荐

  1. Docker容器(三)——容器端口映射

    (1).容器端口映射 容器的端口映射用到了-p选项,-p [物理机端口]:[容器实例端口] 让centos:httpd运行在后台 [root@youxi1 ~]# docker run -d -p 8 ...

  2. IIS+PHP本地开发环境配置

    打开Win7系统自带IIS.如图只要点击两下,CGI一定要勾选上!完成后打开浏览器输入127.0.0.1测试一下,如果能打开页面说明iis开启成功. 安装PHP.不同版本的PHP会有所不同,这里使用的 ...

  3. Windows2008R2+iis7.5环境下的dz论坛X3版伪静态设置教程

    Windows2008R2+iis7.5环境下的dz论坛X3版伪静态设置教程 因为2008R2不是那么的普及,加上X3版新出不久,所以伪静态的设置教程比较少,今天搞出来了,其实很简单,那么下面给大家简 ...

  4. iOS-退出App程序,进入设置页面

     AppDelegate *app = [UIApplication sharedApplication].delegate;     UIWindow *window = app.window;   ...

  5. .net core 使用ClaimsIdentity实现登录授权

    一.新建用户 1.先新建一个用户表,用户存储用户信息. public class UserInfo { public const string Salt = "cesi"; [Ke ...

  6. CF1237D Balanced Playlist

    思路:假设从第i首歌开始听,结束位置为j,那么从第i+1首歌开始听,结束位置一定不早于j.可以用反证法证明.想到这一点,就不难解决了. 实现: #include <bits/stdc++.h&g ...

  7. idea快速查看api文档

    第一种: 显示结果:点击箭头可以跳转到网页上查看 第二种:ctrl+q 快捷键

  8. Java网络编程探究|乐字节

    大家好,我是乐字节小乐,上次给大家讲述了Java中的IO流之输出流|乐字节,本文将会给大家讲述网络编程. 主要内容如下: 网络 网络分层 IP位置 端口port 网络编程 一. 网络 1.概念 网络即 ...

  9. 怎么对10亿数据量级的mongoDB作高效的全表扫描

    转自:http://quentinxxz.iteye.com/blog/2149440 一.正常情况下,不应该有这种需求 首先,大家应该有个概念,标题中的这个问题,在大多情况下是一个伪命题,不应该被提 ...

  10. Java多线程系列--AQS之 LockSupport

    concurrent包是基于AQS (AbstractQueuedSynchronizer)框架的,AQS(JAVA CAS原理.unsafe.AQS)框架借助于两个类: Unsafe(提供CAS操作 ...