我使用oracle cdc 的同步模式,反复打开关闭窗口,同步50万条数据,每次重新打开窗口前,都会清除ChangeTable中的过期数据,但是效率非常低,我发现大部分时间都消耗在了删除过期数据和打开窗口上面。
并且在同步完这50W条数据后,查询ChangeTable的count(*),需要很长时间才能返回结果(这时ChangeTable中已经没有数据了)。
COUNT(*)
----------
0执行计划
----------------------------------------------------------
Plan hash value: 155902971-----------------------------------------------------------------------------------------------| Id | Operation | Name | Rows | Cost (%CPU)| Time
| Pstart| Pstop |-----------------------------------------------------------------------------------------------| 0 | SELECT STATEMENT | | 1 | 27359 (1)| 00:05:2
| | || 1 | SORT AGGREGATE | | 1 | |
| | || 2 | PARTITION RANGE SINGLE| | 1 | 27359 (1)| 00:05:2
| 1 | 1 || 3 | TABLE ACCESS FULL | CDCSOURCE20$1 | 1 | 27359 (1)| 00:05:2
| 1 | 1 |-----------------------------------------------------------------------------------------------
Note
-----
- dynamic sampling used for this statement (level=2)
统计信息
----------------------------------------------------------
0 recursive calls
0 db block gets
100149 consistent gets
76178 physical reads
0 redo size
422 bytes sent via SQL*Net to client
415 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed发现consistent gets和physical reads异常高,是不是ChangeTable出了什么问题,导致与此表相关的操作都非常慢。
并且在同步完这50W条数据后,查询ChangeTable的count(*),需要很长时间才能返回结果(这时ChangeTable中已经没有数据了)。
COUNT(*)
----------
0执行计划
----------------------------------------------------------
Plan hash value: 155902971-----------------------------------------------------------------------------------------------| Id | Operation | Name | Rows | Cost (%CPU)| Time
| Pstart| Pstop |-----------------------------------------------------------------------------------------------| 0 | SELECT STATEMENT | | 1 | 27359 (1)| 00:05:2
| | || 1 | SORT AGGREGATE | | 1 | |
| | || 2 | PARTITION RANGE SINGLE| | 1 | 27359 (1)| 00:05:2
| 1 | 1 || 3 | TABLE ACCESS FULL | CDCSOURCE20$1 | 1 | 27359 (1)| 00:05:2
| 1 | 1 |-----------------------------------------------------------------------------------------------
Note
-----
- dynamic sampling used for this statement (level=2)
统计信息
----------------------------------------------------------
0 recursive calls
0 db block gets
100149 consistent gets
76178 physical reads
0 redo size
422 bytes sent via SQL*Net to client
415 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed发现consistent gets和physical reads异常高,是不是ChangeTable出了什么问题,导致与此表相关的操作都非常慢。
解决方案 »
- 路过不要错过哦!!帮帮忙写下你的sql语句吧??
- 求助insert values效率问题
- 请问有谁安装过oracle webserver 吗?
- 急,Oracle 行转列问题,最后要捆绑到asp.net gridview
- 动态SQL创建用户的问题………………
- 这个序列怎么能插入到表里啊??
- 哪位能提供 PL/SQL Developer 软件下载的?
- server sql 转化为 oracle 该怎么实现
- SOS------------------------------------sp_tables-------------------------------------------------SOS
- 如何把foxpro的本地表数据倒出到远程oracle数据库里???
- 一个应用程序连接多个不同的数据库问题,急啊!
- 请教一个存储过程的写法?
没有数据也会去扫描HWM