cro-logo      
Добро пожаловать, Гость. Пожалуйста, выберите Вход или Регистрация

 
 
  ГлавнаяСправкаПоискВходРегистрация  
 
Страниц: 1 2 3 4
Послать Тему Печать
Замедление работы сетевой версии CronosPRO (Прочитано 17 774 раз)
Glissando
Профи
****
Вне Форума



Сообщений: 106
Москва
Замедление работы сетевой версии CronosPRO
20.12.2016 :: 15:44:35
 
Я вынес эту в отдельную ветку (выделение из "Замедление поиска при нескольких подключениях"),т.к. есть проблемы замедления работы сетевой версии не только на поиске.
У меня весь банк построен на связях на полю (т.к. база данных правопреемница Access (SQL). Связные поля индексированы. Ревизия и оптимизация проведены.
Дело в том, что пользование базой данных происходит при ее параллельной разработке. Возможно, какие-то формулы не оптимизированы, структура. Проверяем.
Но, например, я отключил системный журнал и скорость заметно увеличилась (но он мне нужен в работе)
Попробую временно "отключить" идентификацию, формулы...
Вынес я в отдельную ветку для того, чтобы кто-то, может быть ,поделился опытом работы в подобных ситуациях...
Наверх
 
 
IP записан
 
Leo
Бета-тестер
Вне Форума


Мое поколение...

Сообщений: 1 571
Калуга - Москва
Re: Замедление работы сетевой версии CronosPRO
Ответ #1 - 20.12.2016 :: 17:47:00
 
+5  Класс
Наверх
 

Леонтьев Ю. Ю.
**************
leo6@mail.ru
sgv.leo6@gmail.com
 
IP записан
 
Энкан
Профи
****
Вне Форума



Сообщений: 361
Владивосток
Re: Замедление работы сетевой версии CronosPRO
Ответ #2 - 20.12.2016 :: 18:21:05
 
А что мешает сделать нормальные связи в формате кроноса и пролить формулой системные номера записей связанных по полю? а потом просто удалить связи по полю и облегчить базу?
Я так сделал в одном проекте конвертированной дбф базы, и на самом деле как то уютнее стало и полей с номерами для связи полей по полю не стало и объем уменьшился.

Чтобы это сделать, надо просто создать между нужными объектами ПО ссылки, взять через loop или viewrecord системные номера связанных по полю объектов, и связать (читай просто присвоить в базеА системный номер полю со связьюБ системный номер записи базыБ, связанной с ней по связь по полю) их по полю ПО... кропотливая работа если база большая, но трудозатраты этого стоят

З.Ы. Ревизию потом с восстановлением ссылок и должно все получиться )(
Наверх
 
 
IP записан
 
Glissando
Профи
****
Вне Форума



Сообщений: 106
Москва
Re: Замедление работы сетевой версии CronosPRO
Ответ #3 - 21.12.2016 :: 10:33:36
 
Цитата:
А что мешает сделать нормальные связи в формате кроноса и пролить формулой системные номера записей связанных по полю?

Пройденный этап.
Удобно, если объекты связываются "раз и навсегда".
А мне нужно автоматическое "пересвязывание" при изменении связного поля, причем у обоих объектов. Связь по полю в этом случае более удобна, чем пересчет и перепривязывание прямых-обратных ссылок с последующей ревизией по их восстановлени.
Наверх
 
 
IP записан
 
Glissando
Профи
****
Вне Форума



Сообщений: 106
Москва
Re: Замедление работы сетевой версии CronosPRO
Ответ #4 - 21.12.2016 :: 10:38:29
 
Про основной теме.
Видимо, одной из причин замедления работы была ошибка в свойствах одного нового поля.
Тип базы - слияние при совпадении ключа. Поля ключей, конечно же, проиндексированы.
Но во все немножественные поля нужно добавить свойство "Замена пустого значения" или "Замена непустого значения". У меня в одном поле "птичка" не стояла ни в одном окне. Видимо, поэтому при переходе с записи на запись после любой коррекции все "замерзало"...
Наверх
 
 
IP записан
 
Zuluss
Бета-тестер
Вне Форума


Старинный пользователь
Кронос

Сообщений: 2 967
Санкт-Петербург
Re: Замедление работы сетевой версии CronosPRO
Ответ #5 - 21.12.2016 :: 15:27:38
 
Разговор какой то странный. Сбросьте хотя бы упрощенную структуру банка и используемые формулы. Не видя ничего очень трудно что-то предположить.
У меня не получилось смоделировать банк с такой структурой с полями типа "Связь по полю", чтобы в него можно было стандартными средствами (режим ввода/коррекции) ввести новые записи с организацией связей между ними.
Наверх
 
 
IP записан
 
Энкан
Профи
****
Вне Форума



Сообщений: 361
Владивосток
Re: Замедление работы сетевой версии CronosPRO
Ответ #6 - 21.12.2016 :: 15:54:11
 
Что значит "раз и навсегда"?
Прямая-обратная ссылка может как то удалиться спонтанно? Или мы говорим о разных субд или я что то не понимаю..

По сути своей связь по полю это всего лишь дублирование связи по системному номеру, и придумана для конвертации старых баз (аля дбф, где связь по полю как раз в самый раз), но зачем дублить связи когда у каждой записи в кро априори есть системный номер, который гораздо эффективнее использовать для создания связи, чем 100500 номеров связанных кусков базы?
Наверх
 
 
IP записан
 
yavik
Опытный пользователь
***
Вне Форума



Сообщений: 66
Re: Замедление работы сетевой версии CronosPRO
Ответ #7 - 21.12.2016 :: 16:28:39
 
Посоветовал бы еще раз продумать структуру БД, чтоб уйти от связи по полю в пользу П и О отсылок, хоть и удобная связь по полю, но из моей практики тянет за собой замедление не только на поиске особенно  при более чем одно подключении, но и в ревизии, поскольку все отсылки в поле типа связь по полю - большое число которых как правило просто не нужно, будут проверяться и при отсутствии взаимных ссылок, что часто бывает в связи по полю будут еще и постоянно исправляться.  Выбор за Вами - удобство в обмен на скорость. Улыбка
Наверх
 
 
IP записан
 
Энкан
Профи
****
Вне Форума



Сообщений: 361
Владивосток
Re: Замедление работы сетевой версии CronosPRO
Ответ #8 - 21.12.2016 :: 16:49:03
 
Когда я переделывал последнюю базу из дбфов в про, я просто подготовил дубль базы, в котором обработка формулами заменила все связи по полю на нормальные ПО связи, до сих пор никто из пользователей за пол года не заметил разницы, база облегчилась в два раза...

у меня вообще такое ощущение было что про каждый раз проверяет на какой номер ссылается эта ссылка по полю путем перебора всех имеющихся полей, вот вам одна из причин торможения
Наверх
 
 
IP записан
 
Leo
Бета-тестер
Вне Форума


Мое поколение...

Сообщений: 1 571
Калуга - Москва
Re: Замедление работы сетевой версии CronosPRO
Ответ #9 - 21.12.2016 :: 18:55:30
 
Цитата:
у меня вообще такое ощущение было что про каждый раз проверяет на какой номер ссылается эта ссылка по полю путем перебора всех имеющихся полей, вот вам одна из причин торможения


Это заблуждение.
Наверх
 

Леонтьев Ю. Ю.
**************
leo6@mail.ru
sgv.leo6@gmail.com
 
IP записан
 
Zuluss
Бета-тестер
Вне Форума


Старинный пользователь
Кронос

Сообщений: 2 967
Санкт-Петербург
Re: Замедление работы сетевой версии CronosPRO
Ответ #10 - 21.12.2016 :: 22:56:24
 
Разберем еще раз работу по созданию записей и установлению связей при стандартных для Cronos-а полей П, О и ПО и дополнительного типа "Связь по полю".
В стандартном режиме:
1. Создаем запись.
2. В связном поле переходим к другой базе (может быть и та же).
3. Создаем запись в другой базе. При выходе из нее запись сохраняется и создается связь между записями.
Записи могут быть и полностью пустыми, только с полями связь.

В режиме установления связи при типе "Связь по полю":
1. Создаем запись.
2. В записи должно быть сформировано значение в ключевом поле.
3. Запись должны быть сохранена и построен индекс по ключевому полю.
4. Создаем запись в другой базе. Формируем значение в ключевом поле, которое должно быть таким же как в первой базе.
5. Сохраняем запись. При этом происходит построение индекса по ключевому полю, в результате чего осуществляется визуальное представление связей. Самих связей физически в банке нет.
Для примера:
База ЛЦ с полями (ФИО (ключевое), Связь с адресом):
1. Сидоров Сидор Сидорович
2. Митрофанов Митрофан Митрофанович

База АД с полями (Адрес, ФИО (ключевое), Связь с ЛЦ):
3. Городовск, ул.Уличная, 10, 20; Сидоров Сидор Сидорович
4. Пунктовск, просп. Проспектов, 1,2;Сидоров Сидор Сидорович

При таком раскладе в записи 1 будет представлено две связи с записями 3 и 4.
Меняем в записи 4 ключевое поле на Митрофанов Митрофан Митрофанович. Соответственно, запись 1 окажется связанной с записью 3, а 2 с 4.
Физически осуществляется следующее: При просмотре записи 1 осуществляется поиск в базе АД записей с ключевым полем Сидоров Сидор Сидорович. Все найденные записи будут предъявляться в связном поле. Примерно также осуществляется работа словарных полей.

При наличии определенных достоинств у типа "Связь по полю" имеется и куча недостатков.
Ключевое поле должно однозначно идентифицировать запись, поэтому в него приходится помещать либо все идентифицирующие признаки, либо на их основе формировать какой-либо уникальный ключ. Часто для этого используется построение сигнатуры, но на нее влияют и все пробельные символы, и знаки препинания и регистр символов.
В рассмотренном примере каждая запись базы Адрес может быть связана только с одной записью базы ЛЦ.

Почему могут происходить "тормоза"? При вводе связано с необходимостью перестроения индексов. При поиске - в связи с необходимостью поиска по индексам для связанной базы и особенностями заполнения ключевого поля.
Если индексы не созданы для ключевых полей или с ними какие то проблемы, то  скорость будет меньше очень заметно.
Наверх
 
 
IP записан
 
Leo
Бета-тестер
Вне Форума


Мое поколение...

Сообщений: 1 571
Калуга - Москва
Re: Замедление работы сетевой версии CronosPRO
Ответ #11 - 21.12.2016 :: 23:10:56
 
Уважаемый, Зулус!
Вы забыли рассмотреть идентификацию, которая при коррекции записей, поиске по всей базе, отсутствии тех или иных условий, создаст конкретные тормоза не только в Кроносе но и во всей ОС.
Мне кажется, что проблемы сетевой версии и кроятся у нашего инициатора разговора вокруг идентификации и обрабатывающих формулах. Мне так кажется....  Подмигивание

Специально провел несколько опытов. Никак не влияют на скорость обработки связанные поля и их разнообразие. Все отрабатывается мгновенно, хоть связь по полю, хоть ПО или П и О.
Наверх
 

Леонтьев Ю. Ю.
**************
leo6@mail.ru
sgv.leo6@gmail.com
 
IP записан
 
yavik
Опытный пользователь
***
Вне Форума



Сообщений: 66
Re: Замедление работы сетевой версии CronosPRO
Ответ #12 - 22.12.2016 :: 11:42:59
 
Цитата:
Ключевое поле должно однозначно идентифицировать запись.
Почему могут происходить "тормоза"? При вводе связано с необходимостью перестроения индексов. При поиске - в связи с необходимостью поиска по индексам для связанной базы и особенностями заполнения ключевого поля.

Замечу, что часто не получается однозначно идентифицировать фамилию, например из-за ошибок или неполной фамилии. В таком случае либо вобще связи не будет либо будет только в одну сторону т.е. без взаимной отсылки, что в ревизии потянет постоянные ошибки взаимных отсылок и их повторные исправления. Например (выше пример Zulus) в записи 1 будет Сидоров Сидор а в записи 3 Сидоров Сидор Сидорович   вот и особенность ключевого поля.
Наверх
 
 
IP записан
 
Энкан
Профи
****
Вне Форума



Сообщений: 361
Владивосток
Re: Замедление работы сетевой версии CronosPRO
Ответ #13 - 22.12.2016 :: 13:10:36
 
Цитата:
Это заблуждение.


Ну и славно)

но все равно, база со связями по полю сильно притормаживала при сллиянии базы, может действительно ответ кроется в идентификации:?
Наверх
 
 
IP записан
 
Zuluss
Бета-тестер
Вне Форума


Старинный пользователь
Кронос

Сообщений: 2 967
Санкт-Петербург
Re: Замедление работы сетевой версии CronosPRO
Ответ #14 - 22.12.2016 :: 14:42:37
 
Цитата:
...база со связями по полю сильно притормаживала при сллиянии базы, может действительно ответ кроется в идентификации:?

Неужели из пояснений было непонятно, что такого поля, как "Связь по полю", фактически не существует. По факту это, в простейшем случае, обычная реляционная структура. Поле нужно только для визуализации и осуществления поиска средствами Cronos. На слияние это вообще никак влиять не может.
Наверх
 
 
IP записан
 
Страниц: 1 2 3 4
Послать Тему Печать