存储时代:LINQ存储过程的前世今生
创始人
2024-06-06 21:21:06
0

要说LINQ存储过程的设计,追本溯源,就一定要从存储过程本身说起。作为一个存放在数据库中的脚本,存储究竟扮演了一个什么样的角色呢?且听笔者细细道来。

一、何谓存储过程?

存储过程者,乃是存放在数据库中的一个脚本也。具体地说,存储过程是保存起来的、可以接受或返回用户提供的参数的T-SQL语句的集合。使用存储过程最基本的好处是,可以将多个SQL语句打包在一起作为一个组来执行,如果在应用程序中恰当地使用存储过程就可以提高应用程序的效率。

二、存储过程之优点

1. 存储过程通常可以为系统带来性能改善,因为数据库可以优化该过程所使用的数据访问计划,并能为后续的重用实现高速缓存。

2. 存储过程可以在数据库内部得到单独的保护。管理员可以授予客户端执行存储过程的权限,而不赋予它访问底层表的权限。

3. 存储过程可以使得维护更加方便,因为通常修改存储过程要比更改已部署的组件内部硬编码的代码中包含的SQL语句更简单。但是随着存储过程实现的业务逻辑的增加,这一优点将有所减弱。

4. 存储过程在底层数据库模式的基础上增加了额外的抽象层。存储过程的客户端被隔离在存储过程和底层模式的实现细节之外。

5. 存储过程可以减少网络流量。SQL语句可以批量执行,应用程序不必发送多个SQL请求。

三、存储过程之缺点

在有些情况下仍然不推荐使用存储过程,或者使用存储过程不可行。

1.在应用程序涉及大量的业务逻辑和处理时,如果完全用存储过程实现业务逻辑,就会给服务器带来过多的负荷。这种类型的处理例子包括数据传输、数据遍历、数据转换以及密集的计算操作。应该将这一类型的处理转移到业务过程或者数据访问逻辑组件中,它们比数据库服务器更具可伸缩性。

2.  不要将所有业务逻辑都放到存储过程中,否则当需要在T-SQL中修改业务逻辑时,将影响应用程序的维护和灵活性。例如,支持多个关系数据库管理系统的ISV的应用程序不必为每个系统维护独立的存储过程。

3.  渗编写和维护存储过程在大多数情况下是一项并非所有开发人员都拥有的专门技能。这一情况可能会给项目开发计划引入瓶颈。

四、LIINQ之优点
  
LINQ技术是Visual Studio 2008和.NET框架3.5中一项突破性创新,它在对象领域与数据领域架起了一座桥梁。此外,LINQ查询功能直接可以嵌入到.NET框架3.5所支持的编程语言中。归纳来看,其具有如下优势:查询语法简单,易于书写;语法错误及查询数据的类型更加安全;LINQ存储过程提供了较强的过滤、排序及分组等处理能力;易于处理多数据源和多数据格式数据。

五、LINQ时代存储过程仍不可缺少

尽管LINQ存储过程在新开发环境中具备了明显的优势,但其在处理复杂的数据库查询方面仍存在性能问题。另一方面,LINQ to SQL技术基于ADO.NET,传统SQL查询资源在一定时期内仍普遍存在。所以,LINQ对于传统SQL查询仍提供了兼容性支持。LINQ to SQL中仍可直接调用传统SQL查询语句及存储过程中即是证明。

因此,在实际开发中应当基于数据库资源实际,在目前情况下,把LINQ查询与适当的传统SQL查询相结合仍为推荐的数据库方案。

【编辑推荐】

  1. LINQ的演变及其对C#设计的影响
  2. LINQ查询表达式深入剖析
  3. LINQ查询的目的与实现手段
  4. 实例二:绑定到LINQ查询的结果
  5. LINQ——语言级集成查询入门指南

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...