【发布时间】:2015-12-28 08:46:14
【问题描述】:
我一直在为我的产品开发C# Compact Framework 4.0。
我有一台服务器和一部手机,我必须将服务器上的所有数据同步到我的移动设备。
通常大约 6000 个条目将被插入到我的移动设备中的一张桌子上。
现在我直接使用带有指定表的索引名称的表。
6000 个条目大约需要 55 秒。
有没有更快的插入方式?
SqlCeCommand cmdItem = conn.CreateCommand();
SqlCeResultSet rsItem;
cmdItem.CommandText = "item_info";
cmdItem.IndexName = "PK_item_info";
cmdItem.CommandType = CommandType.TableDirect;
rsItem = cmdItem.ExecuteResultSet(ResultSetOptions.Updatable | ResultSetOptions.Scrollable);
while(reader.read()){
SqlCeUpdatableRecord recItem = rsItem.CreateRecord();
recItem.SetString(1, cmdItem.SerialNo);
recItem.SetInt32(10, 0);
rsItem.Insert(recItem);
}
【问题讨论】:
-
如果您共享当前代码可能会更好
-
好吧,如果不看代码就很难说,但是在向 SQL 命令添加参数时保持连接打开和明确指定数据类型是影响速度的两件事。否则,它就是移动设备和移动 SQL Server。不要指望奇迹会在速度方面发生。
标签: c# sql-server-ce compact-framework sqlcedatareader