我正在尝试将1000万个产品添加到我的产品表中。
这就是我目前的尝试:
INSERT INTO Artikel (Hersteller, Artikelnummer, Artikelnamen, Artikelbeschreibung, Preis)
VALUES (
(SELECT TOP 1 Hersteller FROM Artikel ORDER BY NEWID()) ,
(SELECT FLOOR(RAND() * (100000000000-101 + 1)) + 101 ) ,
(SELECT REPLACE(NEWID(),'-','')),
(SELECT REPLACE(NEWID(),'-','')),
(SELECT ROUND(RAND(CHECKSUM(NEWID())) * (9999), 2))
)
GO 10000000
但是这需要很长时间。大约45分钟后,我的查询还没有接近200 K的值。有没有更快/更有效的解决方案?
1条答案
按热度按时间pepwfjgg1#
您实际想要的是什么并不清楚,但是,通过在几个批处理中执行此操作,您可能会获得一些非常好的性能。我不明白为什么您从表(
Artikel
)中获取一个值(Hersteller
),然后再次将其插入到表中,但无论如何,我已经将其合并了。这将
INSERT
分为两批,每批5,000,000个:注意我对
RAND
的评论,它会在每一行上产生相同的值(在批处理中)。如果这不是所期望的,那么请看这篇关于每行产生一个随机数的文章:How do I generate a random number for each row in a T-SQL select?