小编s.b*_*ody的帖子

如何优化执行时间过长的存储过程?

我编写了一个存储过程来生成随机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)

t-sql sql-server stored-procedures

4
推荐指数
1
解决办法
524
查看次数

标签 统计

sql-server ×1

stored-procedures ×1

t-sql ×1