实体框架大约需要10分钟从Azure sql

时间:2015-09-22 17:50:19

标签: c# sql entity-framework azure sqlperformance

我有一个Azure sql数据库,我在其中记录我稍后分析的聊天记录。查询在开始时很好,但目前它有大约1100万个条目,我花了586秒来获取数据。

我的模特

public class Messages
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }
    [Index]
    public DateTime Timestamp { get; set; }
    public string Message { get; set; }
    public string Username { get; set; }

    public int ChannelId { get; set; }

    [ForeignKey("ChannelId")]
    public virtual Channel Channel { get; set; }
}

数据库通话

                IEnumerable<Messages> messages = context.Messages.AsNoTracking()
                                     .Where(x => x.Channel.ChannelName == Channelname &&
                                     x.Timestamp > StartTime &&
                                     x.Timestamp < EndTime).ToArray();

只读取插入的数据。我尝试索引时间戳列,但似乎没有帮助。数据也按日期时间排序,所以我不明白为什么需要这么长时间。

更新:

我做了一些bechmarks

我的方式Channel.ChannelName ==频道名称:4:35

我的方式Channel.ChannelId == Id:16sec

建议回答:4:30

建议身份证号码:16秒

样本是40k结果。

我该如何解决这个问题?我可以优化更多吗?

0 个答案:

没有答案