Tôi có một bảng trong SQL Server 2012 Express với nhiều không gian chưa sử dụng.
Tôi cần giải phóng không gian trong cơ sở dữ liệu.
| TÊN | ROWS | ĐẶT CH | | DỮ LIỆU | INDEX_SIZE | UNUSED | | ------------- | -------- | -------------- | ----------- --- | ------------ | -------------- | | Tên MyTable | 158890 | 8928296 KB | 5760944 KB | 2248 KB | 3165104 KB |
Làm cách nào để có được SQL để phát hành 3165104KB?
Tôi đã thử:
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)
Đây là bảng:
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
Điều duy nhất chúng tôi đã làm được thay thế ScanImage
trên mỗi hàng bằng một hình ảnh nhỏ hơn nhiều (đây là cách có quá nhiều không gian không sử dụng).