繁体   English   中英

在 SQL 查询中使用带有 CTE 的递归与 C# 中的递归

[英]Using Recursive with CTE in SQL Query vs. Recursive in C#

我一直在研究哪种方法可以更好地优化我的系统,无论是在我的存储过程 (SQL) 中使用递归还是在 C# 中使用递归。

我读过两种观点,一种观点解释说在 c# 中使用递归更复杂、更慢,但使用尾调用优化解决了,但 C# 不支持这一点。

另一方面,我读过一个线程,在他们用 C# 编写的程序中使用它以减少数据库负担。

我想知道在存储和检索数千条记录的系统中哪个更好。

通常,最好编写单个查询并避免来回访问数据库的开销。

你还没有指定你想要做什么。 但我希望递归 CTE 在数据库中而不是在应用程序中工作得更好,原因如下:

  • 您没有多次调用数据库的开销。
  • 中间结果可以以内部数据库格式保存。
  • 您不必将数据返回到应用程序并将其传递回数据库。

此外,在 C# 中使用递归可能会处理的某些事情可能会更好地使用 SQL 构造来实现,例如 window 函数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM