Форум программы Древо Жизни
Слияние и удаление дублирующих персон
Модераторы: Genery, Elena Polyanskikh
-
- Сообщения: 836
- Зарегистрирован: 06 май 2010 16:30
Слияние и удаление дублирующих персон
Вообще, конечно, слияние и удаление дублирующих персон под четвёртой версией - это ужас. И совсем не тихий.
Обозначу задачу.
Есть к примеру два Ивана Петровича. Один без указанных родителей. По другому же полная информация. В результате проверки выясняется, что речь идёт об одной и той же персоне.
Казалось бы, чего проще:
- подцепить обоих Иванов Петровичей к одним и тем же родителям;
- на одного из них перекинуть жён и детей;
- ненужный дубль уничтожить.
Однако на каждом из этапов не самый медленный компьютер подвисает минут на пять. В базе сейчас 39591 человек. Такое ощущение, что меняются Ай-Ди по всем персонам. То есть, производится полный обсчёт-пересчёт всей базы.
Учитывая, что у меня процентов около 10 - дубли, сей факт навевает тоску смертную.
Может как-то алгоритм добавления родителей и удаления персон можно оптимизировать?
Обозначу задачу.
Есть к примеру два Ивана Петровича. Один без указанных родителей. По другому же полная информация. В результате проверки выясняется, что речь идёт об одной и той же персоне.
Казалось бы, чего проще:
- подцепить обоих Иванов Петровичей к одним и тем же родителям;
- на одного из них перекинуть жён и детей;
- ненужный дубль уничтожить.
Однако на каждом из этапов не самый медленный компьютер подвисает минут на пять. В базе сейчас 39591 человек. Такое ощущение, что меняются Ай-Ди по всем персонам. То есть, производится полный обсчёт-пересчёт всей базы.
Учитывая, что у меня процентов около 10 - дубли, сей факт навевает тоску смертную.
Может как-то алгоритм добавления родителей и удаления персон можно оптимизировать?
Re: Слияние и удаление дублирующих персон
Уже не раз отмечали, что скорость работы ДЖ напрямую зависит от кол-ва персон - чего не должно быть для грамотно построенной Базы данных.Mich Glitch писал(а):Может как-то алгоритм добавления родителей и удаления персон можно оптимизировать?
Я не представляю, как вы со своими ~40 тыс. справляетесь, у меня на 7 тыс. порой тормоза на простейших операциях, например при смене названия населенного пункта - и время отклика прямо пропорционально кол-ву персон по данному НП - от 1 секунды до 2 минут.
- hippocamus
- Сообщения: 1048
- Зарегистрирован: 09 дек 2009 16:28
- Откуда: Рыбинск, Ярославская обл.
- Контактная информация:
Re: Слияние и удаление дублирующих персон
4000 дублей???
Не представляю, как такое вообще могло получиться.
Не представляю, как такое вообще могло получиться.
Скачать Информер (для Древа Жизни 4.х). Установить.
Заменить экзешник на вот этот: https://yadi.sk/d/v49r7N46tdixe
Запустить от администратора. Указать путь к базе. Отключить автообновление.
Будет последняя версия 2.43. Рабочая )
Заменить экзешник на вот этот: https://yadi.sk/d/v49r7N46tdixe
Запустить от администратора. Указать путь к базе. Отключить автообновление.
Будет последняя версия 2.43. Рабочая )
-
- Сообщения: 836
- Зарегистрирован: 06 май 2010 16:30
Re: Слияние и удаление дублирующих персон
Да, оно и понятно.hippocamus писал(а):4000 дублей???
Не представляю, как такое вообще могло получиться.
Как движется Ваша работа по составлению библейской генеалогии? Рискну предположить, что никак.
А вот если бы Вы имели опыт работы с архивными документами, особенно со сплошь бесфамильными крестьянами России 17-19 веков и с весьма приблизительными написаниями дат, мест, имён, то очень скоро бы поняли, что дублирующие персоны - это нечто неизбежное.
-
- Сообщения: 836
- Зарегистрирован: 06 май 2010 16:30
Re: Слияние и удаление дублирующих персон
vbob,
Я уже оставил минимум полей в таблице.
Убрал сортировки (особенно по датам).
Выставил наивысший приоритет для программы и закрыл все прочие.
Но, увы...
Я уже оставил минимум полей в таблице.
Убрал сортировки (особенно по датам).
Выставил наивысший приоритет для программы и закрыл все прочие.
Но, увы...
Re: Слияние и удаление дублирующих персон
Это как мёртвому припарки…Mich Glitch писал(а):vbob,
Я уже оставил минимум полей в таблице.
Убрал сортировки (особенно по датам).
Выставил наивысший приоритет для программы и закрыл все прочие.
Но, увы...
Вот Вы выше отметили, "Такое ощущение, что меняются Ай-Ди по всем персонам. " - так оно и есть!
Думаю, что структура БД не оптимизирована на большой объём, т.к. у подавляющего большинства пользователей не более 1 тыс, где тормоза незаметны.
Что делать? - смириться, либо переходить на другую платформу. Автор не будет ради нескольких пользователей что-то кардинально менять, как мне видится.
- hippocamus
- Сообщения: 1048
- Зарегистрирован: 09 дек 2009 16:28
- Откуда: Рыбинск, Ярославская обл.
- Контактная информация:
Re: Слияние и удаление дублирующих персон
У меня чуть менее 2000. Ничего, живу. Написал только пару утилит для оптимизации.
Скачать Информер (для Древа Жизни 4.х). Установить.
Заменить экзешник на вот этот: https://yadi.sk/d/v49r7N46tdixe
Запустить от администратора. Указать путь к базе. Отключить автообновление.
Будет последняя версия 2.43. Рабочая )
Заменить экзешник на вот этот: https://yadi.sk/d/v49r7N46tdixe
Запустить от администратора. Указать путь к базе. Отключить автообновление.
Будет последняя версия 2.43. Рабочая )
Re: Слияние и удаление дублирующих персон
Имеется в виду оптимизация для быстродействия работы базы?hippocamus писал(а):Написал только пару утилит для оптимизации.
Или просто автоматизация не реализованных в программе функций (типа, расставить род группе товарищей)?
Сайт программ GedcomReport, DrevoReport http://go.inf.ua
Исследования: Васильковський, Киевский, Звенигородский уезды Киевской губернии
Нежинский уезд Черниговской губернии
Исследования: Васильковський, Киевский, Звенигородский уезды Киевской губернии
Нежинский уезд Черниговской губернии
-
- Сообщения: 836
- Зарегистрирован: 06 май 2010 16:30
Re: Слияние и удаление дублирующих персон
Чем хороша четвёртая версия против третьей?
Сортировка гораздо быстрее (исключая, конечно, даты).
Чем хуже?
Значительно замедлилось редактирование персон.
Моё предложение - иметь возможность выбора двух опций:
а) Работа с уже существующей базой (сортировки, просмотр, отчёты, статистика и пр.)
б) Редактирование базы (добавление, удаление, слияние персон и пр.)
Сортировка гораздо быстрее (исключая, конечно, даты).
Чем хуже?
Значительно замедлилось редактирование персон.
Моё предложение - иметь возможность выбора двух опций:
а) Работа с уже существующей базой (сортировки, просмотр, отчёты, статистика и пр.)
б) Редактирование базы (добавление, удаление, слияние персон и пр.)
Re: Слияние и удаление дублирующих персон
так помогите Михаулу, напишите утилиту по теме, думаю многие будут благодарныhippocamus писал(а):У меня чуть менее 2000. Ничего, живу. Написал только пару утилит для оптимизации.
- hippocamus
- Сообщения: 1048
- Зарегистрирован: 09 дек 2009 16:28
- Откуда: Рыбинск, Ярославская обл.
- Контактная информация:
Re: Слияние и удаление дублирующих персон
Нет, быстродействие я не трогал. Ускорить можно добавлением дополнительных индексов в таблицы, и разделением таблицы Values на несколько более мелких. Ну, может, ещё какую оптимизацию можно было бы провести. Но нет смысла добавлять в базу эти индексы, если программа с ними всё равно не работает, и скорее всего их затрёт при сохранении.
С датами проблема в том, что они в строковом виде хранятся, да ещё постоянный анализ на юлианские даты.
А с расстановкой рода - да, сделал.
С датами проблема в том, что они в строковом виде хранятся, да ещё постоянный анализ на юлианские даты.
А с расстановкой рода - да, сделал.
Скачать Информер (для Древа Жизни 4.х). Установить.
Заменить экзешник на вот этот: https://yadi.sk/d/v49r7N46tdixe
Запустить от администратора. Указать путь к базе. Отключить автообновление.
Будет последняя версия 2.43. Рабочая )
Заменить экзешник на вот этот: https://yadi.sk/d/v49r7N46tdixe
Запустить от администратора. Указать путь к базе. Отключить автообновление.
Будет последняя версия 2.43. Рабочая )
- hippocamus
- Сообщения: 1048
- Зарегистрирован: 09 дек 2009 16:28
- Откуда: Рыбинск, Ярославская обл.
- Контактная информация:
Re: Слияние и удаление дублирующих персон
База данных и так в любой момент времени работает в одном из режимов:Mich Glitch писал(а):Моё предложение - иметь возможность выбора двух опций:
а) Работа с уже существующей базой (сортировки, просмотр, отчёты, статистика и пр.)
б) Редактирование базы (добавление, удаление, слияние персон и пр.)
- SetKey (навигация)
- Edit
- Insert
(ну и Restructure, хотя вряд ли он используется при работе программы).
Само редактирование и вставка происходят быстро, независимо от размера базы. А вот навигация страдает. Но дело в том, что перед тем, как выдать данные для изменения, как и для просмотра - программа собирает и объединяет множество полей из полутора десятков таблиц, поэтому и редактирование замедляется. И чем больше полей персоны или события заполнено, чем больше создано дополнительных полей - тем медленнее будет работа.
Скачать Информер (для Древа Жизни 4.х). Установить.
Заменить экзешник на вот этот: https://yadi.sk/d/v49r7N46tdixe
Запустить от администратора. Указать путь к базе. Отключить автообновление.
Будет последняя версия 2.43. Рабочая )
Заменить экзешник на вот этот: https://yadi.sk/d/v49r7N46tdixe
Запустить от администратора. Указать путь к базе. Отключить автообновление.
Будет последняя версия 2.43. Рабочая )
Re: Слияние и удаление дублирующих персон
здесь (в ДЖ) скорость напрямумю зависит от кол-во записейhippocamus писал(а):И чем больше полей персоны или события заполнено, чем больше создано дополнительных полей - тем медленнее будет работа.
прав был учитель информатики, что грамотно созданная структура БД - 95% успеха!
Ну не должна БД с 10 тыс. записей тормозить на современных компах, у нас такие базы были в 1987 году на СМ-1600 и всё летало...
Re: Слияние и удаление дублирующих персон
Что значит "не работает"? Разве abs-у нужно указывать индексы явно в запросе? Он не использует их самостоятельно в случае, если в запросе присутствует проиндексированное поле?hippocamus писал(а):Но нет смысла добавлять в базу эти индексы, если программа с ними всё равно не работает, и скорее всего их затрёт при сохранении.
И уж явно он их не станет затирать. Это же не clarion, у которого структура хранилась в исполняемом модуле. Хотя я с данной БД не очень хорошо знаком.
А с датами сортировка понятно почему медленная. Это издержки записи даты, как Между, Около, После, До, Или, записи как полной даты, так и только года. Все эти ньюансы нужно учитывать.
Что Вы сделали кроме подстановки рода? Речь ведь шла не об одной утилите?
Нет желания построить отчеты? Тот же FanChart (круговую диаграмму)? Может потом Автор ее и встроил-бы в основной модуль.
Сайт программ GedcomReport, DrevoReport http://go.inf.ua
Исследования: Васильковський, Киевский, Звенигородский уезды Киевской губернии
Нежинский уезд Черниговской губернии
Исследования: Васильковський, Киевский, Звенигородский уезды Киевской губернии
Нежинский уезд Черниговской губернии
Re: Слияние и удаление дублирующих персон
а вот сортировка на моём массиве достаточно быстрая, по текстовым полям - мгновенная, по дате - секунды 2, наверное потому-что не использую "около", "между", только точная дата, "до" и "после".o22 писал(а):А с датами сортировка понятно почему медленная. Это издержки записи даты, как Между, Около, После, До, Или, записи как полной даты, так и только года. Все эти ньюансы нужно учитывать.
также мгновенный поиск по первым буквам имени или фамилии, т.е. может ДЖ быстро работь и на больших объёмах, - где нет "косяков"?
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 7 гостей