什么是SQL Server相当于MySQL的OPTIMIZE命令?

时间:2016-06-01 13:59:12

标签: mysql sql-server equivalent

是否有相当于MySQL的OPTIMIZE命令用于SQL Server?

2 个答案:

答案 0 :(得分:1)

在T-SQL中,您可以重建和重组索引,如下所示:

ALTER INDEX ALL ON [dbo].[SomeTable] REBUILD

您可能还想查看有关指定索引填充因子的MSDN文章。

https://msdn.microsoft.com/en-us/library/ms177459.aspx

答案 1 :(得分:1)

取决于:

  1. 如果当前表具有聚集索引,则ALTER INDEX ALL ON [Schema].[Table] REBUILD是一种解决方案。
  2.   

    如果指定了ALL并且基础表是堆,则重建   操作对表没有影响。任何非聚簇索引   与表相关的重建。

    source

    因此,对于堆表,此语句也不会重建堆结构。关于此解决方案,请参阅All部分中的所有警告(如果表中有一个或多个,则使用此操作指定ALL失败)。

    但是

    1. 如果当前表是堆(它没有聚集索引),那么我会使用ALTER TABLE [Schema].[Table] REBUILD 在最后一种情况下,对于堆表,此语句将重建堆结构,但也会重建所有非聚集索引(source)。