一般在什么情况下用proc最合适呢?

randee_luo 2010-03-12 06:45:41
看到论坛有人说。 能用sql语句表达的就可以不要用proc。。 那proc一般在什么时候用最合适呢??

--- 本人是刚学喔
...全文
110 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
duanzhi1984 2010-03-13
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 feixianxxx 的回复:]
存储过程的优点:
1.执行速度更快。
有两个原因:首先,在存储过程创建的时候,数据库已经对其进行了一次解析和优化。
其次,存储过程一旦执行,在内存中就会保留一份这个存储过程,这样下次再执行同样的存储过程时,可以从内存中直接调用
2.存储过程允许模块化程序设计。
当对数据库进行复杂操作时(如对多个表进行Update,Insert,Query,Delete 时),可将此复杂操作用存储过程封装……
[/Quote]

perfect
黄_瓜 2010-03-13
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 jxlhc09 的回复:]
...... 我也不太清楚..呵.. 刚进一家搞BI的.. 所以正学习..
[/Quote]
我也好想进这样的公司呀
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 feixianxxx 的回复:]
存储过程的优点:
1.执行速度更快。
有两个原因:首先,在存储过程创建的时候,数据库已经对其进行了一次解析和优化。
其次,存储过程一旦执行,在内存中就会保留一份这个存储过程,这样下次再执行同样的存储过程时,可以从内存中直接调用
2.存储过程允许模块化程序设计。
当对数据库进行复杂操作时(如对多个表进行Update,Insert,Query,Delete 时),可将此复杂操作用存储过程封装……
[/Quote]

完美
yhtapmys 2010-03-12
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 feixianxxx 的回复:]
存储过程的优点:
1.执行速度更快。
有两个原因:首先,在存储过程创建的时候,数据库已经对其进行了一次解析和优化。
其次,存储过程一旦执行,在内存中就会保留一份这个存储过程,这样下次再执行同样的存储过程时,可以从内存中直接调用
2.存储过程允许模块化程序设计。
当对数据库进行复杂操作时(如对多个表进行Update,Insert,Query,Delete 时),可将此复杂操作用存储过程封装……
[/Quote]
wangxianshou 2010-03-12
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 feixianxxx 的回复:]
存储过程的优点:
1.执行速度更快。
有两个原因:首先,在存储过程创建的时候,数据库已经对其进行了一次解析和优化。
其次,存储过程一旦执行,在内存中就会保留一份这个存储过程,这样下次再执行同样的存储过程时,可以从内存中直接调用
2.存储过程允许模块化程序设计。
当对数据库进行复杂操作时(如对多个表进行Update,Insert,Query,Delete 时),可将此复杂操作用存储过程封装……
[/Quote]
真理
--小F-- 2010-03-12
  • 打赏
  • 举报
回复
ETL,Extraction-Transformation-Loading的缩写,中文名称为数据抽取、转换和加载
randee_luo 2010-03-12
  • 打赏
  • 举报
回复
...... 我也不太清楚..呵.. 刚进一家搞BI的.. 所以正学习..
bancxc 2010-03-12
  • 打赏
  • 举报
回复
ETL不知道是什么 学习
randee_luo 2010-03-12
  • 打赏
  • 举报
回复
哦.. 因为我现在正接触ETL..所以.. 看到论坛有人说用PROC就OK了.. ETL要做些啥子功能呢...
bancxc 2010-03-12
  • 打赏
  • 举报
回复
创建表就没必要了

插入修改 可以 倒也没什么必要 因为插入 修改一句话可以搞定

最好有一定的逻辑,或者一个功能块,比如说你要插入一个表中数据,同时要做一些其他的事情,可以分装成存储过程 会比较清晰 也可以复用
randee_luo 2010-03-12
  • 打赏
  • 举报
回复
哦.. 可不可以把一个表的创建,,到插入数据.. 修改.等等.好多操作写到一个PROC中呢.
feixianxxx 2010-03-12
  • 打赏
  • 举报
回复
存储过程的优点:
1.执行速度更快。
有两个原因:首先,在存储过程创建的时候,数据库已经对其进行了一次解析和优化。
其次,存储过程一旦执行,在内存中就会保留一份这个存储过程,这样下次再执行同样的存储过程时,可以从内存中直接调用
2.存储过程允许模块化程序设计。
当对数据库进行复杂操作时(如对多个表进行Update,Insert,Query,Delete 时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。
3.存储过程可以重复使用,可减少数据库开发人员的工作量
4.安全性高。
可设定只有某此用户才具有对指定存储过程的使用权。这里赋予的是对存储过程的权利,不是对存储过程里面的内部对象的权利
例;你要赋予PROC_s 的执行权利,但是不准用户user1有 PROC_S里面的k表的权限
exec deny select on k to user1
exec grant execute on PROC_S to user1
5.减少网络通信量。
调用一个行数不多的存储过程与直接调用SQL 语句的网络通信量可能不会有很大的差别,
可是如果存储过程包含上百行SQL 语句,那么其性能绝对比一条一条的调用SQL 语句要高得多。
6.布式工作.
应用程序和数据库的编码工作可以分别独立进行,而不会相互压制。

具体请看http://blog.csdn.net/feixianxxx/archive/2009/11/27/4890987.aspx
randee_luo 2010-03-12
  • 打赏
  • 举报
回复
哦..那就是用proc  会比较好点是吧..  
bancxc 2010-03-12
  • 打赏
  • 举报
回复
Proc效率是编译好的 稍微要快点
bancxc 2010-03-12
  • 打赏
  • 举报
回复
PROC 可以处理稍微复杂一点的逻辑可以用存储过程

randee_luo 2010-03-12
  • 打赏
  • 举报
回复
哦。。。那是不是像一般的查询, 创建表等等可以用sql语句执行就没必要用到PROC。
那我再问下PROC的用途和效率?????
SQL77 2010-03-12
  • 打赏
  • 举报
回复
CREATE PROC P(@TB VARCHAR(10))
AS

EXEC('SELECT * FROM '+@TB)


很多情况都是在动态执行条件

34,587

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧