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

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

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

но после перезапуска службы MS SQL у нас появилось 45Гб свободного места.

Внимание, вопрос: откуда?! Как влиять на этот аппетит ?
1 окт 13, 10:58    [14905288]     Ответить | Цитировать Сообщить модератору
 Re: Дисковое пространство сжираемое MS SQL  [new]
icprog
Member

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

Похоже на tempdb
1 окт 13, 11:01    [14905308]     Ответить | Цитировать Сообщить модератору
 Re: Дисковое пространство сжираемое MS SQL  [new]
Александр52
Member

Откуда: Кокосовые острова ส็็็็็
Сообщений: 5136
последите за размером tempdb
1 окт 13, 11:02    [14905316]     Ответить | Цитировать Сообщить модератору
 Re: Дисковое пространство сжираемое MS SQL  [new]
b10s
Member

Откуда:
Сообщений: 108
Спасибо.
Что в ней лежит и можно ли её чистить ?
1 окт 13, 11:11    [14905374]     Ответить | Цитировать Сообщить модератору
 Re: Дисковое пространство сжираемое MS SQL  [new]
Александр52
Member

Откуда: Кокосовые острова ส็็็็็
Сообщений: 5136
b10s, в ней хранятся временные файлы.
Чистить можно, вопрос нужно ли это вам. Лучше предварительно почитать про этот файл базы данных.
1 окт 13, 11:17    [14905424]     Ответить | Цитировать Сообщить модератору
 Re: Дисковое пространство сжираемое MS SQL  [new]
Гость333
Member

Откуда:
Сообщений: 3683
b10s
Что в ней лежит?

— Временные таблицы (как локальные, так и глобальные).
— Постоянные таблицы, специально созданные в tempdb.
— Табличные переменные.
— Наборы данных для static и keyset курсоров.
— Версии строк для транзакций, выполняемых с уровнями изоляции READ COMMITTED SNAPSHOT и SNAPSHOT.
— Хэш-таблицы и таблицы сортировок, если они не помещаются в памяти.
— Дерево индекса, если при его построении указана опция SORT_IN_TEMPDB.
— Наверняка ещё что-то, что я забыл/не знал.

b10s
можно ли её чистить ?

Сначала нужно разобраться, какие объекты и почему занимают много места. Может быть, это нормальное функционирование вашей системы — и тогда лучше не "чистить", а перенести tempdb на диск с достаточным свободным местом.
1 окт 13, 11:32    [14905562]     Ответить | Цитировать Сообщить модератору
 Re: Дисковое пространство сжираемое MS SQL  [new]
b10s
Member

Откуда:
Сообщений: 108
Ну у нас после ребута MS SQL высвободилось 45 гигов - я думаю, что чистить таки надо, если дело в ней
1 окт 13, 11:37    [14905604]     Ответить | Цитировать Сообщить модератору
 Re: Дисковое пространство сжираемое MS SQL  [new]
b10s
Member

Откуда:
Сообщений: 108
автор
Сначала нужно разобраться, какие объекты и почему занимают много места. Может быть, это нормальное функционирование вашей системы — и тогда лучше не "чистить", а перенести tempdb на диск с достаточным свободным местом.


оке :) перенесу, всё-таки на D

Сейчас появилось еще решение: по джобу делать ежедневное сжатие этой базы.
1 окт 13, 11:38    [14905620]     Ответить | Цитировать Сообщить модератору
 Re: Дисковое пространство сжираемое MS SQL  [new]
Glory
Member

Откуда:
Сообщений: 104751
b10s
Ну у нас после ребута MS SQL высвободилось 45 гигов - я думаю, что чистить таки надо, если дело в ней

Вы не знаете причину. Вам назвали _одно_ из возможных мест, где MSSQL может создавать данные. А вы решили, что оно единственное.

Кроме того, если база tempdb выросла, то автоматически, а тем более при перезагрузке ее физический файл НЕ уменьшится
1 окт 13, 11:39    [14905623]     Ответить | Цитировать Сообщить модератору
 Re: Дисковое пространство сжираемое MS SQL  [new]
icprog
Member

Откуда:
Сообщений: 166
Был случай, когда на сервере выполнялся распределенный запрос, tempdb разрасталась более 50 Гб и сжирала все свободное место.
Запрос подправили. В итоге tempdb стала занимать около 5 Гб
1 окт 13, 12:04    [14905852]     Ответить | Цитировать Сообщить модератору
 Re: Дисковое пространство сжираемое MS SQL  [new]
Диклевич Александр
Member

Откуда:
Сообщений: 611
b10s
автор
Сначала нужно разобраться, какие объекты и почему занимают много места. Может быть, это нормальное функционирование вашей системы — и тогда лучше не "чистить", а перенести tempdb на диск с достаточным свободным местом.


оке :) перенесу, всё-таки на D

Сейчас появилось еще решение: по джобу делать ежедневное сжатие этой базы.


if you find yourself shrinking databases so often that you have to automate it, you need to cut up your DBA card and reconsider your choice of career.
1 окт 13, 12:43    [14906231]     Ответить | Цитировать Сообщить модератору
 Re: Дисковое пространство сжираемое MS SQL  [new]
b10s
Member

Откуда:
Сообщений: 108
Glory
b10s
Ну у нас после ребута MS SQL высвободилось 45 гигов - я думаю, что чистить таки надо, если дело в ней

Вы не знаете причину. Вам назвали _одно_ из возможных мест, где MSSQL может создавать данные. А вы решили, что оно единственное.


Ну я у же написал специально - если дело в ней.


Glory
Кроме того, если база tempdb выросла, то автоматически, а тем более при перезагрузке ее физический файл НЕ уменьшится
- значит всё-таки не в ней дело!


Тогда вопрос остается открытым. В чём?
1 окт 13, 13:06    [14906430]     Ответить | Цитировать Сообщить модератору
 Re: Дисковое пространство сжираемое MS SQL  [new]
Гость333
Member

Откуда:
Сообщений: 3683
b10s
Glory
Кроме того, если база tempdb выросла, то автоматически, а тем более при перезагрузке ее физический файл НЕ уменьшится
- значит всё-таки не в ней дело!

Тут какая-то ошибка. При старте сервера база данных tempdb пересоздаётся, а размеры файлов возвращаются к последним сконфигурированным значениям.

Посмотреть сконфигурированные значения для tempdb можно посмотреть так:
select * from sys.master_files where database_id = 2
, столбец size (значение в страницах)

Текущие размеры файлов tempdb можно посмотреть так:
select * from tempdb.sys.database_files
, также столбец size.

Если значение size в sys.database_files больше, чем в sys.master_files, значит, с момента старта SQL-сервера было автоувеличение соответствующего файла tempdb.
1 окт 13, 14:02    [14906961]     Ответить | Цитировать Сообщить модератору
 Re: Дисковое пространство сжираемое MS SQL  [new]
Александр52
Member

Откуда: Кокосовые острова ส็็็็็
Сообщений: 5136
Гость333
При старте сервера база данных tempdb пересоздаётся, а размеры файлов возвращаются к последним сконфигурированным значениям.

tempdb сама при ребуте не пересоздаётся
1 окт 13, 14:27    [14907169]     Ответить | Цитировать Сообщить модератору
 Re: Дисковое пространство сжираемое MS SQL  [new]
b10s
Member

Откуда:
Сообщений: 108
автор
Тут какая-то ошибка. При старте сервера база данных tempdb пересоздаётся, а размеры файлов возвращаются к последним сконфигурированным значениям.
- отлично, значит Glory ввёл меня взаблуждение.

ребутнул СУБД пару часов назад и вот какие значения:

select size from sys.master_files where database_id = 2

ROWS 165296
LOG 46384


select * from tempdb.sys.database_files


ROWS 4729544
LOG 61744


база растёт, и не собирается останавливаться....
1 окт 13, 14:31    [14907204]     Ответить | Цитировать Сообщить модератору
 Re: Дисковое пространство сжираемое MS SQL  [new]
Glory
Member

Откуда:
Сообщений: 104751
b10s
база растёт, и не собирается останавливаться....

База не растет сама по себе. Может кто-то включил, например, READ_COMMITTED_SNAPSHOT and ALLOW_SNAPSHOT_ISOLATION ?

ROWS 165296
LOG 46384

Вы хотите сказать, что у вас tempdb.sys.database_files более 100тыс записей ? Или что это за цифры ?
1 окт 13, 14:47    [14907296]     Ответить | Цитировать Сообщить модератору
 Re: Дисковое пространство сжираемое MS SQL  [new]
b10s
Member

Откуда:
Сообщений: 108
Glory
b10s
база растёт, и не собирается останавливаться....

База не растет сама по себе. Может кто-то включил, например, READ_COMMITTED_SNAPSHOT and ALLOW_SNAPSHOT_ISOLATION ?

ROWS 165296
LOG 46384

Вы хотите сказать, что у вас tempdb.sys.database_files более 100тыс записей ? Или что это за цифры ?


Да, у нас база разрослась до 40Гб - сейчас именно такие цифры:

Картинка с другого сайта.

К сообщению приложен файл. Размер - 29Kb
1 окт 13, 14:53    [14907343]     Ответить | Цитировать Сообщить модератору
 Re: Дисковое пространство сжираемое MS SQL  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Александр52
Гость333
При старте сервера база данных tempdb пересоздаётся, а размеры файлов возвращаются к последним сконфигурированным значениям.

tempdb сама при ребуте не пересоздаётся

Не понял, что вы имеете в виду.

1) Смотрим документацию:
http://technet.microsoft.com/en-us/library/ms190768.aspx
tempdb is re-created every time SQL Server is started so that the system always starts with a clean copy of the database.

2) Документация это хорошо, но, как говорится, "доверяй, но проверяй". Проверяем опытным путём:
— создаём любой постоянный объект в tempdb;
— убеждаемся, что объект виден в любом коннекте, и не исчезает с закрытием создавшего его коннекта;
— перестартуем сервер;
— видим, что объект исчез.

3) Дополнительно, в errorlog можно увидеть такую запись, относящуюся к старту сервера:
2013-10-01 12:21:45.43 spid15s     Clearing tempdb database.
1 окт 13, 15:02    [14907433]     Ответить | Цитировать Сообщить модератору
 Re: Дисковое пространство сжираемое MS SQL  [new]
b10s
Member

Откуда:
Сообщений: 108
Гость333 ,

на моем скрине видна дата создания :) т.е. как раз когда я перезапустил серв. Так что вы правы - она пересоздается при перезапуске сервера.

Вопросы теперь такие:
- как мне грохнуть темповые таблицы?
- как узнать их список и выяснить кто их насоздавал?


видимо кто-то создает временные таблицы и не заботится о их удалении, поэтому у нас такой срач :(
1 окт 13, 15:06    [14907462]     Ответить | Цитировать Сообщить модератору
 Re: Дисковое пространство сжираемое MS SQL  [new]
Glory
Member

Откуда:
Сообщений: 104751
b10s
Вопросы теперь такие:
- как мне грохнуть темповые таблицы?
- как узнать их список и выяснить кто их насоздавал?


видимо кто-то создает временные таблицы и не заботится о их удалении, поэтому у нас такой срач :(

Временные таблицы удаляются автоматически. По окончании создавшего их пакета
Удалить временные таблицы другого соединения вы не сможете
1 окт 13, 15:07    [14907477]     Ответить | Цитировать Сообщить модератору
 Re: Дисковое пространство сжираемое MS SQL  [new]
Александр52
Member

Откуда: Кокосовые острова ส็็็็็
Сообщений: 5136
Гость333, вы правы, я ошибся.
1 окт 13, 15:08    [14907478]     Ответить | Цитировать Сообщить модератору
 Re: Дисковое пространство сжираемое MS SQL  [new]
b10s
Member

Откуда:
Сообщений: 108
Мне нужно мониторить, кто плодит временные таблицы и что в них лежит. Знать почему они растут.

И еще, я только что ребутнул сервер, еще раз. База tempdb пересоздалась, но, внимание! - размер её упал незначительно:
стал не 300Мб, как прежде, а 38Гб. Когда до перезагрузки он был 45Гб

Я в замешательстве
1 окт 13, 15:19    [14907579]     Ответить | Цитировать Сообщить модератору
 Re: Дисковое пространство сжираемое MS SQL  [new]
Glory
Member

Откуда:
Сообщений: 104751
b10s
Мне нужно мониторить, кто плодит временные таблицы

Вы уже помониторили, что за объекты у вас вообще в tempdb ?
1 окт 13, 15:21    [14907587]     Ответить | Цитировать Сообщить модератору
 Re: Дисковое пространство сжираемое MS SQL  [new]
Гость333
Member

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

Посмотрите вот эту стаью: http://msdn.microsoft.com/en-us/library/ms176029.aspx
Там есть запросы, которые показывают, какими объектами занято место в tempdb.
Правда, постфактум это нельзя выяснить (например, когда объект уже удалён в связи с закрытием коннекта). Но можно настроить какой-нибудь аудит, например, записывать с определённой частотой в заранее созданную таблицу результаты запросов из приведённой ссылки, с последующим анализом.
1 окт 13, 15:21    [14907592]     Ответить | Цитировать Сообщить модератору
 Re: Дисковое пространство сжираемое MS SQL  [new]
b10s
Member

Откуда:
Сообщений: 108
Glory
b10s
Мне нужно мониторить, кто плодит временные таблицы

Вы уже помониторили, что за объекты у вас вообще в tempdb ?


знать бы как мониторить :)

вот что имею, но кто создал, под каким именем и сколько она весит - ХЗ

Картинка с другого сайта.

К сообщению приложен файл. Размер - 99Kb
1 окт 13, 15:50    [14907808]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить