在 ASP.NET 应用程序中,我有少量相当复杂、经常使用的操作来对数据库执行。在这些操作中,几个表中的一个或多个需要基于对某些表的输入参数和值的逻辑评估来更新或插入。我一直保持逻辑和数据访问的分离,所以目前的操作是这样的:
- 从客户端收到的请求
- 业务层调用数据层从数据库中检索数据
- 业务层处理结果并确定执行哪个操作
- 业务层调用适当的数据操作
- 响应发送给客户端
如您所见,客户端在向数据库发出两个单独的请求时一直在等待。在寻找解决方案时,我找到了 CLR 存储过程,但我不确定我是否对它们的用途有正确的认识。
我已经为上面的代码编写了一个替换,特别是在 CLR SP 中放置了步骤 2-4。我的理解是 SP 将由 SQL Server 在本地执行,并且只对服务器进行一次调用。
我的问题基本上是,这是 CLR SP 的预期用途还是我遗漏了什么?
我意识到这在结构上有点妥协,所以如果有更好的方法来做到这一点,我很乐意听到它。