Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
ferzmikk Member Откуда: Сообщений: 2213 |
Здравствуйте! На локальном компьютере был установлен Microsoft SQL Server Express. Был запущен SQL-запрос. Выполнялся очень долго и выгружал с другого сервера, что пришлось прервать запрос. Обратил внимание, во время выполнения оставалось меньше места на диске. Когда прервал запрос, то место не освободилось. Кажется не удалены темповые данные. На что нужно обратить внимание? Что нужно сделать, чтобы освободить не нужные данные? |
18 апр 18, 16:31 [21349539] Ответить | Цитировать Сообщить модератору |
TaPaK Member Откуда: Kiev Сообщений: 6801 |
ferzmikk, всё что взял - то его, только силой отбирать :) |
18 апр 18, 16:36 [21349560] Ответить | Цитировать Сообщить модератору |
ferzmikk Member Откуда: Сообщений: 2213 |
TaPaK, и как это делать? |
18 апр 18, 17:42 [21349836] Ответить | Цитировать Сообщить модератору |
Гавриленко Сергей Алексеевич Member Откуда: Moscow Сообщений: 37198 |
Незанятое место в файлах БД высвобождается командой shrink: https://docs.microsoft.com/ru-ru/sql/t-sql/database-console-commands/dbcc-shrinkfile-transact-sql https://docs.microsoft.com/ru-ru/sql/t-sql/database-console-commands/dbcc-shrinkdatabase-transact-sql |
||
18 апр 18, 17:48 [21349855] Ответить | Цитировать Сообщить модератору |
Yasha123 Member Откуда: Сообщений: 1968 |
если это какой-то не особо важный сервер, который можно перегружать, то самый простой способ вернуть прежний размер темпдб, это рестарт сервера. шринкать темпдб при сидящих там юзерах можно долго и безуспешно |
||
18 апр 18, 19:11 [21350077] Ответить | Цитировать Сообщить модератору |
ferzmikk Member Откуда: Сообщений: 2213 |
Комп перезагрузил - немного освободилось места. |
19 апр 18, 07:35 [21350758] Ответить | Цитировать Сообщить модератору |
Гавриленко Сергей Алексеевич Member Откуда: Moscow Сообщений: 37198 |
|
||
19 апр 18, 11:17 [21351456] Ответить | Цитировать Сообщить модератору |
ferzmikk Member Откуда: Сообщений: 2213 |
if exists (SELECT * FROM tempdb.dbo.sysobjects o WHERE o.xtype in ('U') AND o.id = object_id(N'tempdb..#Выгрузка')) BEGIN DROP TABLE #Выгрузка; END; ... DROP table #Выгрузка; DBCC SHRINKFILE (#Выгрузка, EMPTYFILE); Получается надо так писать в коде (выделенное), чтобы удалить полностью времянку и сервер не перезагружать? |
||||
27 июн 18, 14:28 [21525261] Ответить | Цитировать Сообщить модератору |
Гавриленко Сергей Алексеевич Member Откуда: Moscow Сообщений: 37198 |
|
||||
27 июн 18, 14:33 [21525270] Ответить | Цитировать Сообщить модератору |
ferzmikk Member Откуда: Сообщений: 2213 |
Гавриленко Сергей Алексеевич, Насколько я правильно понял в данной ситуации нужно удалить файл из базы данных и исходил из этого. |
27 июн 18, 14:40 [21525298] Ответить | Цитировать Сообщить модератору |
Гавриленко Сергей Алексеевич Member Откуда: Moscow Сообщений: 37198 |
|
||
27 июн 18, 14:42 [21525316] Ответить | Цитировать Сообщить модератору |
ferzmikk Member Откуда: Сообщений: 2213 |
Запутался тут. |
||||
27 июн 18, 15:00 [21525389] Ответить | Цитировать Сообщить модератору |
Гавриленко Сергей Алексеевич Member Откуда: Moscow Сообщений: 37198 |
Ну вот и впишите в команду логическое имя того файла, который вырос, желаемый размер файла, и выполните ее в контексте той базы, чей файл вырос. |
27 июн 18, 15:04 [21525400] Ответить | Цитировать Сообщить модератору |
ferzmikk Member Откуда: Сообщений: 2213 |
|
||
28 июн 18, 09:21 [21527186] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |