我的一个朋友告诉我,他们对组织中的任何小的或大的sql语句都使用存储过程。所以我想澄清我的疑虑。我有两个不同的疑问请试试
帮助我。我将不胜感激。
哪个会运行得更快,普通的sql或者普通sql的过程?
在普通sql语句的情况下,哪个最适合编程?
以上两个问题都是针对Oracle的SQL和PLSQL的?
最佳答案
把select count(*) from table
这样的东西放到存储过程中没有多大意义。调用存储过程的开销肯定比直接执行语句要高。
如果您有一些选择和更新多行的代码,那么将这些代码放入存储过程可能比从某个客户端执行相同的代码要快,因为您节省了所涉及的网络流量/延迟。
然而,业绩并不是唯一的原因。有些组织不会向客户机授予对任何表的任何访问权限,而是提供一组存储过程来访问数据。这样,您可以在存储过程中执行额外的安全检查。如果您的数据库客户端不是Web服务器,而是在客户端PC上运行的某个前端,则有人可以调试该客户端以查找密码,然后使用sqlplus之类的工具连接到数据库。如果访问实际数据的唯一方法是通过存储过程,并且这些存储过程不允许返回超过10行的数据,那么客户机就很难获得所有数据的转储。另外,存储过程是写入数据库的唯一方法,它们可以在修改任何内容之前执行许多健全性检查。