Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Топик располагается на нескольких страницах: [1] 2 вперед Ctrl→ все |
Yellmanov Member Откуда: Сообщений: 13 |
Доброго времени суток, помогите пожалуйста с одним вопросом. Есть БД, размер её, ну скажем, 1.1Гб. Есть запрос: USE ;--БД DBCC UPDATEUSAGE (0); CREATE TABLE temp([name] varchar(255), [строк] varchar(255), [зарезервировано] varchar(255), [всего данных] varchar(255), [размер индексов] varchar(255), [свободно] varchar(255)); INSERT INTO temp exec sp_msforeachtable N'exec sp_spaceused ''?'''; SELECT * FROM temp ORDER BY CONVERT(bigint, REPLACE([всего данных], ' KB', '')) DESC; DROP TABLE temp; Возвращает размер таблиц и индексов. При помощи нехитрых телодвижений считаю общий размер, занимаемый таблицами и индексами. Получается что-то порядка 600Мб. Внимание вопрос: А что занимает остальные 500Мб и какой запрос мне это может показать? |
2 дек 13, 19:23 [15227843] Ответить | Цитировать Сообщить модератору |
Гавриленко Сергей Алексеевич Member Откуда: Moscow Сообщений: 37138 |
Из пустого места, например. |
2 дек 13, 19:29 [15227872] Ответить | Цитировать Сообщить модератору |
MasterZiv Member Откуда: Питер Сообщений: 34657 |
Yellmanov, Я не знаю, что данный конктертный запрос выдаёт, но в общем, размер файла БД -- это -- данные -- индексы -- системная служебная информация (системный каталог и прочие мета и системные данные) -- журнал транзакций. |
2 дек 13, 19:40 [15227925] Ответить | Цитировать Сообщить модератору |
Yellmanov Member Откуда: Сообщений: 13 |
Гавриленко Сергей Алексеевич, SHRINKDATABASE выполнен, если вы об этом, если нет то поясните пожалуйста. |
2 дек 13, 19:40 [15227930] Ответить | Цитировать Сообщить модератору |
MasterZiv Member Откуда: Питер Сообщений: 34657 |
Сори, забыл ещё -- пустое место, выделенное под БД или внутри БД под объекты БД (таблицы, индексы). |
2 дек 13, 19:41 [15227935] Ответить | Цитировать Сообщить модератору |
Yellmanov Member Откуда: Сообщений: 13 |
MasterZiv, Журнал транзакций обрезан практически до нуля. |
2 дек 13, 19:43 [15227944] Ответить | Цитировать Сообщить модератору |
Yellmanov Member Откуда: Сообщений: 13 |
MasterZiv, SHRINKDATABASE обрезает это пустое место, насколько я понимаю. Или нет? |
2 дек 13, 19:46 [15227971] Ответить | Цитировать Сообщить модератору |
Гавриленко Сергей Алексеевич Member Откуда: Moscow Сообщений: 37138 |
|
||
2 дек 13, 19:51 [15227997] Ответить | Цитировать Сообщить модератору |
Yellmanov Member Откуда: Сообщений: 13 |
Гавриленко Сергей Алексеевич, собственно вопрос остался открытым в таком случае. |
2 дек 13, 19:52 [15228005] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31778 |
И вообще непонятно, что вы имели в виду "При помощи нехитрых телодвижений считаю общий размер, занимаемый таблицами и индексами"? Вы складывали [зарезервировано] или [всего данных]?
Занимает свободное пространство. Получаем размер файлов, получаем [зарезервировано] из запроса выше, вычитаем - должно получиться 500 мегабайт. |
||||
2 дек 13, 19:54 [15228014] Ответить | Цитировать Сообщить модератору |
Гавриленко Сергей Алексеевич Member Откуда: Moscow Сообщений: 37138 |
|
||
2 дек 13, 19:56 [15228030] Ответить | Цитировать Сообщить модератору |
Yellmanov Member Откуда: Сообщений: 13 |
Гавриленко Сергей Алексеевич,
Пожалуйста. К сообщению приложен файл. Размер - 45Kb |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2 дек 13, 20:04 [15228074] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
и вот это покажите:select file_id, size * 8 as size_in_kb from sys.database_files не всякий шринк обрежет, как попросили. DBCC SHRINKDATABASE включает в себя еще и шринк лога. например, лог нельзя обрезать так, чтоб в нем осталось меньше 2-ух VLF. если каждый из них по 300 Мб, хоть заобрезайся, лог не станет менее 600 Мб. |
2 дек 13, 20:05 [15228075] Ответить | Цитировать Сообщить модератору |
Yellmanov Member Откуда: Сообщений: 13 |
alexeyvg, нет. Я складываю размер таблиц и индексов.
Размер файлов БД 1.1Гб Зарезервировано (600Мб) = Размер данных в таблице + размер индекса для таблицы + свободное место внутри таблицы.
А как тогда обрезает? Пополам чтоле? =) |
||||||||||||
2 дек 13, 20:10 [15228100] Ответить | Цитировать Сообщить модератору |
Yellmanov Member Откуда: Сообщений: 13 |
o-o, Ребята, второй раз повторяю ЛОГ обрезан практически до нуля. |
2 дек 13, 20:11 [15228106] Ответить | Цитировать Сообщить модератору |
зарезервировано
Guest |
а надо "зарезервировано" |
||
2 дек 13, 20:18 [15228133] Ответить | Цитировать Сообщить модератору |
Yellmanov Member Откуда: Сообщений: 13 |
зарезервировано,
|
||
2 дек 13, 20:22 [15228146] Ответить | Цитировать Сообщить модератору |
зарезервировано
Guest |
но не суть, вы то что складывали? |
||||
2 дек 13, 20:27 [15228159] Ответить | Цитировать Сообщить модератору |
Yellmanov Member Откуда: Сообщений: 13 |
Размер базы (1.1Гб) минус (-) зарезервировано (600Мб) = не знаю что (500Мб) единственное, что сложил это SUM([Зарезервировано]) по всем таблицам. |
||||
2 дек 13, 20:31 [15228169] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31778 |
В вторых, есть "отложенные операции удаления", которые шринк не освобождает.
Кроме того, как считали место? sp_msforeachtable вроде ходит только по пользовательчским таблицам? Может, у вас хранимых процедур на 100 мегов :-) |
||||||
2 дек 13, 22:32 [15228589] Ответить | Цитировать Сообщить модератору |
Yellmanov Member Откуда: Сообщений: 13 |
Можно поподробнее насчёт баги?
То есть есть подозрение что системные таблицы весят под 400мб?) Это сколько же надо хранимок чтобы они 100мб весили?)) |
||||||||
3 дек 13, 12:37 [15231035] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104760 |
EXEC sp_spaceused @updateusage = N'TRUE'; DBCC SQLPERF(LOGSPACE); |
||
3 дек 13, 12:39 [15231057] Ответить | Цитировать Сообщить модератору |
Yellmanov Member Откуда: Сообщений: 13 |
Разобрался. Переделал процедуру "sp_MSforeachtable", чтобы она пробегала не только по User-таблицам, а по всем. Сразу нашлись пропавшие МБ, почти все... =) |
3 дек 13, 17:20 [15233877] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31778 |
Или репликации какие нибуть? |
||||
3 дек 13, 17:24 [15233926] Ответить | Цитировать Сообщить модератору |
DaniilSeryi Member Откуда: Сообщений: 1758 |
А запустить
sp_spaceused
не судьба?подробно расжёвывает, какого размера база, и что в ней сколько места занимает. Три основных недостатка: часть данных в MB, а часть в KB; данные выводятся в 2 таблицы; и не даёт данные по файлам логов, но это значение легко получить, вычтя из database_size значение rezerved/1024 и unallocated space/1024: Log=database_size - rezerved/1024- unallocated space/1024 |
17 дек 13, 11:42 [15303566] Ответить | Цитировать Сообщить модератору |
Топик располагается на нескольких страницах: [1] 2 вперед Ctrl→ все |
Все форумы / Microsoft SQL Server | ![]() |