![]() |
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解决方案
|
![]() |
hello_programmers · Mysql从其他表输出一列 1 年前 |
![]() |
Community wiki · 这个MySQL语句出了什么问题? 1 年前 |
![]() |
Community wiki · 优化从同一表中提取的多列的查询 1 年前 |
![]() |
Popo · Sql查询:返回数据库中不可用的where条件 1 年前 |
|
Hamdan Nuramdani · 对账单中一周内不同表中的数据求和 1 年前 |
|
Kugelfisch · 用php为数据库加密数据 1 年前 |