代码之家  ›  专栏  ›  技术社区  ›  burnt1ce

SQL Server 2008:如何度量创建/重建索引所需的时间?

  •  1
  • burnt1ce  · 技术社区  · 7 年前

    我正在相当大的表上重建SQL Server 2008上的非聚集索引

    这是密码

    CREATE UNIQUE NONCLUSTERED INDEX [idx_Documents_Title] ON [dbo].[Documents]
    (
        -- 3 columns
    )
    WHERE [deleted]=(0) AND [processing]=(0)
    WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = ON, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
    

    问题..如何衡量重建索引所需的时间? 我是.NET开发人员,通常使用秒表类来度量时间/性能。我可以应用类似的技术来测量重建所需的时间吗?可能不是因为看起来索引的重建/创建是异步的。

    3 回复  |  直到 7 年前
        1
  •  1
  •   EzLo tumao kaixin    7 年前

    ALTER INDEX ... REBUILD

    DECLARE @StartTime DATETIME = SYSDATETIME()
    
    ALTER INDEX [idx_Documents_Title] ON [dbo].[Documents] REBUILD
    
    DECLARE @EndTime DATETIME = SYSDATETIME()
    
    SELECT 
        StartTime = @StartTime, 
        EndTime = @EndTime,
        DifferenceInMinutes = DATEDIFF(MINUTE, @StartTime, @EndTime)
    
        2
  •  1
  •   sniperd Ali Ahmed    7 年前
    DECLARE @START_TIME DATETIME
    SET @START_TIME = GETDATE()
    
    --your index creation code or whatever you'd like to measure
    
    SELECT DATEDIFF(SECOND, @START_TIME, GETDATE()) AS TOTAL_SECONDS
    

    @START_TIME DATEDIFF 0

        3
  •  0
  •   burnt1ce    7 年前

    SET STATISTICS TIME ON