LLBLGen Pro-加入与预取路径
LLBLGen Pro- Join Vs prefetch Path
我正在为我的 project.I 使用 LLBLGenPro 我很好奇什么是更有效的查询方式,即加入或预取路径。
我观察到,当我使用预取路径时,它实际上会在具有可扩展结果集的数据库上触发单独的查询,而在连接的情况下,这是带有臃肿结果集的正常连接查询。
我的 application.i.e 遇到性能问题,为什么我需要知道做事的最佳方式
我会说这取决于两个表之间的关系。如果它是 1-1,那么从数据库的角度来看,连接可能会更有效率(它只有一个查询,没有重复的行)。否则,如果您有 1-m 或 1-0..1 关系,那么最好进行预取。 LLBLGen 足够聪明,可以使用 where in
子句和子查询或父查询的值列表作为 2 个查询来执行此操作,具体取决于父查询的结果数(切换到子查询的默认值为 50并且可以使用 DataAccessAdapter.ParameterisedPrefetchPathThreshold
进行更改)。如果您遇到性能问题,那么 运行 跟踪是个好主意,抓住 sql 并分析它以检查查询计划。
我正在为我的 project.I 使用 LLBLGenPro 我很好奇什么是更有效的查询方式,即加入或预取路径。
我观察到,当我使用预取路径时,它实际上会在具有可扩展结果集的数据库上触发单独的查询,而在连接的情况下,这是带有臃肿结果集的正常连接查询。
我的 application.i.e 遇到性能问题,为什么我需要知道做事的最佳方式
我会说这取决于两个表之间的关系。如果它是 1-1,那么从数据库的角度来看,连接可能会更有效率(它只有一个查询,没有重复的行)。否则,如果您有 1-m 或 1-0..1 关系,那么最好进行预取。 LLBLGen 足够聪明,可以使用 where in
子句和子查询或父查询的值列表作为 2 个查询来执行此操作,具体取决于父查询的结果数(切换到子查询的默认值为 50并且可以使用 DataAccessAdapter.ParameterisedPrefetchPathThreshold
进行更改)。如果您遇到性能问题,那么 运行 跟踪是个好主意,抓住 sql 并分析它以检查查询计划。