Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/18: Рейтинг темы: голосов - 18, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 01.12.2009
Сообщений: 14

Удалить большое количество строк

16.04.2019, 13:52. Показов 4061. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток! Существует база на 80 гб с огромным количеством строк и десятком связанных между собой таблиц (во вложении). Канистры привязываются к паллетам, времени выпуска, коробкам. При обычном запросе delete в таком то промежутке времени БД виснет часа на 2 (больше не ждал) и ничего не удаляет. Вопрос, какой составить запрос на удаление этих данных? У нас проблема с быстродействием системы и возможно, это из-за огромного количества данных в базе.

А вдруг подскажете, что еще может быть? В кратце: печать номера-->канистра появляется в БД--> канистру фотографирует с двух сторон, данные обрабатываются, проверяется номер на правильность печати и ее места по фото-->складывается в коробки-->коробке присваивается номер-->фото коробки и сравнение--> складывание на паллету, которой присваивается номер-->печать номера на паллете и одновременное присваивания всех существующих на ней коробок этой паллете. Вот тут загвоздка, что за 5 лет упала скорость обработки данных и данные в системе учета записываются довольно медленно, что вызывает косяки в работе. На сервере рейд из 3 дисков. Сеть оперируется циской.

Я знаю sql на уровне начинающего, запросы на просмотр чего-то составить или еще похожее.
Миниатюры
Удалить большое количество строк  
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.04.2019, 13:52
Ответы с готовыми решениями:

Добавить большое количество чисел double в базу данных
Здравствуйте, помогите пожалуйста со следующей задачей: есть такая объектная модель: класс содержащий массив double (~1000 значений),...

Массово выполнить операцию на t-sql (Скопировать большое количество дел)
Добрый день! У меня есть скрипт который скопирует данные из старых дел как скопировать большое количество дел? Например old_case_id...

Как удалить большое количество (56тыс) строк из таблицы?
Добрый день Подскажите пожалуйста насколько возможно быстрый способ удалить 56тыс строк из таблицы по условию? DELETE FROM...

17
 Аватар для pincet
1654 / 1153 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
16.04.2019, 14:45
резать базу не предлагать?
ибо без понимания, как там все внутри устроено по картинкам не поймешь
0
5968 / 4544 / 1094
Регистрация: 29.08.2013
Сообщений: 28,165
Записей в блоге: 3
16.04.2019, 15:02
80 гб это мелочи, огромное количество строк это сколько?
База самописная?
Производительности процессора\памяти\дисков хватает?

Цитата Сообщение от XanderXage Посмотреть сообщение
У нас проблема с быстродействием системы и возможно, это из-за огромного количества данных в базе.
Вряд ли с количеством. Или железо или индексы\блокировки
0
0 / 0 / 0
Регистрация: 01.12.2009
Сообщений: 14
16.04.2019, 15:24  [ТС]
Что значит резать?

Добавлено через 8 минут
Что-то у меня цитирование не работает.
Каждая канистра тащит за собой данные в каждый столбец...в общем в год 500к новых записей, железо -проц на 15% занят, рейд не помню, но не перегружен далеко. Оперативки в упор, на серве 6гб(производитель засунул, я в шоке), занято 4.5гб sql. Базу писали специально под это производство поставщик. Вызывать их муторно и долго, ибо итальянцы.
0
 Аватар для pincet
1654 / 1153 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
16.04.2019, 16:05
Цитата Сообщение от XanderXage Посмотреть сообщение
Что значит резать?
креативить историческую базу удалять "неактуальные" . ясно-понятно не всегда допустимо но...
0
5968 / 4544 / 1094
Регистрация: 29.08.2013
Сообщений: 28,165
Записей в блоге: 3
16.04.2019, 16:30
Цитата Сообщение от XanderXage Посмотреть сообщение
в общем в год 500к новых записей
ни о чем

Цитата Сообщение от XanderXage Посмотреть сообщение
рейд не помню, но не перегружен далеко
как измеряли?

Цитата Сообщение от XanderXage Посмотреть сообщение
Оперативки в упор, на серве 6гб
всего? маловато

Цитата Сообщение от XanderXage Посмотреть сообщение
Базу писали специально под это производство поставщик
запросы весь в хранимках или в коде?
менять вы их можете?
знания есть?
0
15 / 11 / 4
Регистрация: 12.04.2019
Сообщений: 45
17.04.2019, 08:46
Допустим, у Вас таблица в которой 1 000 000 000 000 000 строк. Вам нужно удалить все, кроме 100 последних и сделать это по-быстрому без записи в log. Тогда копируете 100 нужных строк во временную таблицу, делаете truncate основной таблицы и заполняете её из временной. Прошу профи не ругать меня за крамолу...
0
5968 / 4544 / 1094
Регистрация: 29.08.2013
Сообщений: 28,165
Записей в блоге: 3
17.04.2019, 09:36
Цитата Сообщение от Valera Kochemas Посмотреть сообщение
делаете truncate основной таблицы

нельзя удалять такую полезную таблицу, нужно просто ее переименовать
а временную обозвать как основную

это хороший способ когда знаешь все связи в БД
0
15 / 11 / 4
Регистрация: 12.04.2019
Сообщений: 45
17.04.2019, 10:17
Цитата Сообщение от qwertehok Посмотреть сообщение
нельзя удалять такую полезную таблицу, нужно просто ее переименовать
а временную обозвать как основную
Таблицу удалять я и не предлагал, я строки удалить рекомендовал - они ведь вопрошающему по всей видимости не нужны уже.
0
0 / 0 / 0
Регистрация: 01.12.2009
Сообщений: 14
17.04.2019, 11:06  [ТС]
Рейд смотрел через прогу, что с ним шла. Может, посоветуете, чем посмотреть еще? Погуглю, конечно, но вдруг чего не то найду)
Транкейт думал, но как-то очково. Связи все я без понятия, расписанный проект где и чего не оставили почему-то и кто до меня был не проследили.
Если 80 гб мало для БД, то реально смотреть железо? Сервер: память 6гб - можно и расширить, я думаю, дозаказав + рейд 5-проверить, может диски уже не ахти? Осмотреть сеть, ее скорость и пропускную, может сетевая? В правильном направлении думаю?)
0
15 / 11 / 4
Регистрация: 12.04.2019
Сообщений: 45
17.04.2019, 11:29
Цитата Сообщение от XanderXage Посмотреть сообщение
но как-то очково
Не очкуйте, создайте тестовую базу и на ней попробуйте. Если всё нормально, то примените к основной.
В любом случае - BackUp Forever!!!
0
0 / 0 / 0
Регистрация: 01.12.2009
Сообщений: 14
17.04.2019, 13:16  [ТС]
Цитата Сообщение от Valera Kochemas Посмотреть сообщение
Не очкуйте, создайте тестовую базу и на ней попробуйте. Если всё нормально, то примените к основной.
В любом случае - BackUp Forever!!!
есть уже бекап)в том то и дело, что мне не 100 строк оставить, а 1млн примерно за 2.5 года и выборку такую он обрабатывает веками и зависает
0
5968 / 4544 / 1094
Регистрация: 29.08.2013
Сообщений: 28,165
Записей в блоге: 3
17.04.2019, 13:55
Лучший ответ Сообщение было отмечено XanderXage как решение

Решение

Цитата Сообщение от XanderXage Посмотреть сообщение
выборку такую он обрабатывает веками и зависает
ну 1млн и будет долго обрабатывать, особенно если делаешь delete

ты или скопируй нужное в новые таблицы, а потом все переименуй
или удаляй маленькими частями
1
15 / 11 / 4
Регистрация: 12.04.2019
Сообщений: 45
17.04.2019, 13:56
Цитата Сообщение от XanderXage Посмотреть сообщение
выборку такую он обрабатывает веками и зависает
Зависает, когда delete, а когда truncate - Memento More!
Кстати, удалять можно не все сразу, а по частям (ночью запустите соответствующий скрипт и утром наслаждайтесь результатом!).
0
0 / 0 / 0
Регистрация: 01.12.2009
Сообщений: 14
17.04.2019, 20:41  [ТС]
Цитата Сообщение от qwertehok Посмотреть сообщение
ты или скопируй нужное в новые таблицы, а потом все переименуй
или удаляй маленькими частями
буду пробовать, спасибо вам! А вообще, надо оперативки подкинуть и рейд проверить для начала)
0
15 / 11 / 4
Регистрация: 12.04.2019
Сообщений: 45
17.04.2019, 22:42
Цитата Сообщение от qwertehok Посмотреть сообщение
скопируй нужное в новые таблицы, а потом все переименуй
С переименованием геморроя больше, т.к нужно потом заново все description, check, key прописывать и grant раздавать.

Добавлено через 7 минут
а также trigger, idex если были.
0
5968 / 4544 / 1094
Регистрация: 29.08.2013
Сообщений: 28,165
Записей в блоге: 3
18.04.2019, 07:59
Valera Kochemas, в студии это можно сделать парой кликов мышкой
0
15 / 11 / 4
Регистрация: 12.04.2019
Сообщений: 45
18.04.2019, 11:39
Цитата Сообщение от qwertehok Посмотреть сообщение
в студии это можно сделать парой кликов мышкой
Разумеется, в студии можно сделать ВСЁ. Но хороший update пишется в виде скрипта, который накатывается на приложение. Представьте, что у Вас миллион инсталляций - каждый раз будете открывать студию? Или потом откат надо будет сделать, если что не так пошло - опять студию открывать? А если изменения должен вносить не программер, а DBA? Что, ему целый час рассказывать, что Вы хотели изменить и каким образом?
Но это прекрасно, что есть варианты - каждый выбирает тот, который ему удобнее!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.04.2019, 11:39
Помогаю со студенческими работами здесь

Большое количество строк
Добрый день, столкнулся с задачей где нужно обработать большое количество cтрочек, в каждой из которых по 3 слова, каким образом мне...

Изменить большое количество (4кк) строк
1.Есть столбец datetime надо его перевести в юникс время. Как это сделать? С этим разобрался $query1 = 'ALTER TABLE `pokazanie`...

Удалить большое количество файлов с сервера. Пауза
Добрый день. На моем сервере есть много ненужных фотографий...мне нужно их удалить, но чтобы сервер не завис... при разовом выполнении...

Максимально быстро записать большое количество строк SQLite
Приветствую всех. Думаю из заголовка понятно в чём вопрос как максимально эффективно и быстро записать в таблицу базы данных SQLite большое...

Файлы. С файла нужно удалить слово, в котором самое большое количество РАЗНЫХ букв
С файла нужно удалить слово, в котором самое большое количество РАЗНЫХ букв. То есть со слов "aab" и "abc" нужно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru