正如标题所示,我在使用实体框架对Server数据库进行第一个查询时遇到了问题。我曾试图寻找答案,但似乎没有人真正有办法解决这个问题。
这些测试是在Visual 2012中使用实体框架6完成的,我还使用T4视图模板预编译视图。数据库位于Server 2008上。我们有大约400个POCOs (400个映射文件),数据库表中只有100行数据。
下面的捕获是我的测试代码和结果。
static void Main(string[] args){
    Stopwatch st=new Stopwatch();
    st.Start();
    new TestDbContext().Set<Table1>.FirstOrDefault();
    st.stop();
    Console.WriteLine("First Time "+st.ElapsedMilliseconds+ " milliseconds");
    st.Reset();
    st.Start();
    new TestDbContext().Set<Table1>.FirstOrDefault();
    st.stop();
    Console.WriteLine("Second Time "+st.ElapsedMilliseconds+ " milliseconds");
}测试结果
First Time 15480 milliseconds
Second Time 10 milliseconds发布于 2020-11-22 16:19:19
对我来说,仅在第一个查询中使用AsParallel()就解决了这个问题。这在多个处理器核上运行查询(显然)。我随后的所有查询都没有改变,这只是导致延迟的第一个查询。
我也尝试了预生成的映射视图https://learn.microsoft.com/en-us/ef/ef6/fundamentals/performance/pre-generated-views,但这并没有大大改善启动时间。
https://stackoverflow.com/questions/30423838
复制相似问题