2

我遇到了 NHibernate 的问题(SQL Server 2000,如果重要的话)。

即使我指定 500,NHibernate 似乎使用等于 10 的批量大小(但如果我指定小于 10 的大小,比如 3 - 它使用 3)

<bag name="RiskTypes" table="CalculationQuery" lazy="false" batch-size="50">
  <key column="CalculationID"></key>
  <many-to-many class="RiskType" column="RiskType"></many-to-many>
</bag>

我正在加载 11 个项目,并在 NHProf 中看到它执行两个查询:

选择 risktypes0_.CalculationID 作为 Calculat1_1_​​,
       risktypes0_.RiskType 作为 RiskType1_,
       risktype1_.RiskTypeID 为 RiskTypeID5_0_,
       risktype1_.RiskTypeName 作为 RiskType2_5_0_
FROM CalculationQuery risktypes0_
       左外连接 RiskType risktype1_
         关于 risktypes0_.RiskType = risktype1_.RiskTypeID
WHERE risktypes0_.CalculationID in (373 /* @p0 */,363 /* @p1 */,364 /* @p2 */,365 /* @p3 */,
                                     366 /* @p4 */,367 /* @p5 */,368 /* @p6 */,369 /* @p7 */,
                                     370 /* @p8 */,371 /* @p9 */)
选择 risktypes0_.CalculationID 作为 Calculat1_1_​​,
       risktypes0_.RiskType 作为 RiskType1_,
       risktype1_.RiskTypeID 为 RiskTypeID5_0_,
       risktype1_.RiskTypeName 作为 RiskType2_5_0_
FROM CalculationQuery risktypes0_
       左外连接 RiskType risktype1_
         关于 risktypes0_.RiskType = risktype1_.RiskTypeID
WHERE risktypes0_.CalculationID = 372 /* @p0 */
4

0 回答 0