gpt4 book ai didi

c# - 在 oracle 存储过程中使用 CASE 语句

转载 作者:行者123 更新时间:2023-11-30 21:18:59 24 4
gpt4 key购买 nike

我有一个 .Net 3.5 Windows 应用程序。其中一个模块使用 Oracle 存储过程,它向 C# 客户端返回一个记录集。

我只想知道以下两种方法中哪一种更好[wrt.代码可读性和性能。]:

1.如果我在stored proc(SP)本身写了一个multiple CASE statement,那么recordset count大概是125条。这里SP的代码看起来有点乱。但是从积极的一面来说,行数返回给客户的更少。

2.如果我不使用 CASE 语句,则记录集计数为 @375。在这种方法中,我会将 SP 的“案例”逻辑移动到 C# 中间层...可能会使用 LINQ/委托(delegate)。 ..在这里,SP 代码更清晰,但返回的记录数很高。

那么,我应该采用方法 1 还是方法 2?

感谢阅读。

最佳答案

让数据库存储过程返回太多数据,然后让中间层/客户端进程筛选掉谷壳是一种糟糕的策略。不仅因为该过程会比过滤数据库中的结果集花费更长的时间来惩罚用户,而且它会不必要地消耗可用于满足其他用户事件的资源(网络带宽、应用程序服务器周期)。

"Here, the SP code is cleaner but the number of records returned is high."

代码卫生在旁观者的眼中。我更喜欢拥有本身正确的程序单元,而不是依赖外部流程来使事情正确。尤其是驻留在其他架构层上的外部流程。

关于c# - 在 oracle 存储过程中使用 CASE 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3995243/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com