powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Способы ускорить firebird по сети
25 сообщений из 122, страница 4 из 5
Способы ускорить firebird по сети
    #38651296
crion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
таблица день. ПК - дата. Хранит айди выручки, айди суммы с утра, айди суммы вечером(сумма - отдельная таблица, где хранится инфа покупюрно). Связь много ко многим с сотрудниками(через 3тью таблицу, в которой 2 ключа - айди сотрудника и дата. а так же хранится время, когда пришел и ушел данный сотрудник). и пр.

В общем со структурой считаю не много проблем. Индексы автоматом создавались, при создании ключа, и о них не знал и не делал им перестроение, но когда в большинстве таблиц порядка 10 записей - то индекс физически не сможет сильно влиять на скорость. Лишь в паре таблиц записей были сотни - но даже несколько сотен записей полным перебором для текущих мощностей считаю не серьезным.
...
Рейтинг: 0 / 0
Способы ускорить firebird по сети
    #38651309
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crion,

Ты бы сначала хоть что нибудь прочитал про проектирование БД. а то что ни пост, то перл.

crionтаблица день... С таким подходом вашей БД на долго не хватит. Да и поиск производить будет сущим геморроем.
...
Рейтинг: 0 / 0
Способы ускорить firebird по сети
    #38651343
crion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
То что вам не нравится, что дата является ПК - это я давно понял, но никак не пойму, какая альтернатива?
Все запросы построены - либо найти день, где дата такая-то, либо где даты из диапазона. дата - поле уникальное, поэтому и поставил его ПК и индексом. Никак не пойму, что вы то предлагаете? Добавить еще одно числовое поле, сделать его ключем, для простоты поиска по нему? Так зачем оно нужно, если искать то я все равно по дате буду, а это поле будет только для красоты?
я понимаю, если б 10 таблиц имели упоминания о дне, и хранили в себе тоже дату - тут бы это упростило поиск, но т.к. все связи построены в другую сторону, как то это глупо.
...
Рейтинг: 0 / 0
Способы ускорить firebird по сети
    #38651346
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crionдата - поле уникальное, поэтому и поставил его ПК и индексом.
еще раз - если DATE (3 диалект) является уникальным столбцом (или ПК), то две записи за одну дату вы не создадите, в принципе.
Значит, в ПК у вас кроме даты есть еще что-то. Возможно лишнее, возможно нет.
Статью про "естественные ключи против искуственных" я уже дал.
...
Рейтинг: 0 / 0
Способы ускорить firebird по сети
    #38651348
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crion,

ещё раз. ПК обеспечивает уникальность для записи в таблицы. ТО что при этом создаётся индекс - это всего лишь особенность реализации. Если у вас за одну дату может происходить несколько событий, ПК она ну никак не может быть.

эти два предложения противоречат друг другу

crionу меня в один день множество событий происходит, и все они в одну дату, а время она и так не хранит
crionпоэтому дата и является первичным ключом и индексом
...
Рейтинг: 0 / 0
Способы ускорить firebird по сети
    #38651358
crion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я же объяснил, что в один день только одна запись, что дата является уникальным параметром. Для этого и расписал для чего нужна таблица "день" и что она хранит. ПК и так не позволит создать две записи с одинаковым первичным ключем, т.к. они будут не уникальны.
...
Рейтинг: 0 / 0
Способы ускорить firebird по сети
    #38651359
crion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис,
первое из сообщений о нескольких событиях в 1 день - я не так выразился. именно запись в днях всего одна. просто имел ввиду, что она не зависит от времени. А там где зависимость от времени есть(во сколько пришел сотрудник) - там имеется связь с днем по ключу дата.
...
Рейтинг: 0 / 0
Способы ускорить firebird по сети
    #38651395
crion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как то отошли сильно от темы.
Крохотная база, записей в ней мало. Например выполняю запрос:
Select * from summa where "ID" = (Select "ID_UTRO" from VIRUCHKA where "DATE" = '24.05.2014')

При выполнении локально(на компьютере с БД):
Plan
PLAN (VIRUCHKA INDEX (RDB$PRIMARY4))
PLAN (SUMMA INDEX (PK_SUMMA))

Adapted Plan
PLAN (VIRUCHKA INDEX (INTEG_24))
PLAN (SUMMA INDEX (PK_SUMMA))

------ Performance info ------
Prepare time = 0ms
Execute time = 0ms
Avg fetch time = 0,00 ms

Из локальной сети выполняется тоже мгновенно.

Через интернет этот запрос выполняется:
Plan
PLAN (VIRUCHKA INDEX (RDB$PRIMARY4))
PLAN (SUMMA INDEX (PK_SUMMA))

Adapted Plan
PLAN (VIRUCHKA INDEX (INTEG_24))
PLAN (SUMMA INDEX (PK_SUMMA))

------ Performance info ------
Prepare time = 3s 167ms
Execute time = 234ms
Avg fetch time = 234,00 ms

То есть 0 мс и 3167 мс - разница в подготовке при запросе из локальной и внешней сети...
...
Рейтинг: 0 / 0
Способы ускорить firebird по сети
    #38651402
crion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ISQL выполняет запрос через интернет за:
ELAPSED TIME= 0,67 sec
что в разы быстрее чем в IBE или моей проге C# .net.
но при этом, на мой взгляд все равно много.
...
Рейтинг: 0 / 0
Способы ускорить firebird по сети
    #38651404
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crion,

1. выучи join и не пиши таких запросов
2. про "внешнюю" сеть - не очень я понял (хотя и перечитал), где находится клиент, где находится сервер, покажи tracert, ping...
...
Рейтинг: 0 / 0
Способы ускорить firebird по сети
    #38651410
crion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kdv,
ping h.photocopir.ru
Ответ от 109.188.74.142: число байт=32 время=25мс TTL=54

tracert h.photocopir.ru
Трассировка маршрута к h.photocopir.ru [109.188.74.142]
с максимальным числом прыжков 30:

1 <1 мс <1 мс <1 мс 192.168.1.1
2 1 ms 1 ms 1 ms broadband-188-244-38-1.2com.net [188.244.38.1]
3 6 ms 3 ms 1 ms 172.31.244.1
4 7 ms 2 ms 11 ms juni-vl-165-m10.setel.ru [80.253.16.169]
5 4 ms 5 ms 6 ms msk-ix-peer.yota.ru [193.232.246.138]
6 * * * Превышен интервал ожидания для запроса.
7 * * * Превышен интервал ожидания для запроса.
8 * * * Превышен интервал ожидания для запроса.
9 32 ms 30 ms 29 ms client.yota.ru [109.188.74.142]

Трассировка завершена.
...
Рейтинг: 0 / 0
Способы ускорить firebird по сети
    #38651413
crion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
За совет про джоин спасибо, но время только выросло от этого...

Select summa.* from summa
inner join VIRUCHKA on "ID_UTRO"=summa.id where "DATE" = '24.05.2014'

Plan
PLAN JOIN (VIRUCHKA INDEX (RDB$PRIMARY4), SUMMA INDEX (PK_SUMMA))

Adapted Plan
PLAN JOIN (VIRUCHKA INDEX (INTEG_24), SUMMA INDEX (PK_SUMMA))

------ Performance info ------
Prepare time = 3s 962ms
Execute time = 296ms
...
Рейтинг: 0 / 0
Способы ускорить firebird по сети
    #38651418
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crion,

никогда не пиши * в запросах. Тем тем более что получаешь данные через интернет. ХЗ что там у тебя за звёздочкой скрывается. Сколько полей, какие типы, блобы есть?
...
Рейтинг: 0 / 0
Способы ускорить firebird по сети
    #38651422
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crionISQL выполняет запрос через интернет за:
ELAPSED TIME= 0,67 sec
что в разы быстрее чем в IBE или моей проге C# .net.
но при этом, на мой взгляд все равно много.
Мне остаётся только повторяться:
Dimitry SibiryakovВ морг. Это не лечится. Только локальная копия данных,
поддерживаемая специально выдрессированным репликатором спасёт ОРД.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Способы ускорить firebird по сети
    #38651427
crion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис,
За это биг спс. заменил * перечислением всех полей. время упало почти вдвое:

Prepare time = 2s 294ms
Execute time = 156ms


Dimitry Sibiryakov,
я бы с удовольствием поставил вторую локальную базу, она б и бэкапом была заодно.
Но в связи с тем, что доступ к интернету не стабилен, да и вырубить комп могут, то необходима Двусторонняя асинхронная репликация БД. Как на ФБ организовать такое штатными методами я не нашел, а вручную самому такое реализовывать - это ооочень долго выйдет и того не стоит.
...
Рейтинг: 0 / 0
Способы ускорить firebird по сети
    #38651428
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crionв связи с тем, что доступ к интернету не стабилен, да и вырубить комп могут,
то необходима Двусторонняя асинхронная репликация БД. Как на ФБ организовать такое
штатными методами я не нашел, а вручную самому такое реализовывать - это ооочень долго
выйдет и того не стоит.
http://www.ibphoenix.com/products/software/ibreplicator
https://www.ibphoenix.com/shop/subcategory/1
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Способы ускорить firebird по сети
    #38651434
crion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
С одной стороны конечно - вроде то что нужно. Но с учетом, что это на каждую точку потребуется установить... Жаба никогда не позволит такие деньги на это потратить:)
...
Рейтинг: 0 / 0
Способы ускорить firebird по сети
    #38651436
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crionЖаба никогда не позволит такие деньги на это потратить:)
Тебя уволить - как раз денег хватит и ещё на банкет останется.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Способы ускорить firebird по сети
    #38651438
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crionС одной стороны конечно - вроде то что нужно. Но с учетом, что это на каждую точку потребуется установить... Жаба никогда не позволит такие деньги на это потратить:)
Вот вариант для жадных
http://copycat.fr/wordpress/livemirror/
...
Рейтинг: 0 / 0
Способы ускорить firebird по сети
    #38651440
crion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Моя фирма, сам себя не уволю:). А заказать кому то - не стоит это того. Проще уж вспоминать чему в вузе учили, если так хочется поудобней реализовать оценку эффективности работы:)
...
Рейтинг: 0 / 0
Способы ускорить firebird по сети
    #38651442
crion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Gallemar,

К сожалению она тоже платная. а 8 лицензий покупать не вариант.
когда размер баз максимум 3 мб - глупо платить 1000 баксов за автоматическое одностороннее копирование изменений раз в 30 сек - проще уж, всю базу копировать как файл раз в 30 сек, программка из 5 строк выйдет:)
...
Рейтинг: 0 / 0
Способы ускорить firebird по сети
    #38651486
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crion client.yota.ru
ты сидишь на беспроводной связи и хочешь каких-то скоростей в клиент-сервере?

crionчто в разы быстрее чем в IBE или моей проге C# .net.
потому что IBE и драйвер .Net (в твоей проге) дофига чего запрашивают у сервера, чего не просит isql.

crionкогда размер баз максимум 3 мб - глупо платить 1000 баксов за автоматическое
ты уверен, что базы всю жизнь у тебя будут по 3мб?
ты проектируешь систему, а значит должен был предусмотреть репликацию, или копирование, или синхронизацию.

p.s. в грозу, кстати, частенько и gsm-связь не работает, чего уж про LTE говорить...
...
Рейтинг: 0 / 0
Способы ускорить firebird по сети
    #38651487
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crion проще уж, всю базу копировать как файл раз в 30 сек
с этого все "чайники" начинают, которые потом получают испорченную базу, и удивляются, как так, БД это файл произвольного доступа, и его копировать нельзя...
...
Рейтинг: 0 / 0
Способы ускорить firebird по сети
    #38651592
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crionGallemar,

К сожалению она тоже платная. а 8 лицензий покупать не вариант.
когда размер баз максимум 3 мб - глупо платить 1000 баксов за автоматическое одностороннее копирование изменений раз в 30 сек - проще уж, всю базу копировать как файл раз в 30 сек, программка из 5 строк выйдет:)
Если собрался копировать то прочитай хотя бы вот это:
http://www.firebirdsql.org/file/documentation/reference_manuals/user_manuals/html/ru/nbackup-ru.html
...
Рейтинг: 0 / 0
Способы ускорить firebird по сети
    #38651593
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crionПроще уж вспоминать чему в вузе учили
В каком ВУЗе ?
...
Рейтинг: 0 / 0
25 сообщений из 122, страница 4 из 5
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Способы ускорить firebird по сети
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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