我编写了一个存储过程来生成随机SMS记录/事件.
插入120万行时,查询需要数百分钟
exec insert_random_sms 1200000
Run Code Online (Sandbox Code Playgroud)
我以"程序"的方式编写了存储过程.但是,从我看来,SQL在这方面效率不高.
create proc insert_random_sms
@number_of_records int
as
begin
declare @cnt int = 0; -- loop counter
declare @phone_id int;
declare @dest_id int;
while (@cnt < @number_of_records)
begin
declare @charge int = rand() * 100; -- will generate a random charge value between 0 and 100.
declare @tarrif_plan int = round(rand() * 5, 0);
select top 1 @phone_id = phone_no
from tbl_phone_agenda
order by newid();
select top 1 @dest_id = phone_no
from tbl_phone_agenda
order by newid(); …Run Code Online (Sandbox Code Playgroud)