SQL Server CE 读取速度很慢(1000 行需要 36 秒?)
本文关键字:1000 CE Server 读取 速度 SQL | 更新日期: 2023-09-27 17:55:45
我有一个表PartNumbers
,其中包含 10 列混合数据类型和刚刚超过 100,000 行的表。
这是我的测试:
我在 ID 列上放了一个索引:
CREATE UNIQUE INDEX IndexName ON [PartNumbers] (ID)
我得到一个随机选择的 1000 个 ID (Random_ID_List
) 的列表,并遍历每个 ID 以从表中获取描述:
Dim Stop_Watch As New Stopwatch
Stop_Watch.Start()
Dim Results As New List(Of String)
LocalDB.SQLCe_Connection.Open()
For Each ID As Integer In Random_ID_List
Dim sqlcmd = LocalDB.SQLCe_Connection.CreateCommand()
sqlcmd.CommandText = "SELECT Description FROM PartNumbers WHERE ID = " & ID
Results.Add(sqlcmd.ExecuteScalar)
Next
LocalDB.SQLCe_Connection.Close()
Stop_Watch.Stop()
Dim Result_Time As Long = Stop_Watch.ElapsedMilliseconds
我的结果是:
- Result_Time = 36283 毫秒(36 秒)
这正常吗?
使用参数化查询。
sqlcmd.CommandText = "SELECT Description FROM PartNumbers WHERE ID = @Param";
sqlcmd.Parameters.AddWithValue("@Param", ID);
我不知道这个数据库的细节,但对于其他数据库,你可以花更多的时间来解析SQL和生成执行计划,而不是实际运行查询。