一张表的数据量比较大,每天要插入三百万条以上的记录。
是用代码将文件中的数据导入库的
表结构如下:create table ocs_retpin_lt
(
CountDate varchar2(8) not null,
MSISDN varchar2(32) not null,
PINTotalErrTms NUMBER(10,0)
);
create index ix_retpin_lt on ocs_retpin_lt(CountDate,MSISDN);由于数据量很大,不知道是否有重复记录,所以就删掉主键改为索引了。
结果昨天反反复复将一个文件反复入库,这个文件中有160多万条数据,
每次却只能入657587条记录。将第657587条附近的几条记录拿出来查找,却没有在文件当中找到重复的记录。请教各位大侠:
这是为何???
请知无不言言无不尽。
现在毫无头绪。想先从数据库中入手解决该问题,如果这边没问题,那就再去入库代码中找问题了。
是用代码将文件中的数据导入库的
表结构如下:create table ocs_retpin_lt
(
CountDate varchar2(8) not null,
MSISDN varchar2(32) not null,
PINTotalErrTms NUMBER(10,0)
);
create index ix_retpin_lt on ocs_retpin_lt(CountDate,MSISDN);由于数据量很大,不知道是否有重复记录,所以就删掉主键改为索引了。
结果昨天反反复复将一个文件反复入库,这个文件中有160多万条数据,
每次却只能入657587条记录。将第657587条附近的几条记录拿出来查找,却没有在文件当中找到重复的记录。请教各位大侠:
这是为何???
请知无不言言无不尽。
现在毫无头绪。想先从数据库中入手解决该问题,如果这边没问题,那就再去入库代码中找问题了。
execute fetch_fileinfo failed, SQLCODE = 1403, ISAM_CODE = 0, loadtblname = ocs_retpin_lt and loadflag = I and loaddate =
Execute sql success, SQL: COMMIT WORK.
Enter Cmultiloadtblinfo::fetch()
Cmultiloadtblinfo::fetch: execute fetch_tblinfo(select trim(tblname), createtimes from multiloadtblinfo where dealflag = '1' and pid = 0 and (lastdealtime + numtodsinterval(120, 'second') ) < sysdate and rownum = 1) failed, SQLCODE = 1403, ISAM_CODE = 0
Execute sql success, SQL: ROLLBACK WORK.
create table ocs_retpin_lt_bak
(
CountDate varchar2(8) null,
MSISDN varchar2(32) null,
PINTotalErrTms varchar2(500)
);
这样 先把该文件的数据都导到cs_retpin_lt_bak 这张表里面,看看数据量是否是160多万条数据然后 在查找 有多少条CountDate 为空的,还有多少MSISDN 为空的, 还有PINTotalErrTms 数据类型不是数值型的。