Sql执行速度非常慢

Sql执行速度非常慢,sql,for-loop,Sql,For Loop,我有for循环,在该循环中,我使用INSERT-INTO命令处理75000多个值。当我运行时,它会消耗更多的时间。如何提高插入速度 先谢谢你。。。 rgs tharindu如果您使用的是未指定的SQL Server:请使用批量方法,如 如果您有一个包含75k个插入的循环,那么您就做错了 根据您的评论,您需要一些东西来为您的行评分 ;WITH cNumbers AS ( SELECT ROW_NUMBER() OVER (ORDER BY c.id) - 1 AS rownum F

我有for循环,在该循环中,我使用INSERT-INTO命令处理75000多个值。当我运行时,它会消耗更多的时间。如何提高插入速度

先谢谢你。。。 rgs
tharindu

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


如果您有一个包含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次要好

编辑:除了MySQL没有窗口功能外,大多数RDBMS都有相同的想法。。。
在这种情况下,我将有一个数字表,其中填充了1-100000,例如,

一个解决方案可以是将要插入的数据写入文件,然后在mysql中使用LOAD data INFILEin批量加载它。与75000个单独的插入相比,它应该会大大加快速度。

当我运行时,它会消耗更多的时间。除了什么?告诉我们您使用的是哪种数据库管理系统@a_horse_,名称为:lol,我看到一个SQL问题,我立即假设为SQL Server!!:@米奇·麦特:当我看到“for loop”时,我立刻把它打发掉了我用的是WAMP,有两张表叫做master和master_break。。主表中有称为“开始”和“无项”的字段。所以我需要从主表中获取开始数和无项数,并生成可能数。。。例如:开始编号=45620项目编号=5@tharindu:那真有趣。你想让我怎么处理这些信息?他用的是MySQL