Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: 1 2 3 [4] 5   Вниз
  Печать  
Автор Тема: Firebird+ODBC  (Прочитано 76393 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #90 : 17-03-2011 08:33 » 


option B
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Алексей++
кот глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #91 : 17-03-2011 08:48 » 

Sla, я видел этот рисунок. На нём OptionA - это часть от моей схемы
Записан

Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #92 : 17-03-2011 08:56 » 

почитал, разницы, практически, между option нет. Только порт 3050 нужно закрывать от внешних соединений.

ZeBeDee  выступает только одним клиентом...
Серверов ZeBeDee, может быть несколько (например на разных, портах, на разных адресах)

Один клиент подразумевает, что ZeBeDee является только мостом к Одному сервису.
« Последнее редактирование: 17-03-2011 09:06 от Sla » Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Алексей++
кот глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #93 : 17-03-2011 09:14 » 

то есть я пролетаю, похоже Улыбаюсь
Записан

Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #94 : 17-03-2011 09:16 » 

почему?
что тебя смущает?
option A видишь? две косых - это много клиентов коннекттся через ZeBeDee к птице

только ZeBeDee может служить одним клиентом для одного сервиса, т.е. нельзя чтобы ZeBeDee стучался на другую птицу с другим портом, для этого нужно поднимать второй ZeBeDee.
« Последнее редактирование: 17-03-2011 09:20 от Sla » Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Алексей++
кот глобальный и пушистый
Глобальный модератор

ru
Offline 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
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #96 : 17-03-2011 09:24 » 

Вот так!
УК1::[FBclient <-> ZBDclient] <------------> |
                                 |
УК2::[FBclient <-> ZBDclient] <------------> | [тырнет]   <---------> СЕРВЕР::[ZBD3 <client> FB]
                                 |
УК3::[FBclient <-> ZBDclient] <------------> |
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #97 : 17-03-2011 09:25 » 

но не так

УК1::[FBclient <-> ZBDclient] <------------> |                                      |<client> FB1]
                                 |
УК2::[FBclient <-> ZBDclient] <------------> | [тырнет]   <---------> СЕРВЕР::[ZBD3 |<client> FB2]
                                 |
УК3::[FBclient <-> ZBDclient] <------------> |                                      |<client> FB3]
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Алексей++
кот глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #98 : 17-03-2011 09:32 » 

эхъ. Ладно, когда займусь ближе к делу - там, видимо, и смогу всё понять сразу ))

но Ответ #96 - для меня самое то
Записан

Oldy
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #99 : 17-03-2011 13:30 » 

 Здесь была моя ладья... Где нужно трафик сжать, по тырнету (+шифрование)или между серверами?
« Последнее редактирование: 17-03-2011 13:35 от Oldy » Записан

С уважением, Oldy.
Алексей++
кот глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #100 : 17-03-2011 23:04 » 

Oldy, у меня один сервер. Надо жать и шифровать между клиентом птицы и птицей (то есть между машиной-клиентом и машиной-сервером)
Записан

Алексей++
кот глобальный и пушистый
Глобальный модератор

ru
Offline 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
Команда клуба

us
Offline Offline
Пол: Мужской

WWW
« Ответ #102 : 31-10-2011 12:15 » 

Алексей1153++, рестарт службы сервера птицы пробовал?
Записан
Алексей++
кот глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #103 : 31-10-2011 16:43 » 

Kivals, а что, помогает ? ))  Попробую завтра
Записан

Kivals
Команда клуба

us
Offline Offline
Пол: Мужской

WWW
« Ответ #104 : 31-10-2011 16:53 » 

Алексей1153++, первое, что пришло на ум Улыбаюсь
Второе, что может быть - у птицы timezone настраивается отдельно где-то в конфигурации
Записан
Алексей++
кот глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #105 : 01-11-2011 06:18 » 

ну да, перезапуск птицы помогает
Записан

Алексей++
кот глобальный и пушистый
Глобальный модератор

ru
Offline 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
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #107 : 25-06-2012 07:23 » 

на момент удаления записей базу перевести в монопольный режим, чтоб отключить все блокировки

Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Алексей++
кот глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #108 : 25-06-2012 07:29 » 

1) как это сделать ?
2) на отдельном (моём рабочем) компе никто больше не подцеплен к базе, кроме меня. Это тот самый режим ? или как ?
Записан

Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #109 : 25-06-2012 07:37 » 

1) как это сделать ?
2) на отдельном (моём рабочем) компе никто больше не подцеплен к базе, кроме меня. Это тот самый режим ? или как ?
без понятия (я только предположил).
Может есть что-то типа  WITH LOCK
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Алексей++
кот глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #110 : 25-06-2012 07:46 » 

Код:
DELETE FROM MESS_LOG WHERE MESSAGE_ID<=6171788 with lock

нет, не понимает такого. И, насколько я понял,  with lock - это для select
Записан

Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #111 : 25-06-2012 07:54 » 

Перед удалением отключить индекс, после удаления  включить
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Алексей++
кот глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #112 : 25-06-2012 08:04 » 

я уже находил такой совет в тырнете. Попробовал - нет изменений по времени

Добавлено через 29 секунд:
может быть в конфиге птицы что-то подправить ?
« Последнее редактирование: 25-06-2012 08:04 от Алексей1153 » Записан

RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #113 : 25-06-2012 08:06 » 

Леш, имеется индекс по полю MESSAGE_ID? Покажи его DDL.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.

Хз, я не очень просто не очень во всё это верю, во всякие там сатурны и прочую поебень.
Алексей++
кот глобальный и пушистый
Глобальный модератор

ru
Offline 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
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #115 : 25-06-2012 08:23 » 

1. Обязательно делать "DESCENDING"? Попробуй ASC.
2. FB понимает PK? Попробуй его.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.

Хз, я не очень просто не очень во всё это верю, во всякие там сатурны и прочую поебень.
Dale
Блюзмен
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #116 : 25-06-2012 08:27 » 

Является ли поле MESSAGE_ID внешним ключом какой-либо таблицы?
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Алексей++
кот глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #117 : 25-06-2012 15:02 » 

RXL,
1 -  пробовал оба направления. Пробовал вообще без индекса. Результат один
2 -  не успел попробовать, на работе свет чикнули. Завтра попробую

Dale, "встроенные" ключи в той БД не используются, только "логические", то есть без поддержки СУБД

Записан

RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #118 : 25-06-2012 18:08 » 

Что такое "логический ключ"?
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.

Хз, я не очень просто не очень во всё это верю, во всякие там сатурны и прочую поебень.
Dale
Блюзмен
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #119 : 25-06-2012 18:29 » 

Предлагаю эксперимент.

Делаем новую тестовую таблицу с такой же структурой и индексом по ключу. Набиваем данными, запускаем удаление, засекаем время.

Если время то же - причина тормозов в самой СУБД (например, лог транзакций), укрощаем. Если нет - значит, какие-то связи между таблицами все же имеются, ищем их.

И вот это подозрительно:

я уже находил такой совет в тырнете. Попробовал - нет изменений по времени

Странно, что отключение индекса не замедляет удаление записей, выбранных по индексированному полю. Разница должна быть существенной, все-таки полмиллиона поисков без индекса должны были сказаться. Вывод: либо индекс почему-то не работает, либо удаление записи производится на порядок дольше поиска. Тоже следует разобраться подробнее.
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Страниц: 1 2 3 [4] 5   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines