|
2 / 2 / 0
Регистрация: 03.06.2018
Сообщений: 163
|
||||||
Не работает DELETE для "повторяющихся" строк19.02.2024, 20:51. Показов 5353. Ответов 134
Здравствуйте, добрые люди!
Долго колупался с ускорением заполнения базы и доколупался до хорошей для меня скорости наполнения, однако без граблей не обошлось, когда я опустил проверки на точность параметров при замене данных получил дублирование для одного набора ключей записей с разной точностью. Исходная тема (Импорт данных из файла в БД) короткая, да и проблема видна когда пытаюсь отладить макрос в самой БД. Как видно из запроса есть 5 ключевых параметров и пара значимых полей в записи - это значение и его точность. Чтобы было понятно, чем больше число тем ниже точность. Итак нашел я замечательный пример и попробовал состряпать свой запрос на удаление повторяющейся записи с меньшей точностью. Для начала изобразил выборку, абы проверить правильно ли выбирает, оставил в последствии только те записи, что подлежат удалению:
0
|
||||||
| 19.02.2024, 20:51 | |
|
Ответы с готовыми решениями:
134
Клавиша delete не работает,а вот shift + delete работает 1. Реализовать функции для вставки и удаления строк аналогичные процедурам Insert и Delete в Турбо-Паскале.
|
|
2 / 2 / 0
Регистрация: 03.06.2018
Сообщений: 163
|
||
| 21.02.2024, 17:31 [ТС] | ||
|
Т.е. новые данные пишутся поверх старых по любому, а вот равные по времени только в том случае когда лучше качество Добавлено через 4 минуты Вообще наполнение с учетом предварительного удаления областей происходит по времени приблизительно одинаково - около 3 минут на моем компе, т.е. собственно операция DELETE выполняется махом, и вот дальше я не вижу смысла усложнять, нужно наиболее простую схему - при 3 минутах даже +- минута не играет роли, другое дело когда было 30 - 60 минут в зависимости от чистоты базы...
0
|
||
|
1333 / 551 / 112
Регистрация: 29.03.2016
Сообщений: 1,355
|
|
| 21.02.2024, 17:43 | |
|
С критериями по датам Вы лучше меня разберетесь. Подход то одинаковый.
Взял "вырезку" за 2 дня, чтоб с нахлестом. Время исполнения: VBA - 2,85 сек Запросы: 4,08 сек. тут еще много разного НО, потому весьма условно. Надеюсь, чего-нибудь полезного Вы за эти два дня извлекли. ну а если нет, так хоть по развлекались. Я что-то притомился уже, путаюсь в показаниях.
0
|
|
|
Модератор
6231 / 2909 / 707
Регистрация: 12.06.2016
Сообщений: 7,839
|
||
| 21.02.2024, 17:54 | ||
|
Дело ещё не только в объеме, а и в разрешенных форматах файлов. Форматы архивов допустимы, а формат mdb - нет.
0
|
||
|
2 / 2 / 0
Регистрация: 03.06.2018
Сообщений: 163
|
||
| 21.02.2024, 18:01 [ТС] | ||
|
Посмотрите пожалуйста пост 54, такая схема должна работать? Там для меня понятнее принадлежность условий
0
|
||
|
1333 / 551 / 112
Регистрация: 29.03.2016
Сообщений: 1,355
|
|
| 21.02.2024, 18:21 | |
|
Оба запроса п.54 имеют синтаксические ошибки.
В селекте только одна таблица, а условия отбора по полям двух таблиц? доп. Не пользуйте в запросах функцию IsNull, пользуйте Is Null.
0
|
|
|
Модератор
6231 / 2909 / 707
Регистрация: 12.06.2016
Сообщений: 7,839
|
||
| 21.02.2024, 18:25 | ||
|
В запросах лучше писать Weather.ZNCH Is Null, так как ISNULL(Weather.ZNCH) - вызов функции, выполняется дольше.Не знаю, насколько дольше, но на очень больших объемах разница может ощущаться.
0
|
||
|
1333 / 551 / 112
Регистрация: 29.03.2016
Сообщений: 1,355
|
||||||
| 21.02.2024, 18:26 | ||||||
|
Вот в этом запросе, можно дополнить условия в секции where:
0
|
||||||
|
2 / 2 / 0
Регистрация: 03.06.2018
Сообщений: 163
|
||
| 21.02.2024, 18:37 [ТС] | ||
|
Добавлено через 5 минут Блин, попробовал сделать таблицу Импорт... Косяк - на пустой базе при выполнении первого скрипта копируются ТУПО ВСЕ ЗАПИСИ без фильтрации на качество и новизну Ну а заполнение на 30% быстрее 2 минуты против 3 и еще секунд 40 на копирование всех записей включая 40% оценочно не нужных...
0
|
||
|
1333 / 551 / 112
Регистрация: 29.03.2016
Сообщений: 1,355
|
|||||||
| 21.02.2024, 19:11 | |||||||
|
тогда можно так для наглядности перенести все во WHERE:
0
|
|||||||
|
2 / 2 / 0
Регистрация: 03.06.2018
Сообщений: 163
|
||
| 21.02.2024, 19:29 [ТС] | ||
|
Я провернул удаление по ключу дубликатов это быстро, дольше подтверждал Тут только вопрос может ключ не автоинкремент а случайный поставить, но со свойством уникальный?
0
|
||
|
1333 / 551 / 112
Регистрация: 29.03.2016
Сообщений: 1,355
|
|||
| 21.02.2024, 19:46 | |||
|
Записи, совпадающие по значениям 5-ти значимых полей он вообще исключил из импорта, то есть "дублей" в результирующей быть не должно. Добавлено через 2 минуты
0
|
|||
|
2 / 2 / 0
Регистрация: 03.06.2018
Сообщений: 163
|
||
| 21.02.2024, 19:53 [ТС] | ||
|
0
|
||
|
1333 / 551 / 112
Регистрация: 29.03.2016
Сообщений: 1,355
|
||
| 21.02.2024, 20:18 | ||
|
На рис2 состояние после инсерта. Что инсерт сделал не так?
0
|
||
|
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,383
|
||
| 22.02.2024, 02:25 | ||
|
0
|
||
|
919 / 292 / 58
Регистрация: 01.06.2023
Сообщений: 818
|
||
| 22.02.2024, 08:00 | ||
0
|
||
|
2 / 2 / 0
Регистрация: 03.06.2018
Сообщений: 163
|
|||
| 22.02.2024, 11:00 [ТС] | |||
![]() Вы ж почему не понимаете, что не так, потому что у Вас наборы сформированные по моему старому алгоритму, когда происходила перезапись худшего качества. Я попробовал сделать таблицу "Импорт" без замещения т.е. вгонять в нее все подряд (это быстрее на 30%), а потом уже выполнить команду ИНСЕРТ для всей таблицы в пустую главную таблицу, так с учетом того, что фильтров кроме как на отсутствие значения нет, команда ИНСЕРТ пихнула все существующие записи из таблицы "Импорт" и она так и будет это делать по отношению к дублирующим данным. В итоге таблицу "Импорт" необходимо перед закачкой в главную все равно очистить от повторяющихся записей Добавлено через 1 минуту
0
|
|||
|
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,383
|
|
| 22.02.2024, 11:08 | |
|
0
|
|
|
1333 / 551 / 112
Регистрация: 29.03.2016
Сообщений: 1,355
|
||
| 22.02.2024, 11:25 | ||
|
До меня в ночи дошло таки, когда стал добавлять в "пустышку" сначала данные из первого файла, затем из второго.
"Дубли" в обновлениях присутствуют в приличном количестве. Получается, либо сначала чистить обновления, потом импортировать, либо переносить логику добавления метрик на сервер. Добавлено через 1 минуту ![]() Ну хорошо хоть сошлись во мнении.
0
|
||
|
2 / 2 / 0
Регистрация: 03.06.2018
Сообщений: 163
|
||
| 22.02.2024, 11:43 [ТС] | ||
|
Добавлено через 6 минут Так, ну и теперь когда я добавил первичный ключ, скажите наконец по скольким полям проиндексировать таблицу?
0
|
||
|
1333 / 551 / 112
Регистрация: 29.03.2016
Сообщений: 1,355
|
|
| 22.02.2024, 11:48 | |
|
Предполагаемые объемы данных тяжеловаты для БД Access,
потребуется переезд на серверную БД. А там логику добавления можно описать в сохраненной процедуре. Можно, конечно, и на стороне клиента попробовать, но будет медленно, сильно подозреваю. Я пробовал прямо в Access с его "родными" возможностями, импортировать "построчно", первый файл - больше минуты, второй чуть быстрее. А там метрик то пока всего ничего. Попробуйте, может у Вас будет иначе.
0
|
|
| 22.02.2024, 11:48 | |
|
Для линейного вещественного массива найти произведение всех повторяющихся и не повторяющихся элементов Как вызвать "Delete" для строк?
Почему не работает Update, но работает аналогичный Delete?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Жара жесть.
kumehtar 18.08.2026
Пролетают летом дни
Тридцать пять жары в тени.
Каждый август год от года
Дарит жаркую погоду.
|
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
|
Лето уходит
kumehtar 17.08.2026
|
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
|
|
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины".
За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html
Задача: . . .
|
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber.
Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
|