存储过程的优缺点个人总结

公司的系统是自主开发的,历史比较悠久,有不少是传统C/S架构,采用存储过程来处理业务逻辑。

近来做新系统的时候,我采用了三层架构,抛弃存储过程改用ORM。

有同事问及不用存储过程的理由,我想了一下,对存储过程做了如下总结。

本人经验和水平有限,总结有所偏颇,还请大家纠察。

 

优点

1.在生产环境下,可以通过直接修改存储过程的方式修改业务逻辑(或bug),而不用重启服务器。但这一点便利被许多人滥用了。有人直接就在正式服务器上修改存储过程,而没有经过完整的测试,后果非常严重。

2.执行速度快。存储过程经过编译之后会比单独一条一条执行要快。但这个效率真是没太大影响。如果是要做大数据量的导入、同步,我们可以用其它手段。

3.减少网络传输。存储过程直接就在数据库服务器上跑,所有的数据访问都在服务器内部进行,不需要传输数据到其它终端。但我们的应付服务器通常与数据库是在同一内网,大数据的访问的瓶颈会是硬盘的速度,而不是网速。

4.能够解决presentation与数据之间的差异,说得文艺青年点就是解决OO模型与二维数据持久化之间的阻抗。领域模型和数据模型的设计可能不是同一个人(一个是SA,另一个是DBA),两者的分歧可能会很大——这不奇怪,一个是以OO的思想来设计,一个是结构化的数据来设计,大家互不妥协——你说为了软件的弹性必须这么设计,他说为了效率必须那样设计,为了抹平鸿沟,就用存储过程来做数据存储的逻辑映射(把属性映射到字段)。好吧,台下已经有同学在叨咕ORM了。

5.方便DBA优化。所有的SQL集中在一个地方,DBA会很高兴。这一点算是ORM的软肋。不过按照CQRS框架的思想,查询是用存储过程还是ORM,还真不是问题——DBA对数据库的优化,ORM一样会受益。况且放在ORM中还能用二级缓存,有些时候效率还会更高。

 

缺点

1.SQL本身是一种结构化查询语言,加上了一些控制(赋值、循环和异常处理等),但不是OO的,本质上还是过程化的,面对复杂的业务逻辑,过程化的处理会很吃力。这一点算致命伤。

2.不便于调试。基本上没有较好的调试器,很多时候是用print来调试,但用这种方法调试长达数百行的存储过程简直是噩梦。好吧,这一点不算啥,C#/java一样能写出噩梦般的代码。

3.没办法应用缓存。虽然有全局临时表之类的方法可以做缓存,但同样加重了数据库的负担。如果缓存并发严重,经常要加锁,那效率实在堪忧。

4.无法适应数据库的切割(水平或垂直切割)。数据库切割之后,存储过程并不清楚数据存储在哪个数据库中。

5.精通SQL的新手越来越少——不要笑,这是真的,我面试过N多新人,都不知道如何创建全局临时表、不知道having、不知道聚集索引和非聚集索引,更别提游标和提交叉表查询了。好吧,这个缺点算是凑数用的,作为屌丝程序员,我们的口号是:没有不会的,只有不用的。除了少数有语言洁癖的人,我相信精通SQL只是时间问题。

 

总结

存储过程最大的优点是部署的方便性——可以在生产环境下直接修改——虽然滥用的后果很严重。

存储过程最大的缺点是SQL语言本身的局限性——我们不应该用存储过程处理复杂的业务逻辑——让SQL回归它“结构化查询语言”的功用吧。

### 回答1: Power BI 是一款数据可视化和商业智能工具,其性能和优缺点如下: 性能优点: 1.快速响应:Power BI 可以快速处理大量数据并进行实时分析,使决策者能够更快地做出决策。 2.可扩展性:Power BI 可以轻松地处理大规模数据,并能够与各种不同数据源进行连接。 3.易于使用:Power BI 提供直观且易于使用的用户界面,用户无需深入了解技术就可以创建复杂的可视化报表。 性能缺点: 1.对硬件要求高:Power BI 需要一定的硬件资源,较老的设备可能会在使用过程中出现卡顿现象。 2.高昂的许可费用:Power BI 的高级功能需要付费许可,这可能对个人和小型企业来说是一个负担。 3.不够灵活:Power BI 提供了很多预设的可视化组件,但有时用户可能需要更多灵活性以满足个性化需求。 ### 回答2: Power BI是一款功能强大的商业智能工具,它具有出色的性能和许多优势,但也存在一些缺点。 首先,Power BI具有出色的性能。它能够处理大规模的数据,并支持实时数据查询和分析。用户可以通过Power BI Desktop将多个数据源连接在一起,并创建数据模型,从而实现跨多个数据表的快速查询和筛选。此外,Power BI还具有内置的压缩算法和缓存机制,可以提高性能并减少数据传输时间。 其次,Power BI具有直观易用的用户界面和丰富的数据可视化功能。用户可以通过拖放方式创建报表和仪表盘,设计自定义指标和图表,并利用其强大的可视化功能进行数据探索和可视化呈现。此外,Power BI还支持灵活的自定义查询,可以根据具体需要进行数据提取和转换操作。 此外,Power BI还具有与其他Microsoft工具和服务的无缝集成性。它可以与Excel、Azure以及其他常用的数据源和分析工具进行集成,实现数据的无缝传输和共享。同时,Power BI还支持与Microsoft的云服务Azure相连,用户可以将数据存储在云端,并利用Power BI进行实时报表和分析。 然而,Power BI也存在一些缺点。首先,由于其强大的功能和高效的数据处理能力,Power BI对硬件和网络要求较高。使用Power BI可能需要较大的计算资源和稳定的网络连接,以保证正常的数据处理和分析。 此外,Power BI的学习曲线相对较陡。对于初学者来说,掌握Power BI的功能和操作可能需要一些时间和精力投入,特别是对于没有任何数据分析经验的用户来说。 总而言之,Power BI是一款功能强大、性能出色的商业智能工具,具有直观易用的用户界面、丰富的数据可视化功能以及与其他Microsoft工具的高度集成性。然而,使用Power BI需要对硬件和网络进行适当配置,并且对于初学者来说,需要一定的学习成本。 ### 回答3: Power BI 是一种功能强大的商业智能工具,它具有以下几个方面的性能和优缺点。 性能优点: 首先,Power BI 可以处理和分析大量的数据。它能够连接多个数据源,并进行数据清洗和转换,使得复杂的数据分析变得简单。 其次,Power BI 提供了灵活的报表和可视化功能,可以根据用户的需要自定义报表和仪表板,方便用户进行数据展示和分析。 此外,Power BI 的查询速度较快,可以通过缓存和数据刷新的优化措施提高数据的处理效率。 性能缺点: 然而,Power BI 的性能也存在一些缺点。首先,如果数据量过于庞大,Power BI 可能会出现加载和处理速度较慢的问题,尤其是当数据进行频繁更新时。 其次,Power BI 在复杂计算和数据模型方面的性能相对较弱。当需要进行复杂的计算和密集的数据处理时,Power BI 的性能可能会受到限制。 另外,Power BI 在连接某些数据源时可能会遇到一些兼容性问题,需要进行额外的配置和调试。 总结起来,Power BI 是一种功能强大的商业智能工具,具有处理和分析大量数据的优点,并提供灵活的报表和可视化功能。然而,它在处理大数据量、复杂计算和部分数据源连接方面存在一些性能缺点,需要用户进行适当的优化和调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值