Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tsql 重新组织索引和数据库大小_Tsql_Sql Server 2008 R2_Sql Server 2008 Express - Fatal编程技术网

Tsql 重新组织索引和数据库大小

Tsql 重新组织索引和数据库大小,tsql,sql-server-2008-r2,sql-server-2008-express,Tsql,Sql Server 2008 R2,Sql Server 2008 Express,我的生产数据库存在碎片问题。我的一个主要数据表是大约6GB3GB的索引,大约有9M条记录,有94%!索引碎片 我知道重新组织索引可以解决这个问题,但我的数据库在SQL Server 2008R2 Express上,它有10GB的数据库限制,而且我的数据库大小已经是8GB了 我读了一些关于这个问题的博客文章,但没有人回答我的情况 我的问题1是: 在重新组织该表上的索引后,我可以期望增加多少大小%或GB 问题2: 删除索引->构建相同的索引会占用更少的空间吗?目前时间对我来说不是一个因素 额外问题:

我的生产数据库存在碎片问题。我的一个主要数据表是大约6GB3GB的索引,大约有9M条记录,有94%!索引碎片

我知道重新组织索引可以解决这个问题,但我的数据库在SQL Server 2008R2 Express上,它有10GB的数据库限制,而且我的数据库大小已经是8GB了

我读了一些关于这个问题的博客文章,但没有人回答我的情况

我的问题1是: 在重新组织该表上的索引后,我可以期望增加多少大小%或GB

问题2: 删除索引->构建相同的索引会占用更少的空间吗?目前时间对我来说不是一个因素

额外问题:
还有其他关于数据库碎片的建议吗?我只知道要避免像火一样退缩

在键列上具有索引将通过消除表扫描的需要来改进联接和筛选器。维护良好的索引可以显著提高性能

GUID对索引列的选择很差,这是正确的,但这绝不意味着您不应该创建这些索引。理想情况下,宜使用INT或BIGINT数据类型


对我来说,添加NEWID作为默认值在抵消索引碎片方面显示了一些改进,但如果所有替代方案都失败,那么您可能必须执行索引维护重建,比其他索引更频繁地重新组织操作。重组需要一些工作空间,但在您的场景中,由于时间不重要,我会禁用索引,收缩数据库并创建索引。

避免使用GUID uniqueidentifier作为群集键-这将很快导致94%的索引碎片…此表有一个GUID作为群集索引,正如我所观察到的,它在4天2个工作日内从接近0的碎片变为40%。遗憾的是,我无能为力,因为存储在这个表和相关表中的数据非常重要,我甚至不会开始介绍其他方法来识别记录。谢谢你的回答!