Как сформулировать index_name в SQL? - PullRequest
1 голос
/ 11 мая 2011

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

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

. Как лучше определить index_names для лучшего описания?(Я пытаюсь добавить расширение "_prod" к index_name, поскольку INDEX для 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 Ответ

2 голосов
/ 12 мая 2011

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

<code>
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> 

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

Avoid adding unnecessary columns. Adding too many index columns, 
key or nonkey, can have the following performance implications: 

- Fewer index rows will fit on a page. This could create I/O increases 
and reduced cache efficiency.

- More disk space will be required to store the index. In particular, 
adding varchar(max), nvarchar(max), varbinary(max), or xml data types 
as nonkey index columns may significantly increase disk space requirements. 
This is because the column values are copied into the index leaf level. 
Therefore, they reside in both the index and the base table.

- Index maintenance may increase the time that it takes to perform modifications, 
inserts, updates, or deletes, to the underlying table or indexed view.

You will have to determine whether the gains in query performance outweigh 
the affect to performance during data modification and in additional disk 
space requirements.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...