A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 董振海 中级黑马   /  2012-10-10 10:09  /  2475 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

对数据库操作时 用存储过程好还是SQL语句, 现在公司好像都用存储过程, 不考虑存储过程里的逻辑判断 就是 一条SQL语句的情况下

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

7 个回复

正序浏览
存储过程 ,把不必要的工作都交给db来做,查询数据本来就是 db的任务
看你干什么了,是插入还是删除还是更新,是批量的还是单个,如果不是批量操作的话,几乎没什么区别,如果你仅仅是插入一条数据,也在程序中调用存储过程甚至可能会比直接写SQL还慢

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
存储过程 ,把不必要的工作都交给db来做,查询数据本来就是 db的任务
看你干什么了,是插入还是删除还是更新,是批量的还是单个,如果不是批量操作的话,几乎没什么区别,如果你仅仅是插入一条数据,也在程序中调用存储过程甚至可能会比直接写SQL还慢
回复 使用道具 举报
存储过程是经过编译的,而sql语句是在程序运行的时候才去执行,同时sql语句容易被sql注入,所以无论sql语句简单还是复杂,本人建议还是写存储过程比较好

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
可以简单地把存储过程理解为为实现一个特定功能而把一堆SQL语句放在一起,因为它是经过优化再执行,所以比单个SQL语句实现同等功能效率更高,只需调用即可。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
董振海 发表于 2012-10-10 12:01
就是说, 存储过程里的SQL语句在执行前都经过优化,然后执行, SQL语句的话是执行一条优化一条? ...

是啊,太有才了!
回复 使用道具 举报
许庭洲 发表于 2012-10-10 10:33
1.存储过程是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,经编译后,注意是经过编译后,存储在 ...

就是说, 存储过程里的SQL语句在执行前都经过优化,然后执行, SQL语句的话是执行一条优化一条?
回复 使用道具 举报
1.存储过程是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,经编译后,注意是经过编译后,存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它;
2.再运行存储过程前,数据库已对其进行了语法和句法分析,并给出了优化执行方案。这种已经编译好的过程可极大地改善SQL语句的性能;
3.由于执行SQL语句的大部分工作已经完成,所以存储过程能以极快的速度执行;
4.SQL 语句在每次运行时都要进行编译和优化因此速度相对要慢一些。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马