Sql执行速度很慢

时间:2011-04-04 06:37:09

标签: sql for-loop

我有循环,在该循环中我使用INSERT INTO命令获得75000+值。当我运行它消耗更多的时间。如何提高插入速度,......

提前谢谢...... RGS tharindu

3 个答案:

答案 0 :(得分:1)

如果您使用的是SQL Server(未指定):使用批量方法,例如

,而不是许多单独的INSERT次调用

答案 1 :(得分:1)

如果你有一个75k插入的循环,你做错了

根据您的评论,您需要为您创建行格式。

;WITH cNumbers AS
(
    SELECT ROW_NUMBER() OVER (ORDER BY c.id) - 1 AS rownum
    FROM sys.columns c CROSS JOIN start_number c2 CROSS JOIN start_number c3
)
SELECT
    c.rownum + m.start_number
FROM
    mastertable m
    CROSS JOIN
    cNumbers c
WHERE
    c.rownum <= no_of_items

有更好的方法来生成行,但这会比循环75k次更好。

编辑:同样的想法适用于大多数RDBMS,除了MySQL没有窗口功能......   在这种情况下,我有一个数字表填充1-100000例如

答案 2 :(得分:0)

一种解决方案可能是将数据写入插入文件,然后在mysql中使用LOAD DATA INFILE批量加载。与拥有75000个独立插件相比,它应该可以大大加快速度。

相关问题