如何使用 nhibernate 通过递归自连接 SQL 获得最佳性能

2024-03-29

我有一个带有parentId 的团队表/实体,它是一个自我加入到同一个表中的id。

有一个名为 TopUnit 的属性,它将递归地继续调用 .Parent,直到在 Team 实体上找到名为“IsTopUnit”的属性

使用 nhibernate profiler 现在会导致 Select N + 1 警报。无论如何,有没有办法优化本质上是递归自连接查询以避免 Select N + 1 行为。

batchsize 似乎适用于子集合,但在这种情况下似乎没有帮助,因为它是“同步的”,因为我无法执行递归 SQL 语句。

我想这个问题在休眠状态之外也有效。在 SQL 中执行递归语句的最佳方法是什么?看来您必须将其分解为多个查询。


你可以试试这个http://ayende.com/Blog/archive/2009/08/28/nhibernate-tips-amp-tricks-efficiently-selecting-a-tree.aspx http://ayende.com/Blog/archive/2009/08/28/nhibernate-tips-amp-tricks-efficiently-selecting-a-tree.aspx

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 nhibernate 通过递归自连接 SQL 获得最佳性能 的相关文章

随机推荐

  • JSON.stringify,改变key的大小写

    我正在使用返回 json 的 Web 服务 并将 json 存储在本地变量中 json 表示一个简单的业务对象 例如 var entry FirstName John LastName Doe 大小写是这样的 因为根据我们的命名约定 它与
  • 使用 jQuery Ajax 将对象列表传递到 MVC 控制器方法

    我正在尝试使用以下方法将对象数组传递到 MVC 控制器方法中 jQuery 的 ajax 函数 当我进入 PassThing C 控制器方法时 参数 things 为空 我已经尝试过使用列表类型 的论点 但这也不起作用 我究竟做错了什么
  • Android NDK:无法解析函数 va_start / va_end

    我尝试在我的项目中使用 va start 和 va end 函数 但 eclipse 不想将其解析为函数 gcc 编译整个项目没有错误 我的文件 cpp include
  • PHP Soap Server 响应格式

    我正在 PHP 中制作 SOAP Web 服务 该服务必须满足客户端 XSD 文件的要求 以下是客户提供的 XSD 文件的链接 http pastebin com MX1BZUXc http pastebin com MX1BZUXc 他们
  • 从 Fluent Mongo 过渡到 Mongo C# 1.4 驱动程序

    我们正在使用 FluentMongo 现在 LINQ 支持已添加到 C 驱动程序中 我们将删除对 Fluent 的依赖并单独使用官方 C 驱动程序 有人已经这样做过吗 它简单明了吗 有什么需要我们注意的吗 希望其他人也能向您报告 但作为 1
  • 自定义 ng 服务来代理对 /api 的调用?

    我使用 ng CLI 创建了一个新应用程序 效果非常好 ng new babysteps cd babysteps ng serve ngserve 使用 webpack 来组装应用程序 为了充分测试它 我需要服务 api 来自我的 API
  • tess4j 与 Spring mvc

    我已经尝试将 tess4j 作为独立的 java 程序 并且它可以正常工作并给出文本输出 现在我正在尝试创建一个 spring mvc web 项目 在 pom 中添加 tess4j 的依赖项 并且我已在我的项目中添加了 tess4j 源
  • .NET Core 2 与 MySql.Data 导致权限错误

    我正在使用 Dapper NET Core 2 和 MySql Data 在 Linux 上创建一个小型 REST API 不幸的是 我的连接上不断收到此错误 Exception has occurred CLR System IO Fil
  • 如何显示标准 Windows 数据源 (ODBC) 对话框

    有没有简单的方法可以从 winforms 应用程序显示标准 Windows 数据源对话框 我想向用户展示它并选择一个系统 dsn 或创建一个新的 dsn 并返回一个数据源名称 我没有在 net 中找到任何对现有包装器的引用 所以我想我只能使
  • 何时在 HTML 表格中使用 tbody、colgroup、thead 等? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 当我学习 HTML 表格时 我没有学到 tbody thead tfoot colgroup 你什么时候应该使用它们 我访问了 W3Schools 网
  • 如何将 WebSocket 集成到经典 ASP Web 应用程序之上?

    在我的一个项目中 我有一个非常活跃的经典 ASP 站点 需要将基于实时事件的提要集成为现有 UI 的一部分 未来计划将站点架构升级为 MVC 或 MVP 但这一新功能必须同时实现 我决定采用 WebSocket 方法来实现此目的 因为这最终
  • jq 从数组中选择值

    我有以下带有示例值的 JSON 文件 files fileName FOO md5 blablabla fileName BAR md5 alaldlafj 现在我想要的是返回 md5 值 例如文件名是 FOO 为此我有以下声明jq cat
  • urllib2 连接超时错误

    我正在尝试使用 urllib2 打开页面 但我不断收到连接超时错误 我正在使用的线路是 f urllib2 urlopen url 确切的错误是 URLError
  • C# + IE9 JS 引擎脉轮?

    我正在开发一个很酷的 C 应用程序 它在我们的模型层中大量使用 JS 我们希望使用 IE9 Chakra Javascript 引擎来提高速度 问题 我可以在 C 中使用 Chakra 并将 JS 对象作为 COM 对象进行交互吗 调用 J
  • 如何从哨兵网址创建redis python客户端?

    我的网址为 BROKER URL sentinel 192 168 10 1 26379 0 sentinel 192 168 10 2 26379 0 sentinel 192 168 10 3 26379 0 在此 redis运行在19
  • 在 Angular 中动态添加 Control 到 FormGroup

    如何在 Angular 中动态地将 FormControl 添加到 FormGroup 中 例如 我想添加一个名为 new 的强制控件 其默认值为 addControl https angular io api forms FormGrou
  • HTML TD 可点击

    我有一个菜单 您可以在右上角看到 www balibar co HTML div class shadow table tr td a Search a td td a Languages a td td a Login a td tr t
  • 当我尝试在字符串上使用 `json.load` 时,为什么会出现“'str' object has no attribute 'read'”? [复制]

    这个问题在这里已经有答案了 在 Python 中我收到一个错误 Exception
  • 没有姓名或地址。 CBCentralManager 不再在 macOS 12 上运行

    自从我将 macOS 更新到 macOS 12 以来 我每次在使用 CoreBluetooth 时都会遇到问题 在我的一个应用程序中 我将使用以下命令列出所有 BLE 设备CGCentralManager class 这已经有效多年了 但现
  • 如何使用 nhibernate 通过递归自连接 SQL 获得最佳性能

    我有一个带有parentId 的团队表 实体 它是一个自我加入到同一个表中的id 有一个名为 TopUnit 的属性 它将递归地继续调用 Parent 直到在 Team 实体上找到名为 IsTopUnit 的属性 使用 nhibernate