Notes |
|
(0018193)
|
zed
|
19-11-2017 19:30
|
|
Как раз 2017-10-08 обновлялся компонент, через который у нас сделана работа с метками (mORMot) и библиотека SQLite. В самом SAS ничего в плане меток не менялось уже очень давно. Видимо, какой-то баг вылез или в компоненте или в библиотеке. Обновил и то и то до актуального состояния, тестируйте следующую ночнушку. Если проблема не уйдёт, будем копать глубже.
И да, у нас на результаты поиска стоит ограничение в 100 штук. Сам поиск у меня выполняется чуть ли не мгновенно, а вот вывод результатов в гуй сильно тормозит. К моменту, когда на экране появляется боковая панель, поиск уже закончен, а бегущие несколько секунд строчки в той панели, ни что иное, как не оптимизированный вывод результатов на экран. |
|
|
(0018194)
|
rass
|
19-11-2017 19:47
(edited on: 19-11-2017 19:51) |
|
Все же решил, что грех на моей стороне, и он выплыл в версии 2017-10-08, после обновления компонента работы с БД.
Перелопатил всю БД, поудалял ненужные строки в таблицах в соответствии с вновь созданной db3 в Sas как образец.
Импортировал переработанную БД уже в версию SAS.Planet.Nightly.171117.9729.
Вроде бы поиск работает и программа не зависает.
И хотелось бы узнать структуру БД.
Какие таблицы за что отвечают (см. приложенный рис.)?
|
|
|
(0018195)
|
zed
|
19-11-2017 20:01
|
|
Названия вроде "говорящие". Вот тут есть комментарии (каждый класс - таблица в БД): u_MarkSystemORMModel.pas. Для RTree и FTS, SQLite создаёт ещё несколько служебных таблиц (все, что с нижним подчёркиванием в названии).
Ночная версия собралась, протестируйте уже и её. |
|
|
(0018197)
|
rass
|
20-11-2017 10:31
(edited on: 20-11-2017 10:33) |
|
Спасибо за описание компонентов таблиц БД. Кое-какие моменты стали ясные.
Какая последняя ночная сборка? 2017-11-17? Да, я как раз в предыдущем сообщении писал, что тестировал свою БД на ней. Переработанная БД меток работает как надо. А исходная БД работала до версии 2017-10-08, но в тоже время не отражала все метки отвечающая поисковой строке, но и не подвисала программу при поиске их.
Вероятно, в исходной БД Меток, где-то была нарушена структура, или, еще более вероятнее, были какие-то символы в названии или описании меток, которые при прежней sqlite3.dll просто прерывали дальнейший поиск, что приводило к не отображению всех искомых меток, а в новой sqlite3.dll - приводит к зависанию.
БД формировалась многие годы, разными способами - импортами разных kml и других источников меток, перемещение и слияние категорий меток и другие действия. Поэтому и накопился бардак в структуре самой БД.
Инцидент можно закрыть.
|
|
|
(0018198)
|
zed
|
20-11-2017 10:40
(edited on: 20-11-2017 10:41) |
|
Текущая ночнушка: 171119.9729. Крайнюю версию всегда можно посмотреть здесь. Там же можно и подписаться на e-mail уведомления о выходе новой сборки (требуется регистрация на том сайте).
Я так понимаю, у вас бэкапа неработающей БД не сохранилось?
|
|
|
(0018199)
|
rass
|
20-11-2017 13:32
(edited on: 20-11-2017 13:52) |
|
Отчего же, все сохранилось.
Вырезка исходной БД(кривой) https://yadi.sk/d/UqATOEQA3Prv9z
Для примера Рис.2 (исходные координаты рисунка N55.710442° E37.760010°)
поиск по этой БД в версии 171117.9729:
метку 12115 - находит
6569 - находит эту метку и еще одну в другом месте
3816 - изображенные на рисунке две метки не находит, находит третью, где-то в далеке
2059 и 3235 - зависает
|
|
|
(0018200)
|
zed
|
20-11-2017 13:40
|
|
Т.е. и 171119.9729 на ней зависает? Тогда, если пришлёте мне эту БД, могу попробовать выяснить, что там так глючит. Залейте её куда-нибудь на обменник, а мне ссылку на [email protected] пришлите.
БД внешними инструментами никак не изменяли? Всё только через SAS? |
|
|
(0018201)
|
rass
|
20-11-2017 13:52
|
|
ссылку на БД дал выше.
проверил в версии 171119, результат такой же, как описано выше.
БД в каких либо SQL редакторах ранее не правил.
все делал средствами SAS: либо вносил, либо экспортировал доступными к экспорту форматами. |
|
|
(0018202)
|
zed
|
20-11-2017 13:57
|
|
Скачал БД и на 2059 удалось воспроизвести зависание. Буду смотреть. |
|
|
(0018203)
|
rass
|
20-11-2017 14:13
|
|
Спасибо.
Как я понимаю дело не в самой метке 2059, а пути перебора по БД к этой метке. |
|
|
(0018204)
|
zed
|
20-11-2017 15:25
(edited on: 20-11-2017 15:26) |
|
Да, дело не в метках и даже не в БД. Нашёл 2 бага в коде. Один в коде mORMot, который приводил к зависанию. Второй, в моём коде, который приводил к тому, что некоторые метки не находились, хотя в БД они были.
Подождём, когда в mORMot пофиксят баг (сегодня-завтра) и проблему можно будет считать решённой.
|
|
|
(0018205)
|
rass
|
20-11-2017 15:41
|
|
|