暂无图片
分享
宋金雨
2020-05-11
Oracle 11g expdb导出的单表行数比原表利用count(*)返回的要多,有大佬可能帮忙解答下吗?
暂无图片 5M

导出命令
expdp system/passw0rd directory=expdb dumpfile=C04.dmp tables=A.C04 logfile=C04.txt parallel=8 filesize=100G &

收藏
分享
7条回答
默认
最新
盖国强

如果不是导出的过程中增加了记录,那就是你的 count 计算错误。

暂无图片 评论
暂无图片 有用 0
盖国强

count 错误的原因可能有,索引和数据不一致,count查询通过索引和全表扫描获得的数据会不一致。

暂无图片 评论
暂无图片 有用 0
JiekeXu
暂无图片

建议先查看一下表的统计信息是不是最新的,如果不是最新,先收集一下两边表的统计信息,然后在看看。

暂无图片 评论
暂无图片 有用 0
宋金雨

多谢盖总百忙之中解惑。那就是说导出肯定是不会有这类问题出现的(导出过程中没有增加记录),那么请问该怎么样可以纠正一下count计算错误呢?

暂无图片 评论
暂无图片 有用 0
Gavin Chan

确认下统计信息,如果统计信息比较旧,可以收集一把,然后再看看;
另外,可以对比下多出来的数据是什么,进而可以确定下一些信息,比如新增的时间,为什么会多出来等。

暂无图片 评论
暂无图片 有用 0
宋金雨

感谢大家的热情解答,谢谢。

暂无图片 评论
暂无图片 有用 0
宋金雨
问题已关闭:
暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏