1
6
|
2
3
如果您所需要的只是插入数据而从不将其读回,那么您可以编写一个noop函数并假装将它们插入/dev/nul。真正的问题是 您计划如何使用上述数据
|
3
2
因此,一行的时间大约是8毫秒,而整个文件的时间大约是8毫秒。公平吗?
我假设您是在本地运行的,所以不需要考虑网络延迟。 所以我猜数据库的速度会慢一些。不过,我没想到会慢60万倍。 |
4
2
|
5
1
你在大批量插入吗?如果你还没学会,我会用的。
在上面的示例中,您希望确保select语句中使用的表具有适当的索引。。。将聚集索引正确分配给最相关的字段。 如果select语句很慢,请检查执行计划以可能找到瓶颈。 |
6
1
我帮不了你多少忙。但是,SQLServer2005和更高版本提供了一些非常有趣的XML支持,可能会对您有所帮助。我建议您查看Updategrams,这是一种允许您提交一批要插入、更新或删除的数据的功能。这可能有助于提高SQLServer的性能,因为您只需要发出一条语句,而不需要发出600000条语句。我不确定它是否会像写入原始文件一样快,但它应该比发出单个语句快得多。 http://msdn.microsoft.com/en-us/library/aa258671(SQL.80).aspx |
7
1
如果可以针对SQL2008进行优化,还可以尝试新的表值参数。 This sqlteam article 是一个很好的介绍给他们。 |
8
1
正如Alex所说:使用SqlBulkCopy,在性能方面没有什么比它更好的了。
http://github.com/SamSaffron/So-Slow/blob/1552b1293525bfe36f6c9b522e370de626ac6f05/Importer.cs |
9
0
您可能在数据库服务器上一遍又一遍地运行该命令,如果您构造一个包含多个插入的命令文本,然后运行该命令呢?ie公司
|
10
0
如果您不需要很多并发用户,请尝试使用msjet,即“microsoftaccess”作为您的DBMS。MSJet的性能可以比SqlServer快10倍左右。顺便说一句,对于SqlServer来说,在50秒内插入600k条记录(12k/秒)非常快。 |
11
0
我猜您正在进行事务性插入:插入如下所示:
这是可行的,但正如你所发现的,这是不可扩展的。为了快速地将大量数据推入SQLServer,有一些工具和技术可以实现。 可能最简单的方法就是BCP。这里有几个关于它的链接:
接下来,你也要摆桌子了。表上有约束和索引吗?您是否已经有其他记录在其中,并且您是否有其他人同时查询它?如果是这样,请考虑为没有索引或约束的数据加载构建一个空表。尽可能快地转储其中的所有数据,然后应用约束或索引,或者将数据移动到其最终目的地。 |
12
0
我的SQL Server 2005解决方案
|
Robert King · Unity C#语法问题-转换位置 1 年前 |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
i_sniff_ket · 在unity之外使用unity类 2 年前 |