Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Server中触发器和SP的性能影响_Sql_Sql Server_Stored Procedures_Triggers - Fatal编程技术网

Sql Server中触发器和SP的性能影响

Sql Server中触发器和SP的性能影响,sql,sql-server,stored-procedures,triggers,Sql,Sql Server,Stored Procedures,Triggers,我想知道触发器和SP在Sql Server DB上的性能的效果。 我知道触发器和SP之间的区别。但我对触发器的性能感到困惑。触发器是否比SP慢?在不同的文章中,我研究了触发器也是SP。因此这意味着触发器不会影响性能。我说得对吗?谁能给我解释一下吗 提前谢谢。我可以做一个性能非常差的触发器,或者一个你永远不会注意到的触发器。对于存储过程也是如此。重要的是你放在里面的代码 它们可以达到完全不同的目的。存储过程用于接受输入、影响数据等,有时也用于不接受(例如,存储过程可能不接受输入或影响数据)。触发器

我想知道
触发器
SP
Sql Server DB
上的性能的
效果。
我知道
触发器
SP
之间的区别。但我对触发器的性能感到困惑。触发器是否比SP慢?在不同的文章中,我研究了触发器也是SP。因此这意味着触发器不会影响
性能。我说得对吗?谁能给我解释一下吗


提前谢谢。

我可以做一个性能非常差的触发器,或者一个你永远不会注意到的触发器。对于存储过程也是如此。重要的是你放在里面的代码

它们可以达到完全不同的目的。存储过程用于接受输入、影响数据等,有时也用于不接受(例如,存储过程可能不接受输入或影响数据)。触发器用于确保当一个表对其执行某些操作时,会执行其他后续操作。例如,当一行被更新时,
LastModified
列可以通过触发器进行更新,而用户不必将该列编码到他们的
UPDATE
中。虽然您在触发器中执行的某些逻辑可以在存储过程中执行,但触发器可用于防止无法通过存储过程强制执行数据访问。如果开发人员直接更新表而不是使用存储过程,那么更新
LastModified
列的存储过程有什么好处

所以,实际上,你的问题是:“火腿三明治还是花生酱饼干,哪个味道更好?”这取决于你的心情,对吧?没有神奇的公式可以告诉你一个比另一个更好还是更快——它们有不同的用途。人们对视图和过程提出类似的比较请求——同样,它们的用途不同,并且一种方法与另一种方法相比没有固有的性能优势