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

Как посмотреть размер таблиц в sql

  • автор:

Оценка размера таблицы

Оценить пространство, необходимое для хранения данных в таблице, можно с помощью следующих шагов:

  1. Рассчитайте пространство, необходимое для кучи или кластеризованного индекса, с помощью инструкций в статьях Оценка размера кучи и Оценка размера кластеризованного индекса.
  2. Вычислите необходимое пространство для каждого некластеризованного индекса с помощью инструкций в статье Оценка размера некластеризованного индекса.
  3. Сложите значения, рассчитанные на шаге 1 и 2.

PostgreSQL — Как узнать размер таблиц в базе данных

PostgreSQL - Как узнать размер таблиц в базе данных

В сегодняшней статье мы поговорим о том как узнать размер таблиц в базе данных PostgreSQL.

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

В первом варианте мы выведем 5 самых больших таблиц в базе данных postgres, для этого выполним запрос.

SELECT nspname || ‘.’ || relname AS «relation»,
pg_size_pretty(pg_relation_size(C.oid)) AS «size»
FROM pg_class C
LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace)
WHERE nspname NOT IN (‘pg_catalog’, ‘information_schema’)
ORDER BY pg_relation_size(C.oid) DESC
LIMIT 5;

В этом варианте запрос показывает общий размер всех таблиц, включая все индексы в текущей базе данных.

SELECT nspname || ‘.’ || relname AS «relation»,
pg_size_pretty(pg_total_relation_size(C.oid)) AS «total_size»
FROM pg_class C
LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace)
WHERE nspname NOT IN (‘pg_catalog’, ‘information_schema’)
AND C.relkind <> ‘i’
AND nspname !~ ‘^pg_toast’
ORDER BY pg_total_relation_size(C.oid) DESC;

Запрос, который показывает размер определенной таблицы в базе данных.

SELECT pg_size_pretty( pg_total_relation_size( ‘table_name’ ));

Запрос, который показывает размер индекса.

Всем спасибо, я надеюсь что вам моя статья хоть чем-то помогла.

MySql. Как узнать размер таблицы в базе данных

Данный материал предоставлен сайтом PacificSky.Ru исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.

Выполнение запроса на получение размера таблицы в базе данных MySql.

Для того, чтобы получить размер таблицы в базе данных, необходимо выполнить запрос:

SELECT table_name AS `Table`, round(((data_length + index_length) / 1024 / 1024), 2) `Size in MB` FROM information_schema.TABLES WHERE table_schema = "Название базы данных" AND table_name = "Название таблицы";

В данный запрос требуется только подставить название базы данных и название таблицы.
В моем примере база данных называется test, а название таблицы test_db.

Результат выполнения запроса:

Размер моей таблицы test_db составил 3,52 мегабайта.

Для того, чтобы получить размер всех таблиц из всех баз данных, необходимо выполнить следующий запрос:

SELECT table_schema as `Database`, table_name AS `Table`, round(((data_length + index_length) / 1024 / 1024), 2) `Size in MB` FROM information_schema.TABLES ORDER BY (data_length + index_length) DESC;

SQL: Как определить размер таблиц в БД MS SQL

Для определения размера таблиц в базе данных, размещенной на сервере Microsoft SQL Server, требуется выполнить следующие действия:
1. Подключиться к серверу баз данных, при помощи SQL Server Management Studio (SSMS)
2. Выбрать базу данных, размер таблиц которой необходимо определить
3. Выполнить SQL запрос:

USE ; GO 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 t.Name; GO

где, «database_name» — имя базы данных, для которой необходимо получить список таблиц с размерами.
Размер таблиц базы данных будет указан в Килобайтах

Если необходимо получить ограниченных список таблиц, например, содержащих определенные слова в названии, то можно сократить вывод добавив условие (t.Name Like ‘%Filter%’) в конструкцию WHERE

WHERE t.Name NOT LIKE 'dt%' AND t.Name Like '%Filter%' AND t.is_ms_shipped = 0 AND i.object_id > 255

где, Filter — это подстрока в названии таблицы

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

Хранимая процедура (stored procedure) sp_spaceused выводит количество строк, зарезервированное место на диске и место на диске, которое используется таблицей, индексированным представлением или очередью компонента Service Broker в текущей базе данных, либо выводит место на диске, зарезервированное и используемое всей базой данных.

Ниже показан пример, в котором предоставляются сведения о занимаемом месте на диске для таблицы table_name и ее индексах в базе данных database_name, используя хранимую процедуру sp_spaceused:

USE ; GO EXEC sp_spaceused N'.'; GO 

Ниже показан пример, в котором предоставляются сведения о занимаемом месте на диске для всех таблиц и ее индексах в базе данных database_name.

USE ; GO sp_msforeachtable N'EXEC sp_spaceused [?]'; GO
Определить дисковое пространство используемое индексами

Чтобы узнать сколько места занимают индексы таблиц базы данных можно использовать следующий запрос:

USE ; GO SELECT OBJECT_NAME(i.object_id) AS TableName, i.name AS IndexName, i.index_id AS IndexID, 8 * SUM(a.used_pages) AS 'Indexsize(KB)' FROM sys.indexes AS i JOIN sys.partitions AS p ON p.object_id = i.object_id AND p.index_id = i.index_id JOIN sys.allocation_units AS a ON a.container_id = p.partition_id GROUP BY i.OBJECT_ID, i.index_id, i.name ORDER BY OBJECT_NAME(i.object_id), i.index_id

Приведенные примеры позволяют получить оперативно получить информацию о занимаемом дисковом пространстве.

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

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