#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