我有一个名为Forms的表,我们正在存储多行。
表格表格包含FormId(uniqueidentifier),FormName(varchar(max)),SubmitedDate(datetime),HasValidFields(bit),IsValidRecord(bit)
列。
我正在使用实体框架6。
使用api用户可以根据过去24小时,过去7天,过去30天或过去12个月查询记录。
对于不同的查询,我通过读取所请求的天数/月的列IsValidRecord(bit)
的值来返回有效记录的数量
对于每个查询,我必须使用列HasValidFields(bit)
返回 HasValidFields 的记录数。
由于此表中会有很多记录,所以提高性能是否合适呢? 我应该只使用EF查询还是使用视图,还是使用索引? 记录表:
FormId FormName SubmitedDate HasValidFields IsValidRecord
F3999F60-57B4-494C-868F-331EE5DC6A5F Form1 10/4/16 11:51 1 1
9C23FFC0-F5C9-4E52-B272-34F75D8B4EE6 Form13 10/4/16 11:51 0 1
0658B103-D7B5-4C9E-8209-7BAB82C0E35E Form12 10/4/16 11:51 1 1
2C348300-7FD2-471E-8DA4-D7E0DD4B53EE Form18 10/4/16 11:51 1 0
F3999F60-57B4-494C-868F-331EE5DC6A5F Form13 10/5/16 5:24 1 0
0664C797-0CDF-443C-8ABE-E497E72BE738 Form19 10/5/16 5:24 1 1
F3999F60-57B4-494C-868F-331EE5DC6A5F Form12 10/5/16 5:24 0 1
9C23FFC0-F5C9-4E52-B272-34F75D8B4EE6 Form15 10/5/16 5:24 0 1
DAF34CEB-F7F6-4386-829C-D0D76E4E657D Form16 10/5/16 5:43 1 1
9C23FFC0-F5C9-4E52-B272-34F75D8B4EE6 Form17 10/5/16 5:43 1 1
过去7天的样本输出(不基于上述样本输入)
日期 ValidRecords
27-Oct-16 12
26-Oct-16 40
25-Oct-16 12
24-Oct-16 41
23-Oct-16 19
22-Oct-16 46
21-Oct-16 56
对于最后几个小时,它将是小时列而不是日期,而对于年,它将是年列。
答案 0 :(得分:0)
您应该在SubmittedDate和HasValidFields上添加索引(即一个使用两列的索引)。
我不认为Entity Framework会为您生成索引,尽管您可以使用属性添加带有实体框架的索引(如果首先进行代码设计)。