我不能为我的生活还记得那些SQL(SQL服务器2005 +)是删除后紧凑指标即SQL紧凑型指数删除后
PK Identity col1 col2
1 abc def
3 abc def
ID 2被删除了 - 什么的命令基本上紧凑的指标,同时保持引用完整性(有一个行语句)
谢谢,(我知道我要去“面掌”当我看到答案)
我不能为我的生活还记得那些SQL(SQL服务器2005 +)是删除后紧凑指标即SQL紧凑型指数删除后
PK Identity col1 col2
1 abc def
3 abc def
ID 2被删除了 - 什么的命令基本上紧凑的指标,同时保持引用完整性(有一个行语句)
谢谢,(我知道我要去“面掌”当我看到答案)
中的术语SQL是Reorganizing and Rebuilding Indexes,每个命令的命令是:
ALTER INDEX REORGANIZE
和
ALTER INDEX REBUILD
但是按照对链接开行“的SQL Server 2005数据库引擎会自动维护,只要插入,更新或删除操作对基础数据进行的指标。”所以就把它留给服务器吧。
+1:它不是磁盘空间... – Pleun
除非你真的热衷于最小化磁盘空间,否则不要这样做,但也许你正在使用快递并接近大小限制?
无论如何,这样你可以压缩你的数据库:
DBCC SHRINKFILE
(
{ file_name | file_id }
{ [ , EMPTYFILE ]
| [ [ , target_size ] [ , { NOTRUNCATE | TRUNCATEONLY } ] ]
}
)
[ WITH NO_INFOMSGS ]
这不会压缩索引。 –
就像我说的,看起来(也看Marc的评论)OP正在寻找磁盘空间,而不是寻找新的索引。这将有助于解决磁盘空间问题,因为我明确写了这样的downvoting有点过早,然后他回答我对原始问题的评论 – Pleun
我不同意http://meta.stackexchange.com/q/112659/153199 –
SQL服务器通常重用缺失自动释放磁盘空间 - 在需要时。这通常不是一个好主意(也不是真的需要)来“压缩”数据库或索引文件 - 只是让它成为 - SQL Server将重用空间 –
您是否担心磁盘空间或只是一个更清洁的索引? – Pleun
我并不十分担心磁盘空间 - 我只是想要一种方法来压缩身份索引,比如在数百万次删除(从现在起很长一段时间)之后,以便我们使用更少的int可用值。从下面的链接和我的记忆(最好是明显有缺陷)我相信ALTER INDEX重建是我承诺过的后面的一行......“FACE-PALM” –