|
2 / 2 / 0
Регистрация: 03.06.2018
Сообщений: 163
|
||||||
Не работает DELETE для "повторяющихся" строк19.02.2024, 20:51. Показов 5275. Ответов 134
Здравствуйте, добрые люди!
Долго колупался с ускорением заполнения базы и доколупался до хорошей для меня скорости наполнения, однако без граблей не обошлось, когда я опустил проверки на точность параметров при замене данных получил дублирование для одного набора ключей записей с разной точностью. Исходная тема (Импорт данных из файла в БД) короткая, да и проблема видна когда пытаюсь отладить макрос в самой БД. Как видно из запроса есть 5 ключевых параметров и пара значимых полей в записи - это значение и его точность. Чтобы было понятно, чем больше число тем ниже точность. Итак нашел я замечательный пример и попробовал состряпать свой запрос на удаление повторяющейся записи с меньшей точностью. Для начала изобразил выборку, абы проверить правильно ли выбирает, оставил в последствии только те записи, что подлежат удалению:
0
|
||||||
| 19.02.2024, 20:51 | |
|
Ответы с готовыми решениями:
134
Клавиша delete не работает,а вот shift + delete работает 1. Реализовать функции для вставки и удаления строк аналогичные процедурам Insert и Delete в Турбо-Паскале.
|
|
1333 / 551 / 112
Регистрация: 29.03.2016
Сообщений: 1,355
|
|
| 20.02.2024, 23:24 | |
|
1
|
|
|
2 / 2 / 0
Регистрация: 03.06.2018
Сообщений: 163
|
|||
| 20.02.2024, 23:27 [ТС] | |||
|
Добавлено через 1 минуту Как-то можно это обойти? Я сейчас чисто рублю диапазоны для новых данных, чтобы не разбирать INSERT vs UPDATE
0
|
|||
|
13253 / 5932 / 1526
Регистрация: 05.10.2016
Сообщений: 16,595
|
||
| 20.02.2024, 23:31 | ||
|
... А в прочем, видимо, общение = важнее решения. Найти "братьев по разуму" уже счастье.
0
|
||
|
2 / 2 / 0
Регистрация: 03.06.2018
Сообщений: 163
|
|||
| 20.02.2024, 23:40 [ТС] | |||
), но все же это не мой хлебДобавлено через 2 минуты
0
|
|||
|
13253 / 5932 / 1526
Регистрация: 05.10.2016
Сообщений: 16,595
|
||
| 20.02.2024, 23:46 | ||
|
... или вы "погуглите" ...
0
|
||
|
2 / 2 / 0
Регистрация: 03.06.2018
Сообщений: 163
|
||
| 21.02.2024, 00:00 [ТС] | ||
|
из правой таблицы записи соответствующие условию "А" вносятся в левую таблицу (игнорируя наличие в ней данных, то бишь заполняя пустые и заменяя заполненные поля) при соблюдении условия "Б". А то просто картинка и пойми, что там имелося ввиду... То ли данные объединяются и какие при этом остаются, то ли... то ли...
0
|
||
|
1333 / 551 / 112
Регистрация: 29.03.2016
Сообщений: 1,355
|
||
| 21.02.2024, 00:11 | ||
|
Заполнение таблицы в БД, какой эффективный способ? Единственно, он, как и я, считал первое поле таблицы ключевым. Если добавить ключевое поле (ID счетчик/ключик) и адаптировать его запрос под 5 значимых полей в описании объединения, то данные должны летать мухой. зы: Сейчас попробую.
0
|
||
|
2 / 2 / 0
Регистрация: 03.06.2018
Сообщений: 163
|
|||
| 21.02.2024, 00:19 [ТС] | |||
|
0
|
|||
|
1333 / 551 / 112
Регистрация: 29.03.2016
Сообщений: 1,355
|
|||||||
| 21.02.2024, 01:03 | |||||||
|
Допустим, у нас входящий набор данных после парсинга сохранен в таблице Import,
имеющим структуру, аналогичную таблице Weather (без ключевого поля ID). Запрос выберет уникальные по 5 полям записи из таблицы Import и сохранит их в Weather:
Тут я лоханулся. Не нужно в данном случае ключевое поле, подойдет любое другое.
0
|
|||||||
|
2 / 2 / 0
Регистрация: 03.06.2018
Сообщений: 163
|
|||
| 21.02.2024, 01:12 [ТС] | |||
|
и где тут фильтровать по новизне и разрешению? или какой выигрыш от того, что сначала пишем во временную таблицу, а потом объединяем, но без фильтров? И зачем внешний SELECT по всем записям из вложенного??? всё пойдемте отдыхать!!!
0
|
|||
|
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,383
|
|
| 21.02.2024, 02:57 | |
|
0
|
|
|
13253 / 5932 / 1526
Регистрация: 05.10.2016
Сообщений: 16,595
|
||
| 21.02.2024, 05:02 | ||
|
Там синусы - косинусы в формулах на каждом шагу ... Не по теме: Муля! - не нервируй меня!
0
|
||
|
2 / 2 / 0
Регистрация: 03.06.2018
Сообщений: 163
|
||||
| 21.02.2024, 10:10 [ТС] | ||||
|
Извините за панибратство, но: ребята, давайте жить дружно!
Зачем браниться, поясните лучше младшему товарищу за код ему непонятный. А систему записи координат не надо трогать, максимум, что я могу сделать - это очистить дублирующий столбец в формате float, он все равно не используется по коду нигде. Остальное меня устраивает на 100% ибо данные поступают именно в такой кодировке и мне не нужно что-то придумывать для индексирования и вычисления этих индексов с учетом сложности хранения и сравнения дробных форматов. Добавлено через 24 минуты Добавлено через 13 минут Добавлено через 13 минут
0
|
||||
|
1333 / 551 / 112
Регистрация: 29.03.2016
Сообщений: 1,355
|
||||||||||||||||
| 21.02.2024, 11:49 | ||||||||||||||||
|
при LEFT/RIGHT JOIN. имеются "дубли" с лучшими значениями:
надо так:
Полагаю, импорт/апдейт новых порций данных пакетами будет заметно быстрее импорта отдельными инсертами, с проверкой на полные "дубли", и "дубли" с лучшими значениями. Проверить не могу, потому как нет исходных данных новых порций в том виде, который Вы пользуете, и нет Вашего алгоритма добавления данных. Добавлено через 7 минут И да, надо исполнение двух запросов обернуть в транзакцию, дабы не получить рассогласованные данные.
0
|
||||||||||||||||
|
2 / 2 / 0
Регистрация: 03.06.2018
Сообщений: 163
|
|||
| 21.02.2024, 13:19 [ТС] | |||
|
- я получаю пакет файлов для каждого ID_MD и DT и SOURCE (ИД параметра метеообстановки ( температура, влажность и т.п. для разных слоев, но слои я не стал выделять ибо проще использовать готовое ИД без расшифровки) + ДАТА с временем на которую прогнозируется параметр + Источник данных), кроме того в файле содержится ДАТА составления прогноза - UDT (по хорошему в пакете файлов должна быть одна UDT для всех файлов... но это по хорошему). Проверяю ID_MD и SOURCE на нужность, а UDT на новизну(не старее текущей) - если не подходят пропускаю файл. Итак есть 4 ячейки. Опустим подробности фильтрации по диапазону широты и долготы, смысл понятен. Расшифровываем упакованный побитово массив данных. Выбираем из него сочетания широты LAT и долготы LON (Они вычисляются для каждой точки ибо в файле есть информация только о границах массива и его организации, откуда собственно и берется качество данных - QUAL в виде расстояния между ячейками в градусах!!!) со значением ZNCH. И да, я выбираю только те сочетания которые меня интересуют. + 4 ячейки. Последняя ячейка PDT - признак накопления данных за период, встречается только в 1 параметре, но отказаться никак нельзя (вообще можно, но не хочется менять отработанную логику вычислений ибо времени мало). Вот и весь алгоритм. Т.Е. как бы я не хотел, все равно каждая строка будет вводиться по факту в БД отдельной командой Ах да, забыл, если данные идут с низким разрешением - приходится еще и интерполяцией восстанавливать пропущенные в файле значения Добавлено через 5 минут
0
|
|||
|
1333 / 551 / 112
Регистрация: 29.03.2016
Сообщений: 1,355
|
||
| 21.02.2024, 13:29 | ||
|
Вот, Вы взяли сырые данные, обработали их, разложили каждую метрику по нужным полочкам, и с этих полочек инсертите в Weather. Как описаны полочки (набор переменных / массив / рекордсет / коллекция / что-то иное)? Далее хотелось бы кусок кода, где Вы берете данные метрик с полочек и инсертите в таблицу.
0
|
||
|
2 / 2 / 0
Регистрация: 03.06.2018
Сообщений: 163
|
|||||||||||
| 21.02.2024, 13:44 [ТС] | |||||||||||
|
Итак:
https://cloud.mail.ru/public/MGSv/Xo9aMo5Mx https://cloud.mail.ru/public/BSgt/fbAnYUhAy первый файл за 5.02 второй за 6.02 НО, без но не получилось, если данные с высоким разрешением поступили позже низкого, то они должны были затереть низкое разрешение Однако по любому остались некоторые повторяющиеся. Добавлено через 6 минут Обертка - внешняя процедура с неработающим блоком очистки от "мусора"
0
|
|||||||||||
|
1333 / 551 / 112
Регистрация: 29.03.2016
Сообщений: 1,355
|
|
| 21.02.2024, 13:59 | |
|
Ну так это описание аккурат "на стороне".
Тут Вам самому, при желании, придется проверять варианты на скорость исполнения. Я пас, в C++ полный 0. Попробую, для самоуспокоения, имитировать варианты на VBA, но это НЕ совсем (или совсем НЕ) корректно будет.
0
|
|
|
2 / 2 / 0
Регистрация: 03.06.2018
Сообщений: 163
|
|||
| 21.02.2024, 14:03 [ТС] | |||
|
А писать в отдельную временную таблицу я могу, если это даст выигрыш
0
|
|||
|
919 / 292 / 58
Регистрация: 01.06.2023
Сообщений: 818
|
|
| 21.02.2024, 14:09 | |
|
В таблице Weather прям напрашивается составной индекс на поля (ID_MD, SOURCE, DT). Насколько я понял они в процессе загрузки постоянны (приходят в процедуру заполнения как константы из вне)?
0
|
|
| 21.02.2024, 14:09 | |
|
Для линейного вещественного массива найти произведение всех повторяющихся и не повторяющихся элементов Как вызвать "Delete" для строк?
Почему не работает Update, но работает аналогичный Delete?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов.
Логика кажется понятной:
1. Находим ключевые слова.
2. Добавляем их на. . .
|
Знание — сила: Доктрина интенциональности знаний против массовых профанаций
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302
Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
|
SUNO Ai - Река Без Дна
zorxor 31.07.2026
Автор стихотворения - астрофизик Марина Катыс
Ссылка на сгенерированную музыкальную композицию:
https:/ / suno. com/ song/ 6f6e5464-b290-4650-be6c-44c85f8d8013
Я говорю, что Время- как вода
течет. . .
|
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла:
Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
|
|
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет
Салют, шампанское, овации!
:drink:
|
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр.
Дословно, отклонённая. . .
|
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы
Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
|
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
|