Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Вопрос  [new]
ferzmikk
Member

Откуда:
Сообщений: 2057
Здравствуйте!

На локальном компьютере был установлен Microsoft SQL Server Express. Был запущен SQL-запрос. Выполнялся очень долго и выгружал с другого сервера, что пришлось прервать запрос. Обратил внимание, во время выполнения оставалось меньше места на диске. Когда прервал запрос, то место не освободилось. Кажется не удалены темповые данные.

На что нужно обратить внимание? Что нужно сделать, чтобы освободить не нужные данные?
18 апр 18, 16:31    [21349539]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
ferzmikk,

всё что взял - то его, только силой отбирать :)
18 апр 18, 16:36    [21349560]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос  [new]
ferzmikk
Member

Откуда:
Сообщений: 2057
TaPaK,

и как это делать?
18 апр 18, 17:42    [21349836]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36965
ferzmikk
TaPaK,

и как это делать?


Незанятое место в файлах БД высвобождается командой 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]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
ferzmikk
TaPaK,

и как это делать?

если это какой-то не особо важный сервер,
который можно перегружать,
то самый простой способ вернуть прежний размер темпдб,
это рестарт сервера.
шринкать темпдб при сидящих там юзерах можно долго и безуспешно
18 апр 18, 19:11    [21350077]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос  [new]
ferzmikk
Member

Откуда:
Сообщений: 2057
Комп перезагрузил - немного освободилось места.
19 апр 18, 07:35    [21350758]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36965
ferzmikk
Комп перезагрузил - немного освободилось места.
Ну вы винду еще переставьте с форматированием диска. Тоже много места освободится.
19 апр 18, 11:17    [21351456]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос  [new]
ferzmikk
Member

Откуда:
Сообщений: 2057
Гавриленко Сергей Алексеевич
ferzmikk
TaPaK,

и как это делать?


Незанятое место в файлах БД высвобождается командой 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
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]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36965
ferzmikk
Гавриленко Сергей Алексеевич
пропущено...


Незанятое место в файлах БД высвобождается командой 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
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:33    [21525270]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос  [new]
ferzmikk
Member

Откуда:
Сообщений: 2057
Гавриленко Сергей Алексеевич,

Насколько я правильно понял в данной ситуации нужно удалить файл из базы данных и исходил из этого.
27 июн 18, 14:40    [21525298]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36965
ferzmikk
Гавриленко Сергей Алексеевич,

Насколько я правильно понял в данной ситуации нужно удалить файл из базы данных и исходил из этого.
Т.е. вы уже выяснили, какая у вас ситуация, кроме "на диске стало меньше места"? Выяснили, какая именно база выросла и какие именно файлы?
27 июн 18, 14:42    [21525316]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос  [new]
ferzmikk
Member

Откуда:
Сообщений: 2057
Гавриленко Сергей Алексеевич
Т.е. вы уже выяснили, какая у вас ситуация, кроме "на диске стало меньше места"?
Да, на диске стало меньше места. Использовалась времянка.
Выяснили, какая именно база выросла и какие именно файлы?
Да, конкретная база, через который производился запрос. Данные строк и журнал имеют свой путь с названием.

Запутался тут.
27 июн 18, 15:00    [21525389]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36965
Ну вот и впишите в команду логическое имя того файла, который вырос, желаемый размер файла, и выполните ее в контексте той базы, чей файл вырос.
27 июн 18, 15:04    [21525400]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос  [new]
ferzmikk
Member

Откуда:
Сообщений: 2057
Гавриленко Сергей Алексеевич
Ну вот и впишите в команду логическое имя того файла, который вырос, желаемый размер файла, и выполните ее в контексте той базы, чей файл вырос.
А как узнать желаемый размер файла? База данных со времени растет же.
28 июн 18, 09:21    [21527186]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить