SQL 服务器 CE 读取速度慢(1000 行需要 36 秒?)

SQL Server CE slow at reading (36 seconds for 1000 rows?)

我有一个 table PartNumbers,其中包含 10 列混合数据类型和超过 100,000 行。

这是我的测试:

我已经在 ID 列上建立了索引:

CREATE UNIQUE INDEX IndexName ON [PartNumbers] (ID)

我得到一个包含 1000 个随机选择的 ID 的列表 (Random_ID_List) 并遍历每个 ID 以从 table:

中获取描述
 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

我的结果是:

这正常吗?

使用参数化查询。

sqlcmd.CommandText = "SELECT Description FROM PartNumbers WHERE ID = @Param";
sqlcmd.Parameters.AddWithValue("@Param", ID); 

我不知道此数据库的详细信息,但对于其他数据库,您可以花更多时间来解析 SQL 和生成执行计划,而不是实际 运行 查询。