大神们,求助,DTS工具是如何统计表数据量的,为什么单独执行SQL语句查询出来的数据量都对不上呢,都需要考虑哪些因素?
迁移的指定对象步骤中有个源对象分析
DTS取表中记录数估计是用达梦内部函数实现的,你可以测试一下下面这个查询,看与DTS工具的统计结果是否一致
--调用内部函数获取记录数
SELECT TABLE_ROWCOUNT('模式名','表名')
,SF_GET_TABLE_COUNT('模式名','表名');
--直接count方式获取记录数
SELECT COUNT(1) FROM 表名;
如果查询结果中内置函数和COUNT的结果也是对不上,那就要看一下这张表在统计数据时是不是还有其他业务在操作,造成数据量会产生变化。另外,看一下表的建表DDL中是不是有 WITHOUT COUNTER,不过这个按说不应该会造成数据不一致才对。
还有一个情况,就是看你单独执行的查询数据量SQL语句是怎么写的,如果不是 COUNT(*) 或 COUNT(1) 这样的,而是 COUNT(某个列名),那就要看一下这个列的数据中是否有NULL,在count时会筛掉NULL记录,你看看有没有这种可能。
