none
为什么mssql2012存储过程执行SQL比直接执行sql要慢? RRS feed

  • 问题

  • 数据库 MSSQL2012

    sql语句:select * from LogLogin

    存储过程代码:
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    alter PROCEDURE P_TB_Log
    AS
    declare @sql nvarchar(4000)
    BEGIN

     SET NOCOUNT ON;
        set @sql = 'select * from LogLogin'
     exec(@sql)
    END
    GO

    存储过程改用:

    SET ANSI_NULLS ON
     GO
     SET QUOTED_IDENTIFIER ON
     GO
     alter PROCEDURE P_TB_Log
     AS
     BEGIN
      
      SET NOCOUNT ON;
         select * from LogLogin
     END
     GO

    也是一样

    该表的数据量100万+

    直接执行sql语句用时7秒
    执行存储过程直接跑挂掉

    请教理论上存储过程应该要比直接执行sql语句要快 为什么实际上却慢呢

              
    2013年5月30日 9:18

答案

全部回复