CftClub.ru
Клуб специалистов ЦФТ-Банк

Проверка по списку недействительных российских паспортов
На страницу Пред.  1, 2, 3  След.
 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Настройка и сопровождение
Предыдущая тема :: Следующая тема  
Автор Сообщение
Gobur
Профи


Вступление в Клуб: 06.11.2012
СообщениеПн Авг 03, 2015 14:18    Ответить с цитатой
Полезность: Нет оценки
timochev пишет:
yaffil пишет:
За неделю на тесте может и загрузит Laughing

Именно так.
Мы сделали в БД свою таблицу, грузим в нее с помощью sqlldr в режиме direct load, а затем уже сравниваем (и корректируем) ЦФТ-шный справочник со свежими загруженными данными. Ежедневное обновление занимает 25-30 минут на рабочей базе.
Но такое решение несколько нарушает регламент разработки...


А сколько лоадером у вас грузит по времени? Операцией ИБСО достаточно долго 92 миллиона записей подгружает. Может лоадер быстрее.
e.kha
Участник со стажем


Вступление в Клуб: 26.04.2012
СообщениеПн Авг 03, 2015 14:20    Ответить с цитатой
Полезность: Нет оценки
у меня в среднем где то 70-80 сек... По сетке если где то 2 минуты...

Но уточню, это не дистрибутивную таблицу...
timochev
Эксперт


Вступление в Клуб: 02.07.2007
СообщениеПн Авг 03, 2015 14:38    Ответить с цитатой
Полезность: Нет оценки
Gobur пишет:
А сколько лоадером у вас грузит по времени? Операцией ИБСО достаточно долго 92 миллиона записей подгружает. Может лоадер быстрее.

Ежедневное обновление:
SQL-Loader - около 8 минут
пересбор статистики - 13 мин.
Пометка удаленных записей в справочнике ЦФТ-Банк - 4 минуты
Добавление новых записей - 7 минут.
Gobur
Профи


Вступление в Клуб: 06.11.2012
СообщениеПн Авг 03, 2015 14:46    Ответить с цитатой
Полезность: Нет оценки
timochev пишет:
Gobur пишет:
А сколько лоадером у вас грузит по времени? Операцией ИБСО достаточно долго 92 миллиона записей подгружает. Может лоадер быстрее.

Ежедневное обновление:
SQL-Loader - около 8 минут
пересбор статистики - 13 мин.
Пометка удаленных записей в справочнике ЦФТ-Банк - 4 минуты
Добавление новых записей - 7 минут.

неплохо - надо попробовать.
timochev
Эксперт


Вступление в Клуб: 02.07.2007
СообщениеПн Авг 03, 2015 14:57    Ответить с цитатой
Полезность: 1
Gobur пишет:
неплохо - надо попробовать.

От пересбора статистики, наверное, можно отказаться, если прописать хинты. У меня сначала были планы запросов плохие - вот и вставил.

А вообще скоро ФМС начнет через СМЭВ подключать.
http://cftclub.ru/viewtopic.php?t=4090
e.kha
Участник со стажем


Вступление в Клуб: 26.04.2012
СообщениеПн Авг 03, 2015 14:59    Ответить с цитатой
Полезность: Нет оценки
Имея опыт как работает ФМС, мне кажется, сей метод будет еще актуальным....
Gobur
Профи


Вступление в Клуб: 06.11.2012
СообщениеПн Авг 03, 2015 15:25    Ответить с цитатой
Полезность: Нет оценки
timochev пишет:
Gobur пишет:
неплохо - надо попробовать.

От пересбора статистики, наверное, можно отказаться, если прописать хинты. У меня сначала были планы запросов плохие - вот и вставил.

А вообще скоро ФМС начнет через СМЭВ подключать.
http://cftclub.ru/viewtopic.php?t=4090

через СМЭФ дороговато получается.

еще такой вопросик - но первоначальная загрузка из временной таблицы в основную все равно долго идет?
Лоадером у меня даже на тормозную тестовую 25 миллионов уже за пару минут грузануло о временную табличку.
timochev
Эксперт


Вступление в Клуб: 02.07.2007
СообщениеПн Авг 03, 2015 15:52    Ответить с цитатой
Полезность: Нет оценки
Gobur пишет:
еще такой вопросик - но первоначальная загрузка из временной таблицы в основную все равно долго идет?
Лоадером у меня даже на тормозную тестовую 25 миллионов уже за пару минут грузануло о временную табличку.

первоначальный перенос занял 40 минут (77 млн записей)

Либо у нас рабочая база такая же тормознутая, либо параметры можно подкрутить. Но скорость меня устраивает.
Код:

  92791525 Rows successfully loaded.
  0 Rows not loaded due to data errors.
  0 Rows not loaded because all WHEN clauses were failed.
  0 Rows not loaded because all fields were null.

Bind array size not used in direct path.
Column array  rows :   50000
Stream buffer bytes: 1000000
Read   buffer bytes: 1000000

Total logical records skipped:          0
Total logical records read:      92791525
Total logical records rejected:         0
Total logical records discarded:        0
Total stream buffers loaded by SQL*Loader main thread:     4083
Total stream buffers loaded by SQL*Loader load thread:      743

Run began on Mon Aug 03 10:37:07 2015
Run ended on Mon Aug 03 10:45:15 2015

Elapsed time was:     00:08:08.68
CPU time was:         00:00:50.57
Gobur
Профи


Вступление в Клуб: 06.11.2012
СообщениеПн Авг 03, 2015 16:03    Ответить с цитатой
Полезность: Нет оценки
timochev пишет:

первоначальный перенос занял 40 минут (77 млн записей)


а вот эти 40 минут уже операцией ИБСОШной делали? К своей временной получается обращались через pl/sql вставку?
timochev
Эксперт


Вступление в Клуб: 02.07.2007
СообщениеПн Авг 03, 2015 16:32    Ответить с цитатой
Полезность: 2
ЦФТ-шная операция запускается каждые 15 минут в джобе:
1) проверяет наличие файла *.BZ2 в каталоге импорта на fio
2) запускает разархивацию через внешнюю команду
3) через внешнюю команду в файле формируется индексированная колонка Серия+Номер
4) очищается временная таблица через execute_sql
5) через внешнюю команду запуск SQL-Loader
6) сбор статистики через execute_sql
7) собственно удаление и добавление записей

обращение к таблице в п.7 сделано через общесистемную вьюху (Словарь -> Системные справочники -> Представления)
Gobur
Профи


Вступление в Клуб: 06.11.2012
СообщениеПн Авг 03, 2015 16:42    Ответить с цитатой
Полезность: Нет оценки
timochev пишет:
ЦФТ-шная операция запускается каждые 15 минут в джобе:
1) проверяет наличие файла *.BZ2 в каталоге импорта на fio
2) запускает разархивацию через внешнюю команду
3) через внешнюю команду в файле формируется индексированная колонка Серия+Номер
4) очищается временная таблица через execute_sql
5) через внешнюю команду запуск SQL-Loader
6) сбор статистики через execute_sql
7) собственно удаление и добавление записей

обращение к таблице в п.7 сделано через общесистемную вьюху (Словарь -> Системные справочники -> Представления)

спасибо за идею, лоадер прям спасение в этой ситуации, а то уже как то грустно было..
Gobur
Профи


Вступление в Клуб: 06.11.2012
СообщениеПн Авг 03, 2015 18:23    Ответить с цитатой
Полезность: Нет оценки
А вот еще вопросик в тему. Если у временной таблицы есть есть индекс, нужно ли его потом пересоздавать при использовании DIRECT=TRUE (во всяком случае при налии индекса скорость падает).
timochev
Эксперт


Вступление в Клуб: 02.07.2007
СообщениеВт Авг 04, 2015 08:51    Ответить с цитатой
Полезность: Нет оценки
Не надо, при загрузке пишет:
Цитата:
The following index(es) on table XXX.CERT_INV_IMP were processed:
index XXX.IDX_CERT_INV_IMP_SER_NUM loaded successfully with 92791525 keys
Gobur
Профи


Вступление в Клуб: 06.11.2012
СообщениеВт Авг 04, 2015 11:17    Ответить с цитатой
Полезность: Нет оценки
Просто странно - на тест за 9 минут грузит с индексом. На рабочую - 1 час 20.
Все отличие - на тестовой нет архивлогов (при этом тестовая очень тормозная). Надо еще опцию UNRECOVERABLE попробовать.
timochev
Эксперт


Вступление в Клуб: 02.07.2007
СообщениеВт Авг 04, 2015 11:25    Ответить с цитатой
Полезность: 1
В каком режиме работает SQL-Loder? direct?
Если так, то данные пишутся напрямую в файл БД, никакие архивлоги не формируются.

Код:
create table XXX.CERT_INV_IMP
(
  c_ser       VARCHAR2(50),
  c_num       VARCHAR2(50),
  c_ser_num   VARCHAR2(100)
)
tablespace T_USR
  pctfree 5
  initrans 1
  maxtrans 255
  storage
  (
    initial 500M
    next 50M
    minextents 1
    maxextents unlimited
    pctincrease 0
  );
-- Create/Recreate indexes
create index XXX.IDX_CERT_INV_IMP_SER_NUM on XXX.CERT_INV_IMP (C_SER_NUM)
  tablespace I_USR
  pctfree 10
  initrans 2
  maxtrans 255
  storage
  (
    initial 500M
    next 50M
    minextents 1
    maxextents unlimited
    pctincrease 0
  );

grant select,update,insert,delete on XXX.CERT_INV_IMP to IBS with grant option;

create or replace procedure XXX.TRUNC_CERT_INV_IMP is
begin
    execute immediate('truncate table XXX.CERT_INV_IMP');
end;
/
grant execute on XXX.TRUNC_CERT_INV_IMP to IBS;


Код:
LOAD DATA
INFILE 'in/data.csv'
BADFILE 'log/cert.bad'
DISCARDFILE 'log/cert.dsc'
TRUNCATE
INTO TABLE XXX.CERT_INV_IMP
FIELDS
(C_SER CHAR TERMINATED BY ',',
C_NUM CHAR TERMINATED BY ',',
C_SER_NUM TERMINATED BY ','
)
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Настройка и сопровождение Часовой пояс: GMT + 3
На страницу Пред.  1, 2, 3  След.
Страница 2 из 3

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Рейтинг@Mail.ru