积极答复者
为什么mssql2012存储过程执行SQL比直接执行sql要慢?

问题
-
数据库 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语句要快 为什么实际上却慢呢