删除非聚集索引是否会删除 SQL 服务器 table 中现有的全文索引?
Does dropping of non clustered index removes existing Full Text Indexing in SQL Server table?
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)
)
嗨,这是我的 table 结构。
- 集群的TicketTaskId
- 具有 [CreatedUtc]、[DeletedUtc]、[DepartmentId] 的 TicketId 非聚集索引
- 为全文索引添加了TaskAction、TaskResult、TaskPrivateNote
我在这个 table 中有大约 5000 万条记录。目前我必须删除并重新创建 TicketID 的非聚集索引才能按 desc 排序。
删除非聚集索引是否会影响任何其他索引?
它会删除为 table 完成的全文索引吗?
普通非聚集索引彼此独立,唯一可能遇到的问题是如果您篡改聚集索引(通常伴随 PRIMARY KEY
),因为它在物理上重新组织数据并且所有其他索引都包含指向它的指针。
但是,全文索引附加到强制值唯一性的索引(UNIQUE
索引)。这是在创建全文索引时通过KEY INDEX
选项完成的:
CREATE FULLTEXT INDEX
ON [dbo].[TicketTasks](TaskAction)
KEY INDEX <UniqueIndexName>
所以只要你不改变这个引用的唯一索引,你可以删除其他非聚集索引。
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)
)
嗨,这是我的 table 结构。
- 集群的TicketTaskId
- 具有 [CreatedUtc]、[DeletedUtc]、[DepartmentId] 的 TicketId 非聚集索引
- 为全文索引添加了TaskAction、TaskResult、TaskPrivateNote
我在这个 table 中有大约 5000 万条记录。目前我必须删除并重新创建 TicketID 的非聚集索引才能按 desc 排序。
删除非聚集索引是否会影响任何其他索引?
它会删除为 table 完成的全文索引吗?
普通非聚集索引彼此独立,唯一可能遇到的问题是如果您篡改聚集索引(通常伴随 PRIMARY KEY
),因为它在物理上重新组织数据并且所有其他索引都包含指向它的指针。
但是,全文索引附加到强制值唯一性的索引(UNIQUE
索引)。这是在创建全文索引时通过KEY INDEX
选项完成的:
CREATE FULLTEXT INDEX
ON [dbo].[TicketTasks](TaskAction)
KEY INDEX <UniqueIndexName>
所以只要你不改变这个引用的唯一索引,你可以删除其他非聚集索引。