powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Informix [игнор отключен] [закрыт для гостей] / DELETE через Perl удаляет не все записи.
3 сообщений из 3, страница 1 из 1
DELETE через Perl удаляет не все записи.
    #35435414
Выбегалло
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересуюсь, может кто сталкивался. Perl-овый скрипт удаляет часть записей в здоровенной таблице (600M записей) и умудряется время от времени оставить часть записей, отвечающих условию.

-------- кусок лога ---------
Sun Jul 06 03:10:54 2008 Counting data for dnis_usage_fact ---- date_key = 5910 in Fact table
dnis_usage_fact count sql statement: select count(*) from icall_mart_prod1:dnis_usage_fact where date_key = 5910
dnis_usage_fact before: 176528
Sun Jul 06 03:11:15 2008 Deleting data for dnis_usage_fact ---- date_key = 5910 in Fact table
dnis_usage_fact deleted: 144405
Sun Jul 06 03:12:15 2008 Counting data for dnis_usage_fact ---- date_key = 5910 in Fact table
dnis_usage_fact count sql statement: select count(*) from icall_mart_prod1:dnis_usage_fact where date_key = 5910
dnis_usage_fact records: 32123

Sun Jul 06 03:12:36 2008 Error, there are records present for 06/29/2008 being processed
---------

кусок кода, отвечающий за удаление :
-----------
sub delete_day_data
{
my $date_key=$_[0];
my $del_num_rows = -1;
my $sth_del;
my $SSQL="delete $fact_table where date_key = $date_key ";

&log_message("Deleting data for $fact_table ---- date_key = $date_key in Fact table");
$sth_del = $dbh->prepare($SSQL) or die &log_message("Error preparing delete:\n $SSQL\n $DBI::errstr",1);
$del_num_rows = $sth_del->execute() or die &log_message("Error executing:\n $SSQL\n $DBI::errstr",1);
print "$fact_table deleted: $del_num_rows\n";
}
----------

Удаляют от 140K до 1.2M записей зараз, ошибка случилась при удалении 144К.
База без журналов.
Informix Version 10.00.FC3X6 , O/S - AIX 5.3.0.0,

Perl :

Summary of my perl5 (revision 5 version 8 subversion 7) configuration:
Platform:
osname=aix, osvers=5.3.0.0, archname=aix-64all
uname='aix icvaaix05 3 5 00c087ee4c00 '
config_args='-Dcc=gcc -Dprefix=/usr'
hint=recommended, useposix=true, d_sigaction=define
usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef
useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
use64bitint=define use64bitall=define uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='gcc', ccflags ='-D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -DUSE_NATIVE_DLOPEN -fno-strict-aliasing -pipe -maix64 -DUSE_64_BIT_ALL',
optimize='-O',
cppflags='-D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -DUSE_NATIVE_DLOPEN -fno-strict-aliasing -pipe'
ccversion='', gccversion='3.3.2', gccosandvers='aix5.3.0.0'
intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=87654321
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=8
ivtype='long long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
alignbytes=8, prototype=define
Linker and Libraries:
ld='gcc -maix64', ldflags =' -Wl,-brtl -Wl,-bdynamic -Wl,-bmaxdata:0x80000000 -maix64 -Wl,-b64'
libpth=/lib /usr/lib /usr/ccs/lib
libs=-lbind -lnsl -ldbm -ldl -lld -lm -lcrypt -lc -lbsd
perllibs=-lbind -lnsl -ldl -lld -lm -lcrypt -lc -lbsd
libc=/lib/libc.a, so=a, useshrplib=false, libperl=libperl.a
gnulibc_version=''
Dynamic Linking:
dlsrc=dl_aix.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Xlinker -bE:/usr/lib/perl5/5.8.7/aix-64all/CORE/perl.exp'
cccdlflags=' ', lddlflags=' -Wl,-b64 -Wl,-bhalt:4 -Wl,-bexpall -Wl,-G -Wl,-bnoentry -lc'


Characteristics of this binary (from libperl):
Compile-time options: USE_64_BIT_INT USE_64_BIT_ALL USE_LARGE_FILES
Built under aix
Compiled at Aug 30 2005 16:06:40
@INC:
/usr/lib/perl5/5.8.7/aix-64all
/usr/lib/perl5/5.8.7
/usr/lib/perl5/site_perl/5.8.7/aix-64all
/usr/lib/perl5/site_perl/5.8.7
/usr/lib/perl5/site_perl


В таком вот аксепте
...
Рейтинг: 0 / 0
DELETE через Perl удаляет не все записи.
    #35435550
Фотография Тан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВыбегаллоИнтересуюсь, может кто сталкивался. Perl-овый скрипт удаляет часть записей в здоровенной таблице (600M записей) и умудряется время от времени оставить часть записей, отвечающих условию.

-------- кусок лога ---------
Sun Jul 06 03:10:54 2008 Counting data for dnis_usage_fact ---- date_key = 5910 in Fact table
dnis_usage_fact count sql statement: select count(*) from icall_mart_prod1:dnis_usage_fact where date_key = 5910
dnis_usage_fact before: 176528
Sun Jul 06 03:11:15 2008 Deleting data for dnis_usage_fact ---- date_key = 5910 in Fact table
dnis_usage_fact deleted: 144405
Sun Jul 06 03:12:15 2008 Counting data for dnis_usage_fact ---- date_key = 5910 in Fact table
dnis_usage_fact count sql statement: select count(*) from icall_mart_prod1:dnis_usage_fact where date_key = 5910
dnis_usage_fact records: 32123

Sun Jul 06 03:12:36 2008 Error, there are records present for 06/29/2008 being processed
---------

Удаляют от 140K до 1.2M записей зараз, ошибка случилась при удалении 144К.
База без журналов.
Informix Version 10.00.FC3X6 , O/S - AIX 5.3.0.0,

может быть в середине пути случилась ошибка?
база без журналов, что успел, то удалил
...
Рейтинг: 0 / 0
DELETE через Perl удаляет не все записи.
    #35435561
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тан
может быть в середине пути случилась ошибка?
база без журналов, что успел, то удалил
тогда бы сработал &log_message("Error executing:\n $SSQL\n $DBI::errstr",1);
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Informix [игнор отключен] [закрыт для гостей] / DELETE через Perl удаляет не все записи.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]