【发布时间】:2009-11-25 19:20:56
【问题描述】:
在问这个问题之前,我已经用谷歌搜索了一段时间,但找不到关于这个主题的任何相关信息。
我的问题很简单:
我有 NHibernate 标准和投影,我正在尝试设置 DISTINCT ON(column)
我的投影代码如下:
criteria.SetProjection(
Projections.ProjectionList()
.Add(Projections.Distinct(Projections.Property("ID")))
.Add(Projections.Property("A"))
.Add(Projections.Property("B"))
);
这会生成以下 SQL(有点简化):
SELECT DISTINCT ID, A, B FROM ABC ORDER BY A
但不幸的是,如果此查询的性能非常非常差。
我优化了运行速度更快的 SQL,如下所示:
SELECT DISTINCT ON (A) ID, A, B FROM ABC ORDER BY A
无论如何我可以让 NHibernate 生成我刚刚展示的 SQL 吗? 这个问题可以用 NHibernate 的方言解决吗?
期待您的反馈! 非常感谢!
【问题讨论】:
标签: .net sql performance nhibernate postgresql