Sql 前端生成的DML与存储过程执行的插入-更新-删除
我想知道通过简单CRUD应用程序的存储过程在数据库中执行dml命令(插入、更新、删除)的真正优势。仅仅在前端使用一些生成dml命令的通用过程,这种方法的好处是什么Sql 前端生成的DML与存储过程执行的插入-更新-删除,sql,tsql,Sql,Tsql,我想知道通过简单CRUD应用程序的存储过程在数据库中执行dml命令(插入、更新、删除)的真正优势。仅仅在前端使用一些生成dml命令的通用过程,这种方法的好处是什么 提前感谢。Visual Foxpro?对于单记录更新,我怀疑SP是否有任何性能优势。维护它们的努力肯定胜过您可能获得的任何边际性能增益 存储过程专家可能会想到除了性能之外的其他好处。Visual Foxpro?对于单记录更新,我怀疑SP是否有任何性能优势。维护它们的努力肯定胜过您可能获得的任何边际性能增益 存储过程专家可能会想到除了性
提前感谢。Visual Foxpro?对于单记录更新,我怀疑SP是否有任何性能优势。维护它们的努力肯定胜过您可能获得的任何边际性能增益
存储过程专家可能会想到除了性能之外的其他好处。Visual Foxpro?对于单记录更新,我怀疑SP是否有任何性能优势。维护它们的努力肯定胜过您可能获得的任何边际性能增益
存储过程专家可能会想到除了性能之外的其他好处。主要好处之一是访问控制。应用程序只有执行权限,没有直接数据访问权限。通过这种方式,管理员可以检查过程并确保它们使用正确的访问路径(即索引)。如果应用程序可以直接访问表,开发人员将编写糟糕的SQL并关闭服务器 其中一个主要好处是访问控制。应用程序只有执行权限,没有直接数据访问权限。通过这种方式,管理员可以检查过程并确保它们使用正确的访问路径(即索引)。如果应用程序可以直接访问表,开发人员将编写糟糕的SQL并关闭服务器 就性能而言,您不太可能看到任何好处。我认为更多的是关于数据库的安全性 在任何情况下,存储过程的优点是DBA能够以不同的方式控制对数据的安全访问。这通常是DBA的首选项调用。将对服务器的CRUD访问权放在服务器中意味着它们控制对服务器的100%访问权。您的代码必须满足其存储过程“API” 如果您通过远程视图、游标适配器或SQL Passthrough SQLExec()将逻辑包含在Visual FoxPro代码中,则意味着您拥有100%的代码控制权,DBA必须授予您对数据库组件的访问权,或者通过代码用于连接的应用程序角色授予您访问权。在动态构建CRUD SQL语句方面,您的代码可能更灵活一些。存储的进程必须处理灵活的参数,才能通用地构建语句
瑞克·舒默(Rick Schummer)就性能而言,你不太可能看到任何好处。我认为更多的是关于数据库的安全性 在任何情况下,存储过程的优点是DBA能够以不同的方式控制对数据的安全访问。这通常是DBA的首选项调用。将对服务器的CRUD访问权放在服务器中意味着它们控制对服务器的100%访问权。您的代码必须满足其存储过程“API” 如果您通过远程视图、游标适配器或SQL Passthrough SQLExec()将逻辑包含在Visual FoxPro代码中,则意味着您拥有100%的代码控制权,DBA必须授予您对数据库组件的访问权,或者通过代码用于连接的应用程序角色授予您访问权。在动态构建CRUD SQL语句方面,您的代码可能更灵活一些。存储的进程必须处理灵活的参数,才能通用地构建语句 Rick Schummer对于存储过程:
- 消除SQL注入风险
- 封装(安全性,将其视为方法)
- 允许更改客户端代码(对数据库使用相同的API)
- 处理增加的复杂性(例如在SQL端事务中插入父事务和子事务)
- 更易于管理事务
- 消除SQL注入风险
- 封装(安全性,将其视为方法)
- 允许更改客户端代码(对数据库使用相同的API)
- 处理增加的复杂性(例如在SQL端事务中插入父事务和子事务)
- 更易于管理事务