黑马程序员技术交流社区

标题: 存储过程和SQL语句 [打印本页]

作者: 董振海    时间: 2012-10-10 10:09
标题: 存储过程和SQL语句
对数据库操作时 用存储过程好还是SQL语句, 现在公司好像都用存储过程, 不考虑存储过程里的逻辑判断 就是 一条SQL语句的情况下

作者: 许庭洲    时间: 2012-10-10 10:33
1.存储过程是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,经编译后,注意是经过编译后,存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它;
2.再运行存储过程前,数据库已对其进行了语法和句法分析,并给出了优化执行方案。这种已经编译好的过程可极大地改善SQL语句的性能;
3.由于执行SQL语句的大部分工作已经完成,所以存储过程能以极快的速度执行;
4.SQL 语句在每次运行时都要进行编译和优化因此速度相对要慢一些。
作者: 董振海    时间: 2012-10-10 12:01
许庭洲 发表于 2012-10-10 10:33
1.存储过程是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,经编译后,注意是经过编译后,存储在 ...

就是说, 存储过程里的SQL语句在执行前都经过优化,然后执行, SQL语句的话是执行一条优化一条?
作者: 许庭洲    时间: 2012-10-10 13:27
董振海 发表于 2012-10-10 12:01
就是说, 存储过程里的SQL语句在执行前都经过优化,然后执行, SQL语句的话是执行一条优化一条? ...

是啊,太有才了!
作者: chens2865    时间: 2012-10-23 11:43
可以简单地把存储过程理解为为实现一个特定功能而把一堆SQL语句放在一起,因为它是经过优化再执行,所以比单个SQL语句实现同等功能效率更高,只需调用即可。
作者: duanhuilin    时间: 2012-10-23 13:45
存储过程是经过编译的,而sql语句是在程序运行的时候才去执行,同时sql语句容易被sql注入,所以无论sql语句简单还是复杂,本人建议还是写存储过程比较好
作者: 丁艳姣    时间: 2012-10-23 14:05
存储过程 ,把不必要的工作都交给db来做,查询数据本来就是 db的任务
看你干什么了,是插入还是删除还是更新,是批量的还是单个,如果不是批量操作的话,几乎没什么区别,如果你仅仅是插入一条数据,也在程序中调用存储过程甚至可能会比直接写SQL还慢
作者: 丁艳姣    时间: 2012-10-23 14:05
存储过程 ,把不必要的工作都交给db来做,查询数据本来就是 db的任务
看你干什么了,是插入还是删除还是更新,是批量的还是单个,如果不是批量操作的话,几乎没什么区别,如果你仅仅是插入一条数据,也在程序中调用存储过程甚至可能会比直接写SQL还慢




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2