티스토리 뷰
exec sp_sapceused [TableName] 실행하면
해당 테이블의 테이블행수, 테이블크기, 인덱스크기등을 확인 할 수 있다.
하지만 한 개의 테이블의 정보만 확인 할 수 있다.
아래와 같이 sp_Msforeachtable 프로시져를 사용하여 해당 데이터베이스의 테이블 전체의 정보를 확인 할 수 있다.
원래 내가 하고 싶었던 것은 아래와 같이 템프성 테이블들이 10000개정도 있을때 행수가 없는 테이블들을 삭제하고 싶어서 아래 쿼리를 사용을 하였다.
<해당 데이터베이스의 모든 테이블의 행수, 크기 구하기>
CREATE TABLE #TableSize (
Name varchar(255),
[rows] int,
reserved varchar(255),
data varchar(255),
index_size varchar(255),
unused varchar(255))
CREATE TABLE #ConvertedSizes (
Name varchar(255),
[rows] int,
reservedKB int,
dataKB int,
reservedIndexSizeKB int,
reservedUnusedKB int)
EXEC sp_MSforeachtable @command1="insert into #TableSize EXEC sp_spaceused '?'";
INSERT INTO #ConvertedSizes (Name, [rows], reservedKb, dataKb, reservedIndexSizeKB, reservedUnusedKB)
SELECT name, [rows],
SUBSTRING(reserved, 0, LEN(reserved)-2),
SUBSTRING(data, 0, LEN(data)-2),
SUBSTRING(index_size, 0, LEN(index_size)-2),
SUBSTRING(unused, 0, LEN(unused)-2)
FROM #TableSize;
SELECT * FROM #ConvertedSizes
ORDER BY reservedKb desc;
GO
--DROP TABLE #TableSize
--DROP TABLE #ConvertedSizes
[참고문서]
sp_spaceused(Transact-SQL)
https://msdn.microsoft.com/ko-kr/library/ms188776.aspx
'SQL Server' 카테고리의 다른 글
[SQL Server] CTE를 이용한 재귀쿼리 작성 및 동작방식 (0) | 2015.03.26 |
---|---|
SQL Server Stored Procedure, CTE Recursion Limit (재귀횟수제한) (0) | 2015.03.26 |
[MSSQL]SQL Server DAC-관리자 전용 연결 (0) | 2015.03.13 |
[MSSQL] 클러스터 환경에서 SQL Server 단일모드 시작하기 (0) | 2015.03.10 |
[MSSQL] sqlcmd 유틸리티 사용시 쿼리결과를 텍스트파일로 저정하는 방법 (0) | 2015.03.09 |
- Total
- Today
- Yesterday