我正在使用Entity Framework 6.0在C#4.5/SQL2012中重新执行我的'票证应用程序'。之前的开发很匆忙,没有任何额外的索引。该应用程序工作正常,但我希望V2应该是'它应该是'。在我走得更远之前,我需要'垫在肩上'和单词-yea .. ur doin'a'right-- ☺需要在选择正确的SQL索引时提出建议
在其他应用程序中,我的主键始终是我的ID(int )列碰巧被聚集,因为它似乎是SQL的默认值。之后,我刚刚添加了一个非聚集的专栏,'当我感觉到'时。
因此,在短期.. 表票一个ID,类型(事件或请求),状态(开,上保持,解决,..),主题等。 表受让人用一个ID和一个名称 表junctionTicketAssignee与ticketId和assigneeId
票&受让人关系是多对多。 大部分时间我只是通过它的ID获取票或受让人。 在票据概览中,默认情况下票据以分配给当前受让人的日期(desc)排序的状态'开放'&'列出'列出。
为此我现在有以下指标:
in 'ticket'
PK_ticket = PRIMARY KEY NON-CLUSTERED (ticket.id ASC)
IX_ticket = UNIQUE CLUSTERED (ticket.id ASC, ticket.dateCreate DESC, status ASC, type ASC)
IX_type = NON-UNIQUE NON-CLUSTERED (ticket.type)
IX_status = NON-UNIQUE NON-CLUSTERED (ticket.status)
in 'assignee'
PK_assignee = PRIMARY KEY CLUSTERED (assignee.id ASC)
in 'junctionTicketAssignee'
PK_junctionTicketAssignee = PRIMARY KEY CLUSTERED (ticketId ASC, assigneeId ASC)
FK_Assignee = PRIMARY KEY assignee.id -> FOREIGN KEY junctionTicketAssignee.assigneeId
FK_Ticket = PRIMARY KEY ticket.id -> FOREIGN KEY junctionTicketAssignee.ticketId
我已经与我的索引上的基本知识把这个在一起。我在正确的轨道上吗?
你也可以看看'过滤的索引'。除此之外看起来像你在正确的轨道上。 – 2014-02-06 16:21:56