zoukankan      html  css  js  c++  java
  • SQL Server 2005中托管C# SP不是鸡肋

    最近群里来了个大牛,比较才发现自己的差距,嘿嘿,以前是不知天高地厚的,好事好事。讨论下了SQL Server 2005中的托管SP的应用场景问题,结论主要归结如下:

    1、解决写T-SQL SP处理逻辑运算比较麻烦的问题。
          这个问题要分多个方面来看待:
          首先,T-SQL SP的定位是基本的CRUD的I/O操作无法取代;托管SP的作用不是为了取代它的价值。这样来看就不用为托管SP操作数据的写法和直接在业务层里面写Ado.NET相似而介怀了。
          其次,托管SP用于处理数据的逻辑运算的原则是Near Data,但是这样看起来和架构设计的责任分离原则又有冲突:通常是不建议存储过程里面有业务逻辑的,不利于移植迁移以及系统扩展。如何处理这样的矛盾,关键在于,选择使用托管SP来写逻辑运算的都是一些需要往返参数较小,但却需要大量操作运算的过程,比如:用户的登录验证,传递的只有用户名和密码,返回是否对某些操作有授权,但却需要对数据库做大量的查询,数据间关系运算操作,因此这种应该用SP来做,使用托管SP会更方便。(往返数据小,数据处理复杂)

    2、托管SP弥补了T-SQL SP在部署管理方面的一些缺陷
          正如上面关于用户登录授权的问题,部分业务放在SP中并没有体现出托管SP的必要性来。T-SQL SP最大的问题是移植和扩展性上,那么如果业务部分换成托管SP,在部署时候托管SP肯定比T-SQL SP更具灵活性和可移植性,而才基本的CRUD操作方面,各个数据库之间的差异并不是很大。

    3、托管SP在安全性方面比T-SQL更好。这个我没有太明白,他提到的是利用CAS,不清楚这是什么东西了。

    主要就这三个方面的思考,其他还有一些发散,不如例举了在SQL Server里面调用Web Services,这种情况还是遵循是否该选择SP的原则进行;以及提及到了存储过程的继承?呵呵,这个需要更多一些讨论了。


  • 相关阅读:
    win10补丁导致打印机无法共享
    EdgexGo2.0学习-14 EdgeX2.0 AppService导出到Mqtt
    EdgexGo2.0学习-13 EdgeX2.0 编译Appservice
    winform程序在系统缩放150%时右边留空白问题解决办法
    Linux嵌入式串口转网络
    Win10 磁盘变成文件夹
    Win10下使用Gitblit
    JMeter学习笔记——Web接口测试(webservice)
    jmeter之__RandomFromMultipleVars函数使用详解
    jmeter——参数化——$__RandomFromMultipleVars()函数
  • 原文地址:https://www.cnblogs.com/Xrinehart/p/783893.html
Copyright © 2011-2022 走看看