云栖问答

找不到答案?去提问题

21个月前

数据库里需要动态计算表达式有什么解决方案?目前使用ole javascript 来处理,效率非常低.


来源: [直播] SQL Server优化案例分享

20个回答

4

石沫 已采纳

如果你动态传入条件的话,确实是一个问题,处理方便了,但性能是个问题。
遇到这种问题,我通常会告诉开发同学两件事可以做:

  1. 调整业务
  2. 抽象出几种情况作为条件,避免动态传入

我想这个问题没有回答你,但我也只能给这点建议。非常抱歉

袁名袁 回复

很好

评论
0

水灵儿

Mark了

0

vera21

up

0

vera21

up

0

元镇

若要是需要在数据库server端进行动态计算用存储过程是一种方法

0

1974180307878315

学习

0

丰富付费

可以dotnet编写dll,作为一个处理函数加载到sqlserver。效率还不错

0

jingtian.zjt

我觉得在数据库内部进行动态计算主要是为了避免网络的延迟,然后克服这点延迟带来的复杂性对于业务稳定性的影响是弊大于利,所以我觉得在业务层面进行合理拆分是更好的做法。

0

陨落

域名投资

0

hihahuha

现在的客户端运算能力都有富裕,假如服务器通讯压力不大的话,把数据select出来到客户端运算按理也是个办法,问题是现在的客户端大多是浏览器,运算效率低,所以我一直对企业内部的系统使用js耿耿于怀。类似营业系统、财务系统还是客户端加soap服务器来得有力。

0

nothingfinal

避免动态计算,提前计算

0

1010680306880571

学习

0

激酶

之前在做一个Java应用的时候遇到过类似问题。当时可以选择的有:Java内置的js引擎、Java动态编译、自己写一个领域专用的小数据库。动态编译性能相对来说不错。当然当时我们用的领域专门用的小数据库,存储是根据领域业务设计的,动态解析是通过逆波兰是解析表达式,而非SQL。这种方式对变成要求比较高,实现成本有点大。

1
GO
15890
浏览
1
收藏
邀请他人回答
一款安全易用的管理类服务。您无需花费大量成本来保护密钥的保密性、完整性和可用性,借助密钥管理服务,您可以安全、便...

一种适用于大规模并行批处理作业的分布式云服务。可支持海量作业并发规模,系统自动完成资源管理,作业调度和数据加载,...

提供一种性能卓越、稳定、安全、便捷的计算服务,帮助您快速构建处理能力出色的应用,解放计算给服务带来的压力,使您的...

为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效率,降低 IT 成本...