Как узнать размер таблицы ms sql
Перейти к содержимому

Как узнать размер таблицы ms sql

  • автор:

Размер всех таблиц

Размер всех таблиц

Бывает необходимость узнать размер каждой таблицы, например для создания схемы секционирования. В этом нам поможет процедура sp_spaceused:

DBCC UPDATEUSAGE ( 0 ) ;

CREATE TABLE #t([имя таблицы] varchar(255), [строк] varchar(255), [зарезервировано] varchar(255), [всего данных] varchar(255), [размер индексов] varchar(255), [свободно] varchar(255));

INSERT INTO #t
exec sp _ msforeachtable N ‘exec sp_spaceused ‘ ‘?’ » ;
SELECT * FROM #t ORDER BY CONVERT(bigint, REPLACE([всего данных], ‘ KB’, »)) DESC;
DROP TABLE #t;

Команда DBCC UPDATEUSAGE (0); вызывается для более точного определения занимаемого пространства.

Данный запрос выполняется достаточно долго, но при этом большой нагрузки на сервер не создаёт.

Предыдущий способ не является оптимальным. Следующий скрипт выполняется значительно быстрее:

Как вычислить размер таблицы в базе данных?

В приложение необходимо реализовать удаление данных из базы данных за определенные промежуток времени. При этом необходимо показывать сколько данных удалиться, например, если пользователь удалить данные за предыдущий месяц то освободиться Х Кб места.
Нашел множество Sql запросов считающих объем всей базы и конкретной таблицы. Но если посчитать размер все базы, и каждой таблицы в отдельности они не совпадают.

Можно ли как-то узнать сколько места освободиться если я удалю часть данных? Не в конкретной таблице, а в базе, после перерасчета размера базы.

  • Вопрос задан более трёх лет назад
  • 11379 просмотров

Комментировать

Решения вопроса 0

Ответы на вопрос 1

asd24

MS SQL Server Developer/Administrator

Ответ написан более трёх лет назад

Комментировать

Нравится Комментировать

Ваш ответ на вопрос

Войдите, чтобы написать ответ

c#

  • C#
  • +2 ещё

Возможно ли получить tcp-сокет в C#-приложении? Или как узнать IP?

  • 1 подписчик
  • 17 нояб.
  • 86 просмотров

Размер таблиц в БД MS SQL SERVER отсортированный по убыванию

1. Скрипт запускать из контекста анализируемой БД
2. Размеры приведены к килобайтам.
3. rows может быть неточно (см. документацию)
4. Колонки:
name — имя таблицы
data — килобайт данных
indexes — килобайт индексов
q — сумма данных и индексов
rows — записей
index_count — индексов
date_recount_stat — статистика
record_len — длина записи
5. На 2005 не проверял.

Метки:

Как узнать размер таблицы ms sql

Други, выручайте! Первый раз за последние 5 лет потребовалось посмотреть на чересчур жирные таблицы, а обработку то-ли удалил, то-ли потерял((
Киньте на почту, с меня аплодисменты))
dan@tedza.com

SELECT
t.NAME AS TableName,
s.Name AS SchemaName,
p.rows AS RowCounts,
SUM(a.total_pages) * 8 AS TotalSpaceKB,
SUM(a.used_pages) * 8 AS UsedSpaceKB,
(SUM(a.total_pages) — SUM(a.used_pages)) * 8 AS UnusedSpaceKB
FROM
sys.tables t
INNER JOIN
sys.indexes i ON t.OBJECT_ID = i.object_id
INNER JOIN
sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id
INNER JOIN
sys.allocation_units a ON p.partition_id = a.container_id
LEFT OUTER JOIN
sys.schemas s ON t.schema_id = s.schema_id
WHERE
t.NAME NOT LIKE ‘dt%’
AND t.is_ms_shipped = 0
AND i.OBJECT_ID > 255
GROUP BY
t.Name, s.Name, p.Rows
ORDER BY
RowCounts DESC

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *