gpt4 book ai didi

entity-framework - 具有标识列的 SQL Server Compact 4.0 表中的插入性能呈指数级下降

转载 作者:行者123 更新时间:2023-12-01 02:28:13 28 4
gpt4 key购买 nike

编辑:以下问题已在 Entity Framework 6 中修复。

运行下面的代码需要令人失望的 2 分 10 秒。第二次运行它需要 6.5 分钟。这个问题与this one有关

Private Sub RunTest()
Dim sw As New Stopwatch
sw.Restart()
Using db As New TestDB
db.Configuration.AutoDetectChangesEnabled = False
For n = 1 To 100
For m = 1 To 100
db.Tops.Add(New Top)
Next
Next
db.SaveChanges()
End Using
MsgBox(sw.Elapsed.ToString)
End Sub

实体:
Public Class Top
Public Sub New()
MyBase.New()
One = "arerjlwkerjglwejrglwergoiwerhgiowehrowerlwelfvbwlervbowerghpiweurhgpiwuerviiervljwebbrlvjnepvjnweprvupiweurv"
Two = "w;lrjgwwergkjwervgjwelrgjhwelghlwekglwergiuwehrgwjergjwervgjwerjgnwekrngpwergjpowergllwejrnglkwerngpoierhpiiuewrpjwenrwenrv;lwenrvkjernpgpsrvpi"

End Sub

'ID'
Public Property ID As Integer

'NATIVE PROPERTIES'
Public Overridable Property One As String
Public Overridable Property Two As String

'NAVIGATION PROPERTIES'

End Class

在二级交互中移动 Using 块并在那里调用 SaveChanges 只会使情况变得更糟。

TestDB 只是继承了 DBContext,没有任何进一步的配置。当我禁用 Top.ID 属性的数据库生成并自己提供 ID 时,性能提高了 30 倍。这个问题使得在 SQL Server Compact 中使用数据库生成的 ID 变得不可能。除了使用客户端生成的 ID 之外,还有其他解决方案吗?

最佳答案

我发现了这个问题,它是由获取生成的 id 导致表扫描的语句引起的,我在这里提出了一个修复程序,用 4000 个实体进行了测试,从 17 秒降至 2 秒。 http://entityframework.codeplex.com/workitem/857 - Alpha 3 之后将包含在 EF6 版本中

关于entity-framework - 具有标识列的 SQL Server Compact 4.0 表中的插入性能呈指数级下降,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14768394/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com