我们正在运行EntityFramework(6.1.3)Code-First,在SQL Azure上的小型数据库(490 MB)上进行大约40次迁移。
在扩展我们的发布过程时,通过检查调用Database.CompatibleWithModel来验证数据库是否是最新的,我发现我们的测试实例变得相当慢:这个调用最多需要2分钟才能完成。在我们的生产环境和本地,这不到一秒钟!
我在本地运行了一个SQL分析器作业,发现只有3个语句在数据库上被触发:
当我在慢速环境中运行这些语句时,它会在一秒钟内完成,就像生产一样。这表明数据库不是问题。
有没有人有想法寻找性能缓慢的原因? EF是否在运行时本地计算散列,然后根据数据库中的模型进行检查? 我可以找出哈希需要多长时间?
我已经检查了Azure数据库上的设置以检查数据库的CompatibilityLevel,在找到EDMX编辑器使用新基数估算器的速度很慢的帖子后,但此设置似乎没有效果。