删除非聚集索引是否会删除SQL Server表中现有的全文索引?

时间:2019-02-12 05:29:59

标签: sql sql-server sql-server-2008 full-text-indexing non-clustered-index

CREATE TABLE [dbo].[TicketTasks]
(
        [TicketTaskId] [int] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
        [TicketTaskTypeId] [char](2) NOT NULL,
        [TicketId] [int] NOT NULL, 
        [CreatedUtc] [datetime] NOT NULL,
        [DeletedUtc] [datetime] NULL,
        [DepartmentId] [int] NOT NULL,
        [TaskAction] [nvarchar](max) NULL,
        [TaskResult] [nvarchar](max) NULL,
        [TaskPrivateNote] [nvarchar](max) NULL,

        CONSTRAINT [PK_TicketTasks] 
           PRIMARY KEY CLUSTERED ([TicketTaskId] ASC) 
)

嗨,这是我的表格结构。

  1. 已群集的TicketTaskId
  2. 带有[CreatedUtc],[DeletedUtc],[DepartmentId]的TicketId非聚集索引
  3. 添加了TaskAction,TaskResult,TaskPrivateNote,用于全文索引

此表中有大约5000万条记录。目前,我必须为TicketID删除并重新创建非聚簇索引,以便按desc排序。

这种非聚集索引的删除是否会影响其他任何索引?

会删除表格的全文索引吗?

1 个答案:

答案 0 :(得分:0)

常见的非聚集索引彼此独立,您可能会遇到的唯一问题是,如果您篡改聚集索引(通常伴随着PRIMARY KEY),因为它会物理地重组数据和所有其他索引索引包含指向它的指针。

但是,全文索引附加到强制值唯一性的索引(UNIQUE索引)上。这是在创建全文索引时通过KEY INDEX选项完成的:

CREATE FULLTEXT INDEX 
    ON [dbo].[TicketTasks](TaskAction)   
    KEY INDEX <UniqueIndexName>

只要不更改此引用的唯一索引,就可以删除其他非聚集索引。