Уважаемые посетители! Форум CQHAM.RU существует исключительно за счет показа рекламы. Мы будем благодарны, если Вы не будете блокировать рекламу на нашем Форуме. Просим внести cqham.ru в список исключений для Вашего блокировщика рекламы.
Страница 29 из 30 ПерваяПервая ... 192627282930 ПоследняяПоследняя
Показано с 281 по 290 из 297

Тема: Новый аппаратный журнал (Open Source)

  1. #281
    Аватар для RX1AL
    Регистрация
    06.02.2009
    Адрес
    Санкт Петербург
    Сообщений
    3,812
    Цитата Сообщение от UA3GDW Посмотреть сообщение
    Методы одни и те же используются. Что при импорте, что при вводе. ....
    Чудной всё таки этот ADIF! Какой "вундеркинд" его придумал? Размер поля указан, но длина поля может не соответствовать размеру. Понятно, что присутствует "фактор пользователя". Но всё же...
    Да уж про формат ADIF давно идут разные разговоры. Насчет его "кривости" - тоже. Почитаешь на оф. группе по его разработке, так там каждый второй пишет, про то, что пора давно формат менять с "древнего, как мамонт", на нормальный на базе XML (со схемой XSD). И версия уже есть 3.0.2 XML. Но снова не со всеми полями...

    Я понял, про что ты написал, относительно поля DXCC. Да, такое есть...

    PS. По поводу "долго искать" в базе - не знаю. У меня в миллионной базе SQL 2014 с кластерным индексом лямбда ищет дубли по 122 полям всего за 2 минуты. По миллионам записей! А у тебя там от силы 100-200 тысяч будет.
    Михаил, ex UV1AL, RG1L, сейчас OE6MAF, HB9/OE6MAF, DL/OE6MAF
    DIG #5645, EPC #5908, #5909, KDR #21


  2. #282
    Цитата Сообщение от RX1AL Посмотреть сообщение
    А у тебя там от силы 100-200 тысяч будет.
    На поиск и удаление дубликатов я отдельно время не замерял. Но на 100 тыс. импортируемых QSO плюсом к 100 тыс уже существующих получается пару секунд или меньше (по 5 проверяемым полям). Начинаю транзакцию, загоняю в базу все записи подряд (кроме пропущенных, согласно правилам импорта). Далее SQL - запросом удаляю дубликаты и завершаю транзакцию. Очень быстро. Пробовал использовать триггер - медленно.

    P/S. Зачем я тут всё рассказываю?! Стырят мои идеи и даже спасибо не скажут!

  3. #283
    Аватар для RX1AL
    Регистрация
    06.02.2009
    Адрес
    Санкт Петербург
    Сообщений
    3,812
    Цитата Сообщение от UA3GDW Посмотреть сообщение
    На поиск и удаление дубликатов я отдельно время не замерял.....
    P/S. Зачем я тут всё рассказываю?! Стырят мои идеи и даже спасибо не скажут!
    Не стырят... тут программеров не так много. Мне не надо, я с другими "плюшками" играюсь уже.
    Насчет все в одной транзакции, ну, ясен пень... роллбэк же нужен для отката, на всякий пожарный.
    Не помню, есть ли поддержка в Bulk операций: Insert, Delete и т.д.? Было бы вкусно. В нормальном сиквеле есть
    и очень удобно. И по скорости и т.д.
    PS. У тебя в селекте как: COUNT() AS CNT и GROUP BY по всем полям? Просто если AS CNT есть, то все, что больше в нем, чем "1" - идет под удаление. И можешь спокойно потом (вне транзакции) удалить одним запросом. Или даже параллельно на мульти-ядерных процах.
    Михаил, ex UV1AL, RG1L, сейчас OE6MAF, HB9/OE6MAF, DL/OE6MAF
    DIG #5645, EPC #5908, #5909, KDR #21

  4. #284
    Цитата Сообщение от RX1AL Посмотреть сообщение
    роллбэк же нужен для отката
    Использую.

    Цитата Сообщение от RX1AL Посмотреть сообщение
    Не помню, есть ли поддержка в Bulk операций
    Нет.

    Цитата Сообщение от RX1AL Посмотреть сообщение
    У тебя в селекте как: COUNT() AS CNT и GROUP BY по всем полям?
    Нет. По другому.

  5. #285
    Аватар для RX1AL
    Регистрация
    06.02.2009
    Адрес
    Санкт Петербург
    Сообщений
    3,812
    Цитата Сообщение от UA3GDW Посмотреть сообщение
    Нет. По другому.
    Роман, вот такой запрос по поиску дублей самый быстрый:
    SELECT Field1, Field2, Field3 ..., COUNT(1) as CNT
    FROM TableName
    GROUP BY Field1, Field2, Field3 ....;
    Потом можешь делать так:
    HAVING COUNT(1) > 1; и удаляешь все лишнее к чертям.
    PS. А то, что нет Bulk - жалко.
    Михаил, ex UV1AL, RG1L, сейчас OE6MAF, HB9/OE6MAF, DL/OE6MAF
    DIG #5645, EPC #5908, #5909, KDR #21

  6. #286
    Цитата Сообщение от RX1AL Посмотреть сообщение
    Роман, вот такой запрос по поиску дублей самый быстрый:
    SELECT Field1, Field2, Field3 ..., COUNT(1) as CNT
    FROM TableName
    GROUP BY Field1, Field2, Field3 ....;
    Потом можешь делать так:
    HAVING COUNT(1) > 1; и удаляешь все лишнее к чертям.
    У меня всё ищется и удаляется одно небольшой строчкой SQL - запроса.
    Весь секрет в том, что SQLite всегда сама создаёт поле rowid.

  7. #287
    Аватар для RX1AL
    Регистрация
    06.02.2009
    Адрес
    Санкт Петербург
    Сообщений
    3,812
    Цитата Сообщение от UA3GDW Посмотреть сообщение
    У меня всё ищется и удаляется одно небольшой строчкой SQL - запроса.
    Весь секрет в том, что SQLite всегда сама создаёт поле rowid.
    Роман, что-то я не понял... "как прикажешь понимать тебя, Саид?". Причем тут ROWID? У тебя что у таблиц(ы) нет PK? Данное поле лишь связывет идентити в базе, при отсутствии PK. И второе: каким образом ROWID связано с дубликатами в базе? Можешь пояснить? Так как данное поле никак не отражает кол-во совершенно одинаковых записей, не имея группировки по ним. В том запросе, что приведен выше, как раз и есть группировка по одинаковым записям, при использовании GROUP BY. И более того, даже в самой документации на SQLite приводится аналогичный пример: "SELECT DataId, COUNT(*) c FROM DataTab GROUP BY DataId HAVING c > 1;" для удаления строк. Чего-то ты там мудришь, похоже... так как ROWID 64-битное автоинкрементное поле в SQLite и все.
    Михаил, ex UV1AL, RG1L, сейчас OE6MAF, HB9/OE6MAF, DL/OE6MAF
    DIG #5645, EPC #5908, #5909, KDR #21

  8. #288
    Всех секретов раскрывать не буду. Просмотри мой код рефлектором, если интересно.

  9. #289
    Аватар для RX1AL
    Регистрация
    06.02.2009
    Адрес
    Санкт Петербург
    Сообщений
    3,812
    Цитата Сообщение от UA3GDW Посмотреть сообщение
    Всех секретов раскрывать не буду. Просмотри мой код рефлектором, если интересно.
    Да я уж посмотрю... Но можешь мне в ЛС написать, как ты делаешь удаление без использования GROUP BY. Стало ооочень интересно!
    Так как имея вот такую таблицу с записями, например, как ниже, с помощью одного ROWID ты ничего не сделаешь:
    RowID | Data | Call |
    1 | 23.04.2015 | DF3RF |
    2 | 16.05.2015 | F5DFR |
    11 | 11.04.2015 | LZ1QS |
    39 | 23.04.2015 | DF3RF |
    54 | 16.05.2015 | F5DFR |
    Вот и хотелось бы услышать от тебя, как ты сие делаешь...
    PS. Пример, самый тупой и простой, конечно. Но тем не менее, там есть дубликаты.

    ---------------------
    И насчет bulk insert, delete в SQLite ты оказался не прав. Все там уже есть. И в самой документации тоже описано, как применять. Так, что, Роман... читай документацию. Например, по: "Bulk-loading can be done via the SQLite special command .import, as follows:
    .separator <separator>
    .import <loadFile> <tableName>" Аналогичная информация и по insert, delete.
    Последний раз редактировалось RX1AL; 10.07.2015 в 13:56.
    Михаил, ex UV1AL, RG1L, сейчас OE6MAF, HB9/OE6MAF, DL/OE6MAF
    DIG #5645, EPC #5908, #5909, KDR #21


  10. #290
    Цитата Сообщение от RX1AL Посмотреть сообщение
    GROUP BY
    GROUP BY используется!
    Цитата Сообщение от RX1AL Посмотреть сообщение
    Так, что, Роман... читай документацию.
    Тоже почитай по разные способы поиска и удаления дубликатов.

Страница 29 из 30 ПерваяПервая ... 192627282930 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Бумажный аппаратный журнал
    от LY3QN-Jurijus в разделе Для начинающих
    Ответов: 105
    Последнее сообщение: 05.05.2021, 02:32
  2. Аппаратный журнал радионаблюдателя
    от Дик в разделе Программное обеспечение
    Ответов: 52
    Последнее сообщение: 01.11.2013, 19:43
  3. Аппаратный журнал
    от RA0JFX-Амур в разделе Программное обеспечение
    Ответов: 738
    Последнее сообщение: 31.07.2010, 07:42
  4. Редактор схем-трассировщик KiCAD. Open Source
    от w6bvb в разделе Программное обеспечение
    Ответов: 3
    Последнее сообщение: 13.05.2008, 14:20

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •