什么是SQL索引名称?

10 sql indexing

在SQL中,当我创建数据库索引时,我需要为索引指定一个名称,如

CREATE INDEX timestamp_index ON hit (timestamp);
Run Code Online (Sandbox Code Playgroud)

唯一一次这个名称似乎是必要的,如果我想删除索引

DROP INDEX timestamp_index;
Run Code Online (Sandbox Code Playgroud)

索引名称还有其他用途吗?

SQL*_*ace 14

以下是需要考虑的几件事:

你会如何重建索引?

您将如何对索引进行碎片整理/重组?

你会如何改变指数?

您如何查看索引以查看其中的列?

查看执行计划时,您如何知道使用了哪个索引?

在执行BULK INSERT/BCP时如何禁用索引?

sys.dm_db_missing_index_details当你不知道名字时,你会如何使用DMV?

顺便说一句,当你创建primary key一个clustered index将被默认创建,SQL Server将赋予它为你的名字

create table bla  (id int primary key)
go

select * from sys.sysobjects s 
join sys.sysobjects s2 on s.parent_obj = s2.id
where s2.name = 'bla'
Run Code Online (Sandbox Code Playgroud)

这是为该索引生成的名称 PK__bla__3213E83F66603565


Kal*_*ium 6

有时需要进行索引提示,从而告诉查询引擎应该使用哪个索引.如果索引没有命名,则无法执行此操作.