|
Битовые значения
|
|||
---|---|---|---|
#18+
akrushТак как это у меня промежуточная таблица только для импорта Кларион-ФБ индексов нет совсем. Вообще нет ничего кроме таблиц. ни ограничений на поля, ничего. Подскажите - какие параметры надо поменять чтобы увеличить кеш.Если индексов нет, то увеличение кеша ничего не даст. akrushПодскажите точное название параметра FWForced Writes ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2018, 14:49 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
kdvakrush, при инсерте кэш никак не влияет. Кэш вообще надо выставлять сообразно архитектуре и экспериментально - классик от 512 до 2048, суперклассик от 512 до 4096, суперсервер от 8192 до половины RAM. Влад написал увеличить, поэтому и спрашиваю. Там не только инсер, а еще и изменение дат (-36161 день) и все текстовые поля замена Нул Размер страницы 8192 Архитектура: ServerMode = Super Платформа: Вин10 32бита Все параметры по умолчанию. подскажите может что-то изменить. Там нашел параметр #CpuAffinityMask = 0. Он влияет на использование именно процессора или на ядра. Подскажите, плиз :'( ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2018, 14:57 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
akrush, у меня проц i7, 4 потока ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2018, 14:59 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
akrushТам нашел параметр #CpuAffinityMask = 0. Он влияет на использование именно процессора или на ядра. Подскажите, плиз :'( это не трогай! ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2018, 15:12 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
akrush.......... Влад написал увеличить, поэтому и спрашиваю. ......... Ну он еще писал Убедиться, что используются препарированные запросы.и это пожалуй сейчас важнее кеша ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2018, 15:27 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
Да какие препарированные запросы, он же написал "текстовый скрипт". Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2018, 15:29 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
m7m, Препарированных запросов нет. Есть скрипт, выглядит вот так (по одной из таблиц): update APPLIC set DATA_SG=dateadd(day,-36161,DATA_SG);'); update APPLIC set DATA_RG=dateadd(day,-36161,DATA_RG);'); update APPLIC set DATA_R=dateadd(day,-36161,DATA_R);'); update APPLIC set DATA_C=dateadd(day,-36161,DATA_C);'); update APPLIC set DATA_S=dateadd(day,-36161,DATA_S);'); update APPLIC set DATA_E=dateadd(day,-36161,DATA_E);'); update APPLIC set DATA_X=dateadd(day,-36161,DATA_X);'); update APPLIC set DATA_Y=dateadd(day,-36161,DATA_Y);'); update applic set data_sg=null where data_sg<cast('01.01.1950' as DATE);'); update applic set data_rg=null where data_rg<cast('01.01.1950' as DATE);'); update applic set data_r=null where data_r<cast('01.01.1950' as DATE);'); update applic set data_c=null where data_c<cast('01.01.1950' as DATE);'); update applic set data_s=null where data_s<cast('01.01.1950' as DATE);'); update applic set data_e=null where data_e<cast('01.01.1950' as DATE);'); update applic set data_x=null where data_x<cast('01.01.1950' as DATE);'); update applic set data_y=null where data_y<cast('01.01.1950' as DATE);'); update APPLIC set SURN1='' where SURN1 is null;'); update APPLIC set SURN2='' where SURN2 is null;'); update APPLIC set F_NAM='' where F_NAM is null;'); update APPLIC set M_NAM='' where M_NAM is null;'); update APPLIC set INDX='' where INDX is null;'); update APPLIC set BLD_NUM='' where BLD_NUM is null;'); update APPLIC set CORP_NUM='' where CORP_NUM is null;'); update APPLIC set FLAT='' where FLAT is null;'); update APPLIC set PHONE='' where PHONE is null;'); update APPLIC set PLACE='' where PLACE is null;'); update APPLIC set RIZNE='' where RIZNE is null;'); update APPLIC set SUR_NAM=SURN1||SURN2;'); commit; ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2018, 15:37 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
akrush, в конце примера запроса лишняя " ');" просто копипастил из делфей ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2018, 15:38 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
akrush, ну вот для update кеш уже важен. Кстати вот для этого Код: sql 1. 2. 3.
можно и в один запрос собрать Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2018, 15:43 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
akrushЕсть скрипт, выглядит вот такВсе эти апдейты нужно заменить одним, это же ужас-ужас, а не скрипт ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2018, 16:22 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
"APPLIC" - Это та самая External table - или уже таблицы внутри БД Firebird ? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2018, 17:07 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
hvladВсе эти апдейты нужно заменить одним Это не так просто, там зависимые значения.... Код: sql 1. 2. 3. 4.
а это, кажетсЯ, как раз в FB2 правили, чтобы "в лоб" не работало как в IB времена. и после переписывания с "денормализацией" скрипт будет запутанный до чертиков. Это на PSQL надо делать, бежать в цикле, в цикле неспеша и с удобством отрабатывать временные переменные, в конце цикла из них один UPDATE по курсору (fb2) или по RDB$DB_KEY (fb3) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2018, 17:11 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
Arioch, она никак не может быть External table, ибо для них UPDATE не поддерживается ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2018, 17:12 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
akrushupdate APPLIC set SUR_NAM=SURN1||SURN2;'); "ПетровВодкин" слитно, без пробелов и дефисов ? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2018, 17:12 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
Симонов Денис, ну тогда эти преобрзаования надо делать на этапе импорта из ET в SQL-таблицу. PSQL-блок, FOR-SELECT из ET - и уже чистые, переработанные записи в INSERT. И возможно иногда внутри этого цикла делать snapshot, не знаю ,поможет ли это кэшу или наоборот. или можно в FOR-SELECT из ET добавлять FIRST/SKIP и гнать в автономных транзакциях по 10 тыс. строк ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2018, 17:14 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
AriochЭто не так просто, там зависимые значения.... Да, придётся документацию про COALESCE() читать. Это непосильная задача для аффтара. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2018, 17:25 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, дело не в поиске функции, а в копипасте, в денормализации кода вместо одного вызова case/coalesce/where на столбец - придется делать два. КАЖЕТСЯ больше там внутренних зависимостей нет, если я не пропустил и если в скрипт больше ничего не добавится. небольшая копипаста управляема, ЕСЛИ не понадобится усложнить задачу иначе копипаста может пойти в 2 слоя, три слоя и разрастатся соответственно ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2018, 17:45 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
Ariochakrushupdate APPLIC set SUR_NAM=SURN1||SURN2;'); "ПетровВодкин" слитно, без пробелов и дефисов ? Извините, но я не приводил структуру таблицы. В кларион поле фамилия разбито на 2: 7 символов (и по ним строится ключ для поиска по фамилии) + 23 символа остаток от фамилии. Вот я из и прикручиваю слитно. Вот структура временной таблицы (в которую тупо импортирую, а потом будет разбор по нескольким таблицам): CREATE TABLE APPLIC ( APP_NUM BIGINT, CAL_NUM SMALLINT, CAL_LAST SMALLINT, US_ID SMALLINT, SUR_NAM VARCHAR(30), SURN1 VARCHAR(7), SURN2 VARCHAR(23), F_NAM VARCHAR(25), M_NAM VARCHAR(20), INDX VARCHAR(6), VUL_COD INTEGER, BLD_NUM VARCHAR(7), CORP_NUM VARCHAR(2), FLAT VARCHAR(9), PHONE VARCHAR(7), PLACE VARCHAR(1), RIZNE VARCHAR(10), NUMB SMALLINT, INCOM DECIMAL(9,2), OWN_FRM SMALLINT, HOSTEL SMALLINT, CM_AREA DECIMAL(6,2), NM_AREA DECIMAL(6,2), BALC DECIMAL(5,2), AD_AREA DECIMAL(5,2), FROG DECIMAL(5,2), FRUG DECIMAL(5,2), FL_PAY DECIMAL(9,2), NM_PAY DECIMAL(9,2), NM_PAY1 DECIMAL(9,2), CFG_JKP SMALLINT, CFG_SGTP SMALLINT, DEBT SMALLINT, RES1 SMALLINT, RES2 INTEGER, RES3 INTEGER, RES4 SMALLINT, SUBSID DECIMAL(9,2), SUBSUD DECIMAL(9,2), SUBSID1 DECIMAL(9,2), RITE1 INTEGER, RITE2 INTEGER, RITE3 INTEGER, RITE4 INTEGER, RITE5 INTEGER, REEK BIGINT, DATA_SG DATE, DATA_RG DATE, DATA_R DATE, DATA_C DATE, DATA_S DATE, DATA_E DATE, DATA_X DATE, DATA_Y DATE, MARK SMALLINT, STOP SMALLINT ); В этой таблице 56 столбцов, из них 12 битовых полей от 4 до 16 значений записано по битно. Если их расписать все по полям (я пробовал) получается более 150 столбцов. Сама таблица уже разбита на несколько ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2018, 17:47 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
akrush, Имею ввиду в финальной БД таблица APPLIC разбита на 4 таблицы, но финальная структура еще обсуждается. Если у вас всех можно попросить совета, какую структуру лучше всего сделать - я с удовольствием поделюсь ссылкой на структуру (она у меня в HTML) и с еще большим удовольствием выслушаю советы. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2018, 17:53 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
1. Преобразования данных в вашем скрипте - тривиальны 2. Преобразования каждой конкретной записи - если брать только расчёты, за вычетом чтения с диска и записи на диск - практически мгновенны 3. Ваша пробелма - огромный объём данных и многократная их обработка 4. Каждая команда вашего скрипта, если очень грубо, проводит полное копирование (в смысле чтение+запись) таблицы. А команд 28. Вывод - вам нужно объединить импорт данных в Firebird и преобразование (расчёт). Тогда копирование данных будет выполняться один раз, вместо 28. Прочитали строку из External Table в переменные, в тех же переменных преобразовали, вставили в таблицу Firebird уже готовые преобразованные данные, перешли к следующей строке. 21374800 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2018, 20:16 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
akrushВот я из и прикручиваю слитно. В частности, чтобы их "прикручивать слитно" совершенно не нужны в таблице APPLIC два столбца SURN1 и SURN2 - зачем они там? Оставьте только SUR_NAM. И записывайте в него уже посчитанное объединённое значение. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2018, 20:18 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
Гаджимурадов РустамДа какие препарированные запросы, он же написал "текстовый скрипт". Ну вот в нём и проблема ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2018, 20:33 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
AriochakrushВот я из и прикручиваю слитно. В частности, чтобы их "прикручивать слитно" совершенно не нужны в таблице APPLIC два столбца SURN1 и SURN2 - зачем они там? Оставьте только SUR_NAM. И записывайте в него уже посчитанное объединённое значение. не могу. Компонент импорта тупо гонит все в таблицу. Пока еще не понял как перехватить "на лету" каждую запись и преобразовать как мне надо. Автор компонента подсказывал - на выходных попробую все-таки понять как. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2018, 21:54 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
akrush, Этот автор исходники компонента тебе дал? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2018, 22:25 |
|
Битовые значения
|
|||
---|---|---|---|
#18+
akrush... Пока еще не понял как перехватить "на лету" каждую запись и преобразовать как мне надо. .... Зачем на лету Насколько я понял все загоняется в промежуточную таблицу а потом будет раскидываться по другим ну вот во время этого "раскидывания" и делай все что надо (восстанавливай Фамилию, устанавливай даты ну и остальное что надо) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2018, 22:26 |
|
|
start [/forum/topic.php?fid=40&msg=39637529&tid=1561125]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
47ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
others: | 312ms |
total: | 462ms |
0 / 0 |