Для чего имя индекса SQL?

В SQL, когда я создаю индекс базы данных, я обязан давать индексу имя, как в

CREATE INDEX timestamp_index ON hit (timestamp);

Единственное время, когда это имя, кажется, необходимо, - то, если я хочу удалить индекс с

DROP INDEX timestamp_index;

Есть ли какое-либо другое использование имени индекса?

10
задан 7 July 2010 в 00:33
поделиться

6 ответов

ALTER INDEX timestamp_index ...

Ссылка на T-SQL

3
ответ дан 3 December 2019 в 16:28
поделиться

Вот пара вещей, о которых стоит подумать:

Как бы вы перестроили индекс?

Как бы вы дефрагментировали / реорганизовали индекс?

как бы вы изменили индекс index?

Как бы вы посмотрели на индекс, чтобы увидеть, какие столбцы в нем?

При просмотре плана выполнения, как вы узнаете, какой индекс был использован?

Как бы вы отключили индекс при выполнении BULK INSERT / BCP?

Как бы вы использовали DMV sys.dm_db_missing_index_details , если вы не знаете имя?

Кстати, когда вы создаете первичный ключ a кластерный индекс будет создан по умолчанию, 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'

Вот имя, которое было сгенерировано для этого индекса PK__bla__3213E83F66603565

14
ответ дан 3 December 2019 в 16:28
поделиться

Иногда необходимо сделать подсказку индекса, то есть указать механизму запроса, какой индекс он должен использовать. Если у ваших индексов нет имен, вы не сможете этого сделать.

6
ответ дан 3 December 2019 в 16:28
поделиться

Как еще можно определить индекс?

Возможно, к нему также прилагается журнал.

1
ответ дан 3 December 2019 в 16:28
поделиться

Я часто так же отношусь к именам файлов. Должно ли имя файла mp3 содержать метаданные (исполнитель, альбом, не подкаст и т. Д.), Если атрибуты файла работают лучше? Файлы на моем iPod не похожи на соответствующие имена файлов на моем жестком диске, потому что он использует индекс, и мне не нужно было придумывать имя для , который индекс!

В отличие от имени элемента данных, имя индекса произвольно. Идеальный индекс - это тот, который создается и постоянно «под присмотром» системы, насколько ей известно. К сожалению, реальность такова, что в редких случаях вам может потребоваться что-то с этим сделать (например, бросить!). Вы можете обратиться к системному словарю, чтобы идентифицировать индекс на основе его атрибутов, обычно только столбцов, которые он включает.

0
ответ дан 3 December 2019 в 16:28
поделиться

Это также полезно при просмотре / проверке планов выполнения (по крайней мере, в SQL Server), поскольку используемые индексы отображаются по имени.

1
ответ дан 3 December 2019 в 16:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: