[sql] SQL에서 테이블 크기를 찾는 방법은 무엇입니까?

SQL에서 테이블 크기를 찾는 방법은 무엇입니까?



답변

SQL 서버 :-

sp_spaceused 'TableName'

또는 관리 스튜디오에서 :
테이블-> 속성-> 스토리지를 마우스 오른쪽 버튼으로 클릭합니다.

MySQL :-

SELECT table_schema, table_name, data_length, index_length FROM information_schema.tables

Sybase :-

sp_spaceused 'TableName'

오라클 :-오라클 내
에서 테이블 크기를 계산하는 방법


답변

ratty와 Haim의 게시물 (댓글 포함)의 답변을 결합하여 SQL Server의 경우 지금까지 가장 우아한 것 같습니다.

-- DROP TABLE #tmpTableSizes
CREATE TABLE #tmpTableSizes
(
    tableName varchar(100),
    numberofRows varchar(100),
    reservedSize varchar(50),
    dataSize varchar(50),
    indexSize varchar(50),
    unusedSize varchar(50)
)
insert #tmpTableSizes
EXEC sp_MSforeachtable @command1="EXEC sp_spaceused '?'"


select  * from #tmpTableSizes
order by cast(LEFT(reservedSize, LEN(reservedSize) - 4) as int)  desc

이렇게하면 예약 된 크기 순서로 모든 테이블 목록이 가장 큰 것에서 가장 작은 것 순으로 표시됩니다.


답변

사용자 지정 이름 테이블 크기 (GB)를 찾기 위한 쿼리 ( https://stackoverflow.com/a/7892349/1737819 수정 ). 이것을 시도하고 ‘YourTableName’을 테이블 이름으로 바꾸십시오.

SELECT
    t.NAME AS TableName,
    p.rows AS RowCounts,
    CONVERT(DECIMAL,SUM(a.total_pages)) * 8 / 1024 / 1024 AS TotalSpaceGB,
    SUM(a.used_pages)  * 8 / 1024 / 1024 AS UsedSpaceGB ,
    (SUM(a.total_pages) - SUM(a.used_pages)) * 8 / 1024 / 1024 AS UnusedSpaceGB
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 = 'YourTable'
    AND t.is_ms_shipped = 0
    AND i.OBJECT_ID > 255
GROUP BY
    t.Name, s.Name, p.Rows
ORDER BY
    UsedSpaceGB DESC, t.Name


답변

SQL Server는 인덱스 크기를 포함하여 테이블 크기를 쉽게 표시하기 위해 실행할 수있는 기본 제공 저장 프로 시저를 제공합니다.

sp_spaceused ‘Tablename’


답변

SQL Server는 인덱스 크기를 포함하여 테이블 크기를 쉽게 표시하기 위해 실행할 수있는 기본 제공 저장 프로 시저를 제공합니다.

통사론:

 sp_spaceused ‘Tablename’

을 참조하십시오 :

http://www.howtogeek.com/howto/database/determine-size-of-a-table-in-sql-server/


답변

혹시 크기에 따라 테이블의 레코드 수를 의미합니까? 이 경우 :

SELECT COUNT(*) FROM your_table_name


답변

그리고 PostgreSQL에서 :

SELECT pg_size_pretty(pg_relation_size('tablename'));