为什么是存储过程而不是SQL string

王朝mssql·作者佚名  2006-12-16
窄屏简体版  字體: |||超大  

原文地址:http://blog.csdn.net/yulichao/archive/2006/11/23/1408760.aspx

每个人都知道数据库在现代软件开发中所处的地位。无论B\S还是C\S,都以操作数据库为底层核心,软件实现的无非就是怎么组织数据的查询、计算与表示,实现自己的逻辑功能而已。 当然,这里所说的数据库指的是关系数据库,所以操作数据库的工具就是SQL。很多初学者都会在自己的数据库操作模块中将一个SQL string传递给数据库,再接受返回的值加以操作。这样做至少有以下几个缺点: 修改这个SQL时不得不修改程序源代码,并重新进行编译。 查询速度不理想。这是因为数据库查询引擎每执行一条SQL语句,都要进行优化、编译,再执行。 安全问题。由于SQL string只是一个字符串,所以对查询所涉及参数并没有类型检查,这样就给SQL诸如留下了空子。 而上面这些缺点,恰恰是存储过程的优点。存储过程是一组存储在数据库服务器上的预编译的SQL语句。存储过程通常是由SQL语句和控制语言组合构成,其中的控制语言随数据库供应商的不同而有区别。并不是所有的数据库系统都支持存储过程。据我所知,微软Access中的Jet引擎就不支持存储过程,MySQL5之前的版本

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航