SQL Server 2012 Express에 사용되지 않은 공간이 많은 테이블이 있습니다.
데이터베이스의 공간을 확보해야합니다.
| 이름 | ROWS | 예약 됨 | 데이터 | INDEX_SIZE | 미사용 | | ------------- | -------- | ----------------------------- --- | ------------ | -------------- | | MyTableName | 158890 | 8928296 KB | 5760944 KB | 2248 KB | 3165104 KB |
SQL에서 3165104KB를 릴리스하려면 어떻게해야합니까?
나는 이미 시도했다 :
Alter table MyTableName Rebuild
DBCC CLEANTABLE (MyDbName,"MyTableName ", 0)
ALTER INDEX ALL ON MyTableName REORGANIZE ;
ALTER INDEX PK_Image ON MyTableName REBUILD WITH (ONLINE = OFF)
다음은 테이블입니다.
CREATE TABLE [dbo].[MyTableName](
[ImageID] [int] IDENTITY(1,1) NOT NULL,
[DateScan] [datetime] NULL,
[ScanImage] [image] NULL,
CONSTRAINT [PK_Image] PRIMARY KEY CLUSTERED
(
[ImageID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 100) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
우리가 한 유일한 일은 ScanImage
모든 행에서 훨씬 더 작은 이미지 로 대체 됩니다 (이것은 사용되지 않은 공간이 얼마나 많은 지입니다).