Sql server 对现有索引进行筛选

Sql server 对现有索引进行筛选,sql-server,indexing,Sql Server,Indexing,我有一个家庭作业,我有一个非聚集索引。在后面的作业中,我必须在索引中添加一个过滤器。是否可以向现有索引添加筛选器 这是我的作业,也是我做作业的顺序。最后,它们都必须作为单个脚本运行 在“事务类型”列上创建符合命名约定的索引。它是按升序使用的 将索引更改为填充因子为80。我们选择不保持索引在线,我们希望完全优化 实际上,我们只查看“W”类型的事务,在索引中添加一个过滤器 删除索引 对于#3,我是否必须删除我在#1中创建的索引?添加一个带有筛选器的新索引,然后再在#4中删除它?您可以删除索引,然后在

我有一个家庭作业,我有一个非聚集索引。在后面的作业中,我必须在索引中添加一个过滤器。是否可以向现有索引添加筛选器

这是我的作业,也是我做作业的顺序。最后,它们都必须作为单个脚本运行

  • 在“事务类型”列上创建符合命名约定的索引。它是按升序使用的

  • 将索引更改为填充因子为80。我们选择不保持索引在线,我们希望完全优化

  • 实际上,我们只查看“W”类型的事务,在索引中添加一个过滤器

  • 删除索引


  • 对于#3,我是否必须删除我在#1中创建的索引?添加一个带有筛选器的新索引,然后再在#4中删除它?

    您可以删除索引,然后在索引中添加筛选器选项再次创建相同的索引。这是为了了解更多细节

    对于#3,我是否必须删除我在#1中创建的索引,并添加一个新的索引 一个过滤器,然后再把它放在#4


    SQL Server允许使用以下语法重新创建现有索引。此方法避免了预先删除现有索引的需要,并通过利用原始索引的排序顺序提高了索引重建的性能。
    WITH
    条款还提供了其他选项,以满足您的在线要求。有关详细信息,请参阅上面的文档链接。

    您不能将筛选表达式添加到现有索引中-如果确实需要将非聚集索引“转换”为筛选索引,则必须将其删除并使用筛选表达式重新创建。谢谢Dan,这非常有帮助,因此,我的代码如下所示:在PRODUCTION.TransactionHistory(TransactionType ASC)上创建非聚集索引NCI_TransactionType,其中TransactionType='W'带有(DROP_EXISTING=ON)@吉娜,是的,你已经找到了r作业的答案;-)