【发布时间】:2011-06-10 16:13:55
【问题描述】:
可能重复:
What are the pros and cons to keeping SQL in Stored Procs versus Code
我在听Hanselminutes podcast "Rise of The Micro ORM,",其中一位嘉宾(Sam Saffron 和 Rob Conery)概述了 DBA 坚持使用存储过程的经典原因:
- 它们是预编译的,这使它们具有执行速度优势
- 它们隐藏了底层数据库方案,从而允许将接口和实现分离,从而防止脆弱性。
然后一位嘉宾说这些不是很好的论据,并提出 DBA 坚持使用存储过程的真正原因是因为他们只是想保护自己免受中间层开发人员的无知。
我发现这种说法有点极端。当然,我同意论点 #2 是有缺陷的,但我认为众所周知,向数据库发送任意(未编译的)SQL 会对性能造成影响。有什么我遗漏的东西可以解释为什么论点 #1 不是真的吗?
我自己的回答,只是一个猜测,是性能受到影响 - 但这并不重要。这可能类似于一个尝试优化他编写的每个循环的开发人员,尽管只有 1% 的编写的循环曾经从调整中受益。我是否正确地捕捉到了这个想法?
【问题讨论】:
标签: c# database performance stored-procedures orm