IBM
面试的兄弟回来抱怨:去了好几个不同的
IBM
项目组,几乎每个面试官问到数据库的时候都要问用没用过存储过程,烦人不?大家去面的程序员,又不是
笔者认为,存储过程说白了就是一堆
SQL
的合并。中间加了点逻辑控制。
但是存储过程处理比较复杂的业务时比较实用。
比如说,一个复杂的数据操作。如果你在前台处理的话。可能会涉及到多次数据库连接。但如果你用存储过程的话。就只有一次。从响应时间上来说有优势。
也就是说存储过程可以给我们带来运行效率提高的好处。
另外,程序容易出现
BUG
数据量小的,或者和钱没关系的项目不用存储过程也可以正常运作。mysql
的存储过程还有待实际测试。如果是正式项目,建议你用
sql
server
或
oracle
的存储过程。数据与数据之间打交道的话,过程会比程序来的快的多。面试官问有没有用存储,实际上就是想知道前来面试的程序员到底做过数据量大的项目没。如
果是培训出来的,或者小项目小公司出来的,对存储肯定接触的少了。
所以,要想进大公司,没有丰富存储过程经验,是不行的。
错。存储过程不仅仅适用于大型项目,对于中小型项目,使用存储过程也是非常有必要的。其威力和优势主要体现在:
1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般
SQL
语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。
2.当对数据库进行复杂操作时(如对多个表进行
Update,Insert,Query,Delete
时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。这些操作,如果用程序来完成,就变成了一条条的
SQL
语句,可能要多次连接数据库。而换成存储,只需要连接一次数据库就可以了。
3.存储过程可以重复使用,可减少数据库开发人员的工作量。
4.安全性高,可设定只有某此用户才具有对指定存储过程的使用权。 存储过程的缺点
1:调试麻烦,但是用
PL/SQL
Developer
调试很方便!弥补这个缺点。
2:移植问题,数据库端代码当然是与数据库相关的。但是如果是做工程型项目,基本不存在移植问题。
3:重新编译问题,因为后端代码是运行前编译的,如果带有引用关系的对象发生改变时,受影响的存储过程、包将需要重新编译(不过也可以设置成运行时刻自动编译)。
4:如果在一个程序系统中大量的使用存储过程,到程序交付使用的时候随着用户需求的增加会导致数据结构的变化,接着就是系统的相关问题了,最后如果用户想维护该系统可以说是很难很难、而且代价是空前的。维护起来更加麻烦!
统一存储对于现在来说还是相对很新的—这意味着我们还在接受循环的早期。不过有一点是明显的,统一或者多协议的存储有十分诱人的价值优势。在一个统一存储环境中,数据存储变成了一个共享的资源池,来存储块的或者文件数据,并根据应用需求来配置。所以用户非常有兴趣来实施统一存储平台就不足为奇了。在最近的一个对306个有存储规划或者决策职责的IT专业人士的调查中,ESG(Enterprise Strategy Group)发现在受访者中有70%已经或者正在计划实施统一存储。有23%已经实施了这个技术,47%的仍在规划阶段。受访的IT用户中每四个就有一个实施了统一存储,这个数字十分惊人,因为数据存储用户在接受新技术上通常都是臭名昭著地保守,而且有其理由。“如果它没坏,就不要修它”,这句话在存储架构团队中十分流行。如果一个存储阵列失效导致数据丢失或不能访问了,这可能会给公司带来上百万美金的损失,存储管理员可能会丢掉他们的工作。用户向来都有分开的系统给文件和块数据,已经成为习惯了。他们会继续他们目前的烟囱式方法,直到他们认为统一存储技术已经足够成熟了,使用它不会有任何的风险,或者他们公司的预算需要一个更便宜、灵活和高效的方案。我们的研究表明可能两方面的因素都存在。统一存储可以通过提供一个单一的共享存储池来提高运营效率,它可以在需要的时刻用在需要的地方,不必实施、供电、冷却和管理单独的块和文件系统。这个简单的实施系统数目的减少可能会对降低运营成本产生深远的影响,不言自明的是有一个可以实施成所需的任何容量(还不必为在容量规划的时候做出的错误猜测买单)的系统给公司带来灵活性。虚拟化环境带来一个更大的挑战。使用基于标准的商业物理服务器,新虚拟服务器和应用可以只用以往在物理世界中所花费的一小部分就可以完成部署,而虚拟机可能需要文件或者块存储来支持应用。一个流动的虚拟服务器环境需要一个流动的,可以迅速响应的存储环境。尽管存储仍将是分化的和专用的。统一存储在解决这些问题上走了一大步。应用趋势ESG的研究发现在被管理的系统数目和统一存储的接受程度之间有明显的联系。80%的有26到100个单独存储系统, 83%的有100个以上系统的受访者不是已经实施了就是正在计划实施统一存储——那些有100或者更多个系统的正在领导早期使用者群体,有32%已经实施了统一存储。这符合ESG对开销的调查结果,用户继续他们在降低业务总体成本方面的努力,特别是在运营成本方面。接下来我们可能会看到在统一存储使用率和对利用率的满意程度之间的关系,因为统一存储去掉了专门的块或者文件的烟囱,这正符合我们在研究中所看到的。89%的早期用户大体上或者完全地对他们的利用率表示满意,而非统一存储用户只有77%。在那些回答他们完全地满意的用户中我们看到了最大的差距,几乎三分之一的早期用户落在这个范畴,是完全满意的非早期用户的2.5倍。值得一提的是,没有任何一个统一存储的用户回答他们“完全不满意。”统一存储实施的可选项今天,用户在实施统一存储时有多种方式:他们可以实施一个统一存储系统,一个集成的系统同时支持块和文件数据,或者他们可以实施一个文件网关,通过存储局域网络SAN连接到和其他应用公用的块存储上。我们的调查显示两种方式没有明显的倾向性,30%的受访者在使用或者计划使用一个统一存储,32%是网关,35%计划同时使用两种方式。当然两种方式都有适用的理由。网关使用户可以通过在前段增加一个“文件个性”重新部署他们在块存储上的投资来支持文件数据。缺点是连接在SAN中的块存储和网关实际上是两个独立的设备需要管理。统一存储没有让用户利用已有的SAN设备的诱人好处,不过他们却能减少需要管理的系统数目。ESG预计我们会看到用户继续使用这两种方式来统一他们的数据存储环境的趋势,因为用户必须合理地布置已有的投资来和新加入的系统共存。尽管具体的实施策略可能仍不能确定,ESG的调查明确地揭示了统一存储会变得更加常见。它在IT和财务上都是吸引人的——不管如何评判都是一个获胜组合。ESG的发现显示,IT部门在优化他们现有的存储架构投入,以满足数据的持续增长和目前艰难的宏观经济环境时,对提高系统效率的渴望。存储过程是一组予编译的SQL语句它的优点:1.允许模块化程序设计,就是说只需要创建一次过程,以后在程序中就可以调用该过程任意次。
2.允许更快执行,如果某操作需要执行大量SQL语句或重复执行,存储过程比SQL语句执行的要快。
3.减少网络流量,例如一个需要数百行的SQL代码的操作有一条执行语句完成,不需要在网络中发送数百行代码。
4.更好的安全机制,对于没有权限执行存储过程的用户,也可授权他们执行存储过程。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)