SQL Server减少磁盘大小

时间:2016-10-02 21:49:06

标签: sql-server

我在生产中有一个数据库,需要减少数据库的磁盘大小。我按照说明收缩文件,但结果有点令人惊讶。

很抱歉这里有很多数字,但我不知道如何更好地表达问题。

数据库只包含一个包含11,634,966行的表。

表结构如下我刚刚更改了列名

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   libsystem_kernel.dylib          0x00007fff887dc866 __pthread_kill + 10
1   libsystem_pthread.dylib         0x00007fff87a3935c pthread_kill + 92
2   libsystem_c.dylib               0x00007fff88614bba abort + 125
3   libsystem_c.dylib               0x00007fff885dea5f __assert_rtn + 321
4   com.apple.coreui                0x00007fff875aa1a7 CUIRenditionKeySetValueForAttribute + 307
5   com.apple.coreui                0x00007fff875a9004 -[CUIStructuredThemeStore _canGetRenditionWithKey:isFPO:lookForSubstitutions:] + 200
6   com.apple.coreui                0x00007fff875a8f1b -[CUIStructuredThemeStore canGetRenditionWithKey:] + 22
7   com.apple.coreui                0x00007fff875c4eab -[CUICatalog _resolvedRenditionKeyForName:scaleFactor:deviceIdiom:deviceSubtype:] + 291
8   com.apple.coreui                0x00007fff875c4c53 -[CUICatalog imageWithName:scaleFactor:deviceIdiom:deviceSubtype:] + 29
9   com.apple.AppKit                0x00007fff88820b1b +[NSImage _catalogImageWithName:bundle:] + 132
10  com.apple.AppKit                0x00007fff8881aefd +[NSImage imageNamed:] + 261

排除XML字段,我计算出每行的数据大小为68字节。

我针对数据库运行查询,查找xml字段F8的min,max和avg大小

显示以下内容:

id bigint not null    8 -- the primary key (clustered index)
F1 int not null       4
F2 int not null       4
F3 int not null       4
F4 datetime not null  8
F5 int not nul        4
F6 int not null       4
F7 int not null       4
F8 xml                ?
F9 uniqueidentifier   16
F10 int               4
F11 datetime not null 8

收缩数据库后磁盘上的文件大了108G。

这转化为以下

min :   625 bytes
max : 81782 bytes
avg :  5321 bytes

但这意味着开销为41.948%

这是预期的吗?我能做些什么来减少108G的磁盘大小。

BTW表上只有一个聚集索引。

我正在使用SQL Server 2008(SP3)

0 个答案:

没有答案