Как сформулировать имя_индекса в SQL?

#tsql #indexing

#tsql #индексирование

Вопрос:

Я пытаюсь создать индекс в одной из моих таблиц с точной меткой. Вот как я пытаюсь это сделать … ожидая, что «имя_системы» будет преобразовано в имя столбца или таблицы. Но после того, как я запускаю эту команду и просматриваю ее в обозревателе объектов, она отображается как

 "[<Name of Missing Index, sysname   '_prod',>]".
  

Как вы определяете index_names более описательным образом? (Я пытаюсь добавить расширение «_prod» к index_name, поскольку ИНДЕКС index_name уже существует).

 USE [AMDMetrics]
GO


CREATE NONCLUSTERED INDEX 

 [<Name of Missing Index, sysname   '_prod',>]

  ON [SMARTSOLVE].[V_CXP_CUSTOMER_PXP] ([QXP_UDF_STRING_8], [QXP_REPORT_DATE], 
[QXP_XRS_DESCRIPTION]) 
  INCLUDE ([QXP_ID], [QXP_EXCEPTION_NO], [QXP_BASE_EXCEPTION], [QXP_CATEGORY], 
[QXP_OCCURENCE_DATE], [QXP_COORD_ID], [QXP_SHORT_DESC], [QXP_ROOT_CAUSE], 
[QXP_DESCRIPTION], [QXP_QEI_ID], [PXP_LOT_NUMBER], [CXP_ID], [CXP_AWARE_DATE], 
[QXP_XSV_CODE], [QXP_COORD_NAME], [PXP_PRODUCT_CODE], [PXP_PRODUCT_NAME], 
[QXP_ORU_NAME], [QXP_RESOLUTION_DESC], [QXP_CLOSED_DATE], [CXP_CLIENT_CODE], 
[CXP_CLIENT_NAME])     
  

Комментарии:

1. Задав более 100 вопросов, вы должны знать, как форматировать код?

2. Я знаю, как форматировать код. Но я не знаю, как маркировать индексы в соответствии с моим описанием выше.

3. Если вы знаете, как форматировать код, пожалуйста, сделайте это, чтобы ваш вопрос был более читабельным для потенциальных ответчиков.

4. @Мартин, я понимаю, о чем ты сейчас говоришь! Спасибо! Теперь я обновил свое описание, чтобы все было читабельно!

Ответ №1:

Я не уверен на 100%, что вы пытаетесь сделать, но, похоже, вы пытаетесь найти способ правильно назвать свой индекс (или найти хорошее соглашение об именовании). Соглашения лучше всего, когда им легко следовать и они имеют смысл для людей без необходимости объяснять им это. Для этого MO подходит множество различных соглашений, но наиболее распространенным является это:

 
Index Type                          Prefix    Complete Index name
-------------------------------------------------------------------
Index (not unique, non clustered)   IDX_      IDX_<name>_<column>  
Index (unique, non clustered)       UDX_      UDX_<name>_<column>  
Index (not unique, clustered)       CIX_      CIX_<name>_<column>  
Index (unique, clustered)           CUX_      CUX_<name>_<column> 
  

Хотя, с другой стороны, я должен задать вопрос, почему у вас так много столбцов в вашем списке ВКЛЮЧЕНИЯ .... не зная размера этих столбцов, добавление такого количества столбцов имеет некоторые недостатки:

Избегайте добавления ненужных столбцов. Добавление слишком большого количества столбцов индекса, 
ключ или неключевой, может иметь следующие последствия для производительности: 

- На странице поместится меньше строк индекса. Это может привести к увеличению ввода-вывода 
и снижение эффективности кэша.

- Для хранения индекса потребуется больше места на диске. В частности, 
добавление типов данных varchar(max), nvarchar(max), varbinary (max) или xml 
поскольку столбцы индекса, не являющиеся ключевыми, могут значительно увеличить требования к дисковому пространству. 
Это потому, что значения столбцов копируются на конечный уровень индекса. 
Следовательно, они находятся как в индексе, так и в базовой таблице.

- Обслуживание индекса может увеличить время, необходимое для выполнения изменений, 
вставляет, обновляет или удаляет базовую таблицу или индексированное представление.

Вам нужно будет определить, перевешивает ли выигрыш в производительности запроса 
влияние на производительность при модификации данных и на дополнительном диске 
требования к пространству.

Отсюда:http://msdn.microsoft.com/en-us/library/ms190806.aspx