EF6 - 索引创建策略

时间:2016-08-19 14:20:22

标签: sql-server entity-framework linq

我正在开发一个使用历史CRUD方法在SQL Server数据库中写入的EF6代码第一个项目。

因此,我的表格共有以下几列:

  • StartDateEndDate:这是记录的有效范围
  • GroupId:是一个包含在任何查询中使用的int的列,因为已创建数据库以包含多公司数据

此外,该列具有一个Guid的逻辑ID,表示识别实体及其所有历史记录的单一方式。

该列还包含作为主键的标识,但未在业务逻辑中使用。

基本上我有两种疑问:

  1. 第一种类型用于提取实体列表,因此它类似于:

    SELECT * 
    FROM CLASS 
    WHERE date BETWEEN StartDate AND EndDate 
      AND GroupId = N
    
  2. 第二种类型,用于提取单个实体的活动记录:

    SELECT * 
    FROM CLASS 
    WHERE GUID = 'myGuid' 
      AND date BETWEEN StartDate AND EndDate 
      AND GroupId = N
    
  3. 我应该创建哪种索引?是否应该更好地创建许多单列索引或两个多列索引(一个具有日期和GroupId,另一个具有日期GroupId和Guid)?

    此外,我是否应该特别注意编写LINQ查询,尤其是查询中的条件顺序(以确保正确使用索引)?

0 个答案:

没有答案