【问题标题】:SQL Server 2016 - get a list of all the index in a database which has online = ONSQL Server 2016 - 获取数据库中所有索引的列表,其中在线 = ON
【发布时间】:2018-05-31 16:49:29
【问题描述】:

我需要获取一个数据库中所有索引的列表,它的在线=ON,有没有办法从sys.tables 获取?

我在sys.indexessys.index_columns 中进行了搜索,但找不到我要查找的内容。

【问题讨论】:

    标签: sql-server sql-server-2008 sql-server-2005 sql-server-2012 sql-server-2016


    【解决方案1】:

    sys.indexes 有一个 is_disabled 列

      select name from sys.indexes where is_disabled = 0
    

    【讨论】:

    • 我在网上找,不是is_disabled,is_disabled列存储索引禁用/启用值
    • 您确定您没有考虑使用具有 online=on 选项的 alter index 语句以最少的阻塞来重建索引吗?
    • 使用alter index我可以改变online=ON的值,我的要求是获取online=ON的数据库中的所有索引
    【解决方案2】:

    我会使用 Ola Hallengren's scripts

    • 将 FragmentationLow / FragmentationMedium / FragmentationHigh 全部设置为 INDEX_REBUILD_ONLINE
    • 设置执行 = N

    这将为每个可以重建的索引在线打印重建(但实际上不会重建它)。这将排除 XML 列、空间索引、包括 LOB 列的索引等...您可以在网络上找到这些列表。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-12
      • 2012-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      • 2021-12-18
      • 1970-01-01
      相关资源
      最近更新 更多