По каким столбцам следует создать индекс? - PullRequest
1 голос
/ 22 июля 2011

Как создать в зависимости от этого оператора выбора.

SELECT 
      A.FUSERID, A.FNAME, B.FORGNAME, C.FAREA
FROM 
      TBL_USERPROFILE A 
INNER JOIN 
      V_ORGANISATION B ON A.FORG = B.FORGID 
INNER JOIN 
      V_USER_AOE C ON A.FUSERID = C.FUSERID 
INNER JOIN 
      aspnet_UsersInRoles D ON C.FUSERID = D.UserId 
INNER JOIN 
      aspnet_Roles E ON D.RoleId = E.RoleId
WHERE 
      E.RoleName = 'applicant'

Правильно создать вот так ??

Create index index.B on TBL_Userprofile A (A.FUSERID, A.FNAME, B.FORGNAME, C.FAREA)

Ответы [ 2 ]

2 голосов
/ 22 июля 2011

Вот список предлагаемых индексов с включенными столбцами.

A.Forg, Fuserid (INCLUDE FNAME)
B.ForgID (INCLUDE ForgName)
C.FuserID (INCLUDE FAREA)
D.UserID, RoleID
E.RoleID, RoleName

Это будет охватывать все ваши JOIN с, и поля результата будут INCLUDE d с клавишами JOIN, поэтому поиск не требуется - конечный узел будет иметь необходимые данные.

0 голосов
/ 22 июля 2011

Возможно, вам нужен этот индекс:

create index index_B on aspnet_Roles(RoleName)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...