永发信息网

SQL Server 2005中的存储过程,触发器和索引的好处是什么?要全面的

答案:2  悬赏:10  手机版
解决时间 2021-07-26 15:19
请高手指点,面试中面试官问我这些问题,我答:提高程序效率,安全。他又问:就这些吗?
最佳答案

假如你面试的话,面试官肯定不会爱听你说的。


如果是一个网络系统,在以下情况下必须使用存储过程:


1 涉及大批量数据统计处理


你不能把N万记录从服务器通过网络传到客户端去处理,比如客户端是对流量敏感的手机用户,你这么做他们会杀了你,你只能用存储过程,把这些数据在服务器上统计出来,然后把结果传给客户端用户;


2 涉及大量用户频繁插入更新删除数据的场合


你必须给用户提供专门的存储过程、通过事务处理来完成这类操作,否则,必然会使数据库表的内容发生数据不一致、以及脏读等等问题,此时的存储过程、在这类操作中要小心给表加锁解锁(说白了就是作好事务处理开始、结束和回滚),如果这些事务处理放在客户端,一旦开始事务、但由于网络连接中断,则可能导致数据库无法解锁而停止工作。



3 涉及查询多个服务器上数据的情况,用户完全不可能知道他对面的服务器有多少、各个服务器存储的都是什么数据,此时也可能是做分布式数据库、也可能是仅仅做的多服务器系统(如新闻服务器、广告服务器、各类商品数据的服务器),无论那种情况,你只能编写存储过程、根据用户要求查询这些数据。



等等吧,所以很多应用系统,大多外围程序就是输入输出,真正的功能全都在存储过程里体现。



触发器是个数据同步的程序,比如你修改了表A、你同时期望修改表B,那么就给表A上做触发器吧。简单说就这么些东西。

全部回答

存储过程把数据查询放在数据层完成,只需要输入查询的相关参数就可以完成查询,就好像是用函数,不需要在数据访问层写复杂的SQL查询语句,这样系统的耦合度低,结构化好。

而且我觉得ADO.NET使用存储过程的代码结构好。只需要param=CreateParameter(),然后设置ParameterName,DbType和Value然后Command.Parameters.Add(param);基本上这样固定的模式就能很方便的使用各种存储过程,十分的方便。而且使用存储过程查询的速度快,但是具体为什么我也不是很了解。

索引的使用很明显就是为了提高查询速度,有索引等于是给每一行都编了号。

触发器是个特殊的存储过程,顾名思义他是被触发的,就好像事件的概念一样,他用于加强数据完整性约束和业务规则等。触发器用于强制引用完整性,在多个表中添加、更新和删除时,保留这些表之间的关系。但是最好最方便的办法还是在相关表中定义主键和外间约束,使用数据库关系图就可以很容易创建关系。

触发器主要是在约束支持的功能无法满足应用程序的功能需求时使用,也就是说他满足更复杂的需求。我自己学习的过程中还没有使用过触发器。

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
女式的黄金戒指多少钱?多少克?黑龙江价格
用“秀气”“澄清”“空灵”“水墨画”写一段
亚洲获得诺贝尔文学奖的有那几个?分别是什么
广西一区50粉巨照胆卖多少游戏币?
空间高手进来?
招行和浦发银行的信用卡
炎亚伦什么时候才有机会和鬼鬼再合作拍戏啊?
《家庭教师》的歌曲
东方神起写真打包
将军令坏了,我又帮了个还能上藏宝阁卖号吗?
C盘的空间不够怎么办?
北京哪里有卖oppoA103手机的手机壳?
韦弗和兰德里到哪里去了,怎么火箭的十五人名
烦人的电脑故障
人走茶凉的含义是什么?有谁给我解释下
推荐资讯
美容院出游标语大全,美容美发经典标语 5分
安妮宝贝八月未央语录,急~~!!!诗朗诵材料~
求生日祝福语
D是什么意思?
我登CF的时侯QQ号密码都打上了点开始游戏进不
和同学说了慌,在我男友的问题上
若方程X方-2MX+4=0的两根满足一根大于一,一根
什么时候放寒假、、
如何保留微信聊天记录,怎么把苹果的微信记录
诺基亚S40怎么重写程序?不插SIM卡
班级的管理现状分析,设备管理体系怎么建立?
前男友结婚讽刺祝福,前男友结婚了,我真诚的祝
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?