|
Удаление из переполненной MSSQL Express
|
|||
---|---|---|---|
#18+
Имеем Microsoft SQL Server 2016 (RTM-GDR) (KB4019088) - 13.0.1742.0 (X64) Jul 5 2017 23:41:17 Copyright (c) Microsoft Corporation Express Edition (64-bit) on Windows 10 Pro 6.3 <X64> (Build 19041: ) Достигнут предел базы 10 Гб, свободно пишет 0,63 MB При попытке удалить ненужное Код: sql 1.
ошибка Could not allocate space for object 'dbo....'.'PK_....' in database '...' because the 'PRIMARY' filegroup is full. Create disk space by deleting unneeded files, dropping objects in the filegroup, adding additional files to the filegroup, or setting autogrowth on for existing files in the filegroup. Дает удалять только по одной, сейчас так и молотит, но это растянется часов на 5. Клиентская прога генерит в цикле Код: sql 1.
Удаляет примерно по 1000 штук в секунду. Я думал что немного места освободится и можно будет хотя бы по сотне за раз удалять, но нет, все-равно 1-2 за раз, больше - ошибка. Может кто подскажет как ускорить процесс ? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2021, 15:59 |
|
Удаление из переполненной MSSQL Express
|
|||
---|---|---|---|
#18+
Пока так ускорил (по 100 за раз) Код: sql 1.
Не в 100 раз, но заметно быстрее. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2021, 16:11 |
|
Удаление из переполненной MSSQL Express
|
|||
---|---|---|---|
#18+
Dima T, найдите какую-то таблицу, у которой более менее приличный размер, и данные в которой не слишком важны. И сделайте ей truncate. После чего уже можно предпринимать какие-то сервисные действия по отношению к базе. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2021, 16:20 |
|
Удаление из переполненной MSSQL Express
|
|||
---|---|---|---|
#18+
Dima T Может кто подскажет как ускорить процесс ? подцепить базу к 2016 стандарт/девелопер/энтерпрайз и удалить данные вернуть базу на экспресс ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2021, 16:46 |
|
Удаление из переполненной MSSQL Express
|
|||
---|---|---|---|
#18+
Базу в bulk logged перевели? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2021, 16:46 |
|
Удаление из переполненной MSSQL Express
|
|||
---|---|---|---|
#18+
Dima T Пока так ускорил (по 100 за раз) Код: sql 1.
Не в 100 раз, но заметно быстрее. потому, транзакции отдельные. Сделайте так: begin tran delete .. delete .. delete .. commit ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2021, 16:55 |
|
Удаление из переполненной MSSQL Express
|
|||
---|---|---|---|
#18+
komrad подцепить базу к 2016 стандарт/девелопер/энтерпрайз и удалить данныеТогда уже Перевести базу на экспресс в оффлайн Скопировать файлы базы (mdf и ldf) на стандарт/девелопер/энтерпрайз Присоединить и добавить места - расширить файлы Перевести базу в оффлайн Перезаписать старые файлы на експресс новыми Открыть базу ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2021, 17:00 |
|
Удаление из переполненной MSSQL Express
|
|||
---|---|---|---|
#18+
Кесарь найдите какую-то таблицу, у которой более менее приличный размер, и данные в которой не слишком важны. И сделайте ей truncate. Нет таких таблиц, есть большая таблица откуда можно удалить часть старой инфы. komrad Dima T Может кто подскажет как ускорить процесс ? подцепить базу к 2016 стандарт/девелопер/энтерпрайз и удалить данные вернуть базу на экспресс Я за лицензионную чистоту, поэтому экспресс. Как понимаю упомянутые версии на Win10 не встанут, надо сначала где-то серверный виндавс нарыть. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2021, 20:42 |
|
Удаление из переполненной MSSQL Express
|
|||
---|---|---|---|
#18+
Dorosh Базу в bulk logged перевели? Не понял о чем речь, почитаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2021, 20:44 |
|
Удаление из переполненной MSSQL Express
|
|||
---|---|---|---|
#18+
Проблема порешалась удалением по 100. За 10 минут удалилось 0.7 Гб В итоге главная непонятка вот в чем: Код: sql 1.
выдает ошибку нехватки места, даже +2 невсегда срабатывает а это стабильно работает Код: sql 1.
хотя @nMinId это min(id) Id это int, primary key В чем разница между Id < ... и Id in ... ? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2021, 20:52 |
|
Удаление из переполненной MSSQL Express
|
|||
---|---|---|---|
#18+
>Я за лицензионную чистоту, поэтому экспресс Дело ваше. Если надумаете посмотрите https://www.sentryone.com/blog/aaronbertrand/get-developer-edition >Как понимаю упомянутые версии на Win10 не встанут Нет возможности проверить, но девелопер вставала на клиентскую OS ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2021, 21:11 |
|
Удаление из переполненной MSSQL Express
|
|||
---|---|---|---|
#18+
SERG1257 >Я за лицензионную чистоту, поэтому экспресс Дело ваше. Если надумаете посмотрите https://www.sentryone.com/blog/aaronbertrand/get-developer-edition >Как понимаю упомянутые версии на Win10 не встанут Нет возможности проверить, но девелопер вставала на клиентскую OS На postgres надо перейти, но все лень и некогда ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2021, 21:19 |
|
Удаление из переполненной MSSQL Express
|
|||
---|---|---|---|
#18+
Dima T Кесарь найдите какую-то таблицу, у которой более менее приличный размер, и данные в которой не слишком важны. И сделайте ей truncate. Нет таких таблиц, есть большая таблица откуда можно удалить часть старой инфы. komrad пропущено... подцепить базу к 2016 стандарт/девелопер/энтерпрайз и удалить данные вернуть базу на экспресс Я за лицензионную чистоту, поэтому экспресс. Как понимаю упомянутые версии на Win10 не встанут, надо сначала где-то серверный виндавс нарыть. Не фантазируй, а почитай инструкцию https://docs.microsoft.com/ru-ru/sql/sql-server/install/hardware-and-software-requirements-for-installing-sql-server?view=sql-server-2016 АФАИК на W7SP1 работает практически все. Используй виртуалки для тестов. ЗЫ. Постресс пусть только в страшном сне тебе снится. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2021, 22:16 |
|
Удаление из переполненной MSSQL Express
|
|||
---|---|---|---|
#18+
Алгоритм действий, в общем, прост. Копируешь очищаемые таблицы в master, в исходной базе делаешь truncate этих таблиц, копируешь только нужные данные из таблиц в master'е в оттранкейченные таблицы, удаляешь ненужные таблицы в мастере, сжимаешь мастер, по желанию - сжимаешь целевую БД. Можно, кстати, ничего и не удалять. Переместить таблицы в мастер, и сделать на них алиесы в исходной бд. На мастер нет ограничение по размеру. Кстати, ограничение то не на все данные 10Гб, а на одну базу. Поэтому нет проблем вынести половину толстых таблиц в соседнюю базу, а в исходной сделать алиесы на них. И даже если этого сделать нельзя, у вас одна таблица, размером больше 10 Гб - классическое горизонтальное секционирование вам в руки. Половину таблицы - в одну базу, половину - в другую. На id - создать констрейнт, between минимальное значение в этом куске and максимальное значение в этом куске. Ну и нарисовать в исходной базе, вместо таблицы view Код: sql 1.
И продолжить работать как ни в чем не бывало. Оно обновляемое. Ну, или трюк с мастер. Ограничение по размеру базы в экспресс - легко обходится. Вот ограничение по количеству ядер и памяти - нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2021, 11:43 |
|
Удаление из переполненной MSSQL Express
|
|||
---|---|---|---|
#18+
"легко обходится" не в смысле взламываются, а в смысле не создают таких трудностей, как ограничение по процессорам и памяти. Также стоит упомянуть использование псевдонимов, в совокупности к уже указанным секционированным представлениям. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2021, 22:43 |
|
Удаление из переполненной MSSQL Express
|
|||
---|---|---|---|
#18+
Dima T Dorosh Базу в bulk logged перевели? Не понял о чем речь, почитаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2021, 19:54 |
|
Удаление из переполненной MSSQL Express
|
|||
---|---|---|---|
#18+
Спасибо, полезная информация ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2021, 10:32 |
|
Удаление из переполненной MSSQL Express
|
|||
---|---|---|---|
#18+
Siemargl Dima T пропущено... Нет таких таблиц, есть большая таблица откуда можно удалить часть старой инфы. пропущено... Я за лицензионную чистоту, поэтому экспресс. Как понимаю упомянутые версии на Win10 не встанут, надо сначала где-то серверный виндавс нарыть. Не фантазируй, а почитай инструкцию https://docs.microsoft.com/ru-ru/sql/sql-server/install/hardware-and-software-requirements-for-installing-sql-server?view=sql-server-2016 АФАИК на W7SP1 работает практически все. Используй виртуалки для тестов. ЗЫ. Постресс пусть только в страшном сне тебе снится . Даладно. PostgreSQL - это то, о чем мечтали большевики. И правильно юзер хочет ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2021, 13:24 |
|
Удаление из переполненной MSSQL Express
|
|||
---|---|---|---|
#18+
В некот. случаях перенос таблицы + вьюха на нее не сработает, т.к. приложение может проверять наличие именно конкретной таблицы. Н-р тот же 1С. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2021, 17:25 |
|
Удаление из переполненной MSSQL Express
|
|||
---|---|---|---|
#18+
Dima T, Подобную проблему на БД, с которой ничего делать было нельзя, я решил через INDEX REBUILD для тех индексов, у которых был очень низкий fill factor. На глазах изумленной публики за полчаса удалось "достать из воздуха" 2Гб свободного места в БД. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 09:27 |
|
Удаление из переполненной MSSQL Express
|
|||
---|---|---|---|
#18+
RedBird Подобную проблему на БД, с которой ничего делать было нельзя, я решил через INDEX REBUILD для тех индексов, у которых был очень низкий fill factor. Думаю, вы имеете внутреннюю (aka физическую) фрагментацию, так же известную как "заполненность страниц". Она имеет очень отдаленное отношение в fillfactor-у Ну и для любого ребилда требуется дополнительное место в БД. Причем как минимум по размеру индекса после перестроения. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 10:40 |
|
Удаление из переполненной MSSQL Express
|
|||
---|---|---|---|
#18+
Спасибо за ответы. В целом база что-то типа логов где инфа со временем устаревает и самую старую можно безболезненно удалять. Что я собственно и делаю периодически, а тут так получилось что заполнилась на 100%. На будущее создал ненужную таблицу на 30 Мб мусора, при необходимости удалю и будет место. Но хотелось бы найти способ выхода из уже сложившейся ситуации. Вопрос порешался, но я не понял почему не работало так Код: sql 1. 2. 3. 4.
а так работало Код: sql 1.
по сути это одно и тоже ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 15:49 |
|
Удаление из переполненной MSSQL Express
|
|||
---|---|---|---|
#18+
Dima T Спасибо за ответы. В целом база что-то типа логов где инфа со временем устаревает и самую старую можно безболезненно удалять. Что я собственно и делаю периодически, а тут так получилось что заполнилась на 100%. На будущее создал ненужную таблицу на 30 Мб мусора, при необходимости удалю и будет место. Но хотелось бы найти способ выхода из уже сложившейся ситуации. Вопрос порешался, но я не понял почему не работало так Код: sql 1. 2. 3. 4.
а так работало Код: sql 1.
по сути это одно и тоже а к таблице в это время непрерывно сыпались запросы? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 16:03 |
|
Удаление из переполненной MSSQL Express
|
|||
---|---|---|---|
#18+
Если вы бесплатно пропатчите ваш экспресс то сможете включить секционирование (partitioning) удалять старые данные будет веселее ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 16:09 |
|
Удаление из переполненной MSSQL Express
|
|||
---|---|---|---|
#18+
Dima T Но хотелось бы найти способ выхода из уже сложившейся ситуации. Самый простой способ, это написать процедуру удаления старых данных. И запускать её периодически джобом. Если удалять будете по критерию даты, то лучше иметь по данному полю индекс. Dima T Вопрос порешался, но я не понял почему не работало так Код: sql 1. 2. 3. 4.
а так работало Код: sql 1.
по сути это одно и тоже Ну раз не работает в одном случае, то очевидно, что это не одно и тоже. Выполните оба запроса на живой теперь базе и сравните планы выполнения. Можно даже без удаления, селекты с такими параметрами сделайте. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2021, 16:15 |
|
|
start [/forum/topic.php?fid=46&msg=40072051&tid=1684671]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
86ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
others: | 17ms |
total: | 199ms |
0 / 0 |