Sla
|
|
« Ответ #90 : 17-03-2011 08:33 » |
|
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #91 : 17-03-2011 08:48 » |
|
Sla, я видел этот рисунок. На нём OptionA - это часть от моей схемы
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #92 : 17-03-2011 08:56 » |
|
почитал, разницы, практически, между option нет. Только порт 3050 нужно закрывать от внешних соединений.
ZeBeDee выступает только одним клиентом... Серверов ZeBeDee, может быть несколько (например на разных, портах, на разных адресах)
Один клиент подразумевает, что ZeBeDee является только мостом к Одному сервису.
|
|
« Последнее редактирование: 17-03-2011 09:06 от Sla »
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #93 : 17-03-2011 09:14 » |
|
то есть я пролетаю, похоже
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #94 : 17-03-2011 09:16 » |
|
почему? что тебя смущает? option A видишь? две косых - это много клиентов коннекттся через ZeBeDee к птице
только ZeBeDee может служить одним клиентом для одного сервиса, т.е. нельзя чтобы ZeBeDee стучался на другую птицу с другим портом, для этого нужно поднимать второй ZeBeDee.
|
|
« Последнее редактирование: 17-03-2011 09:20 от Sla »
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #95 : 17-03-2011 09:17 » |
|
но это же мне придётся для каждого УК на сервере один парный ZBD ставить Добавлено через 1 минуту и 25 секунд:то есть вот так УК1::[FB <-> ZBD] <------------> | | УК2::[FB <-> ZBD] <------------> | [тырнет] <---------> СЕРВЕР::[ZBD1,ZBD2,ZBD3 <-> FB] | УК3::[FB <-> ZBD] <------------> | ?
|
|
« Последнее редактирование: 17-03-2011 09:18 от Алексей1153 »
|
Записан
|
|
|
|
Sla
|
|
« Ответ #96 : 17-03-2011 09:24 » |
|
Вот так! УК1::[FBclient <-> ZBDclient] <------------> | | УК2::[FBclient <-> ZBDclient] <------------> | [тырнет] <---------> СЕРВЕР::[ZBD3 <client> FB] | УК3::[FBclient <-> ZBDclient] <------------> |
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
Sla
|
|
« Ответ #97 : 17-03-2011 09:25 » |
|
но не так УК1::[FBclient <-> ZBDclient] <------------> | |<client> FB1] | УК2::[FBclient <-> ZBDclient] <------------> | [тырнет] <---------> СЕРВЕР::[ZBD3 |<client> FB2] | УК3::[FBclient <-> ZBDclient] <------------> | |<client> FB3]
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #98 : 17-03-2011 09:32 » |
|
эхъ. Ладно, когда займусь ближе к делу - там, видимо, и смогу всё понять сразу ))
но Ответ #96 - для меня самое то
|
|
|
Записан
|
|
|
|
Oldy
|
|
« Ответ #99 : 17-03-2011 13:30 » |
|
Где нужно трафик сжать, по тырнету (+шифрование)или между серверами?
|
|
« Последнее редактирование: 17-03-2011 13:35 от Oldy »
|
Записан
|
С уважением, Oldy.
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #100 : 17-03-2011 23:04 » |
|
Oldy, у меня один сервер. Надо жать и шифровать между клиентом птицы и птицей (то есть между машиной-клиентом и машиной-сервером)
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #101 : 31-10-2011 10:44 » |
|
вопрос связан скорее с птицей, поэтому тут в общем, всплыло внезапно такое: к примеру, у меня сейчас в городе время 16:00 . На компе выставлен пояс Екатеринбург GMT+6 , на часах в трее, само собой, 16:00. Сейчас: функция "current_time" в птичьем запросе возвращает 16:00 функция WinAPI "GetlocalTime" возвращает 16:00 Меняем пояс в винде, к примеру, на GMT+7 (часы в трее автоматом стали 17:00) Теперь: функция "current_time" в птичьем запросе возвращает 16:00 функция WinAPI "GetlocalTime" возвращает 17:00 а как заставить current_time возвращать правильно локальное время ?
|
|
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #102 : 31-10-2011 12:15 » |
|
Алексей1153++, рестарт службы сервера птицы пробовал?
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #103 : 31-10-2011 16:43 » |
|
Kivals, а что, помогает ? )) Попробую завтра
|
|
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #104 : 31-10-2011 16:53 » |
|
Алексей1153++, первое, что пришло на ум Второе, что может быть - у птицы timezone настраивается отдельно где-то в конфигурации
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #105 : 01-11-2011 06:18 » |
|
ну да, перезапуск птицы помогает
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #106 : 25-06-2012 07:02 » |
|
дано: таблица MESS_LOG с 50000 записями , триггеров нет, индекс - поле MESSAGE_ID выполняю запрос DELETE FROM MESS_LOG WHERE MESSAGE_ID<=NNNNNNN (в результате запроса удаляются все 50000 записей) ------ Performance info ------ Prepare time = 0ms Execute time = 23s 640ms Current memory = 930 952 Max memory = 1 289 352 Memory buffers = 2 048 Reads from disk to cache = 5 645 Writes from cache to disk = 2 536 Fetches from cache = 252 330
смущает долгое время выполнения - сама операция полминуты, плюс коммит ещё на полминуты где тут могут быть подводные камни, либо что нужно подкрутить ? Добавлено через 3 минуты и 8 секунд:Это у меня на столе 50 тыс сообщения, а у клиентов больше! На машине клиентов полмиллиона сообщений удаляется 15 минут, если не врут. Но я им почему-то верю. А это недопустимо долго. Добавлено через 55 секунд:пробовал "чистить" БД - полный бэкап/восстановление . Это не повлияло на время запроса и коммита
|
|
« Последнее редактирование: 25-06-2012 07:08 от Алексей1153++ »
|
Записан
|
|
|
|
Sla
|
|
« Ответ #107 : 25-06-2012 07:23 » |
|
на момент удаления записей базу перевести в монопольный режим, чтоб отключить все блокировки
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #108 : 25-06-2012 07:29 » |
|
1) как это сделать ? 2) на отдельном (моём рабочем) компе никто больше не подцеплен к базе, кроме меня. Это тот самый режим ? или как ?
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #109 : 25-06-2012 07:37 » |
|
1) как это сделать ? 2) на отдельном (моём рабочем) компе никто больше не подцеплен к базе, кроме меня. Это тот самый режим ? или как ?
без понятия (я только предположил). Может есть что-то типа WITH LOCK
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #110 : 25-06-2012 07:46 » |
|
DELETE FROM MESS_LOG WHERE MESSAGE_ID<=6171788 with lock нет, не понимает такого. И, насколько я понял, with lock - это для select
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #111 : 25-06-2012 07:54 » |
|
Перед удалением отключить индекс, после удаления включить
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #112 : 25-06-2012 08:04 » |
|
я уже находил такой совет в тырнете. Попробовал - нет изменений по времени
Добавлено через 29 секунд: может быть в конфиге птицы что-то подправить ?
|
|
« Последнее редактирование: 25-06-2012 08:04 от Алексей1153 »
|
Записан
|
|
|
|
RXL
|
|
« Ответ #113 : 25-06-2012 08:06 » |
|
Леш, имеется индекс по полю MESSAGE_ID? Покажи его DDL.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #114 : 25-06-2012 08:11 » |
|
да, индекс только у этого поля триггер только на вставку (но я пробовал и с удалением всех триггеров из БД вообще - на всякий случай) код создания таблицы из IB Expert /******************************************************************************/ /**** Tables ****/ /******************************************************************************/ CREATE GENERATOR NEW_MESS_ID;
CREATE TABLE MESS_LOG ( MESSAGE_ID BIGINT NOT NULL, DMESSAGE TIMESTAMP, MESS_TYPE SMALLINT, NUA_TYPE SMALLINT, COLOR SMALLINT, NOMER SMALLINT NOT NULL, RAZDEL SMALLINT NOT NULL, USERID SMALLINT, OPERID SMALLINT, IS_QUITED SMALLINT, AUTO_QUITED SMALLINT, QUIT_DATE TIMESTAMP, CANAL_NUMBER SMALLINT, DATAWORD INTEGER, POWER_LEVEL VARCHAR(2), NEW_COD_X_MESS SMALLINT, F_18_GUARDEDNOW SMALLINT, TAGPOINTID32 INTEGER, QUIT_REASON SMALLINT, CANALNUMBER_PER SMALLINT, TYPEFOR_CLIENTFILTER SMALLINT, TECH_SMS_COUNT SMALLINT, NON_TECH_SMS_COUNT SMALLINT, ADR_GUID_M4S VARCHAR(32), CHOP_NUM_M4S SMALLINT, DELTA_TIME_CHOP_M4S INTEGER, GSM_SIG_LVL SMALLINT default NULL );
/******************************************************************************/ /**** Indices ****/ /******************************************************************************/
CREATE UNIQUE DESCENDING INDEX PK_MESS_LOG ON MESS_LOG (MESSAGE_ID);
/******************************************************************************/ /**** Triggers ****/ /******************************************************************************/
SET TERM ^ ;
/* Trigger: MESS_LOG_BI */ CREATE TRIGGER MESS_LOG_BI FOR MESS_LOG ACTIVE BEFORE INSERT POSITION 0 as begin if (new.MESSAGE_ID is null) then new.MESSAGE_ID = gen_id(NEW_MESS_ID,1); end ^
SET TERM ; ^
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #115 : 25-06-2012 08:23 » |
|
1. Обязательно делать "DESCENDING"? Попробуй ASC. 2. FB понимает PK? Попробуй его.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Dale
|
|
« Ответ #116 : 25-06-2012 08:27 » |
|
Является ли поле MESSAGE_ID внешним ключом какой-либо таблицы?
|
|
|
Записан
|
Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.
Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard
Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #117 : 25-06-2012 15:02 » |
|
RXL, 1 - пробовал оба направления. Пробовал вообще без индекса. Результат один 2 - не успел попробовать, на работе свет чикнули. Завтра попробую
Dale, "встроенные" ключи в той БД не используются, только "логические", то есть без поддержки СУБД
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #118 : 25-06-2012 18:08 » |
|
Что такое "логический ключ"?
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Dale
|
|
« Ответ #119 : 25-06-2012 18:29 » |
|
Предлагаю эксперимент. Делаем новую тестовую таблицу с такой же структурой и индексом по ключу. Набиваем данными, запускаем удаление, засекаем время. Если время то же - причина тормозов в самой СУБД (например, лог транзакций), укрощаем. Если нет - значит, какие-то связи между таблицами все же имеются, ищем их. И вот это подозрительно: я уже находил такой совет в тырнете. Попробовал - нет изменений по времени Странно, что отключение индекса не замедляет удаление записей, выбранных по индексированному полю. Разница должна быть существенной, все-таки полмиллиона поисков без индекса должны были сказаться. Вывод: либо индекс почему-то не работает, либо удаление записи производится на порядок дольше поиска. Тоже следует разобраться подробнее.
|
|
|
Записан
|
Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.
Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard
Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
|
|
|
|