【发布时间】:2012-10-17 16:32:05
【问题描述】:
我正在考虑为我的 ASP.NET 4.5 网站使用 Simple.Data Micro-ORM。但是,在决定是否使用它之前,我需要知道一些事情。
我们以下面的 Join 查询为例:
var albums = db.Albums.FindAllByGenreId(1)
.Select(
db.Albums.Title,
db.Albums.Genre.Name);
这个查询将被翻译成:
select
[dbo].[Albums].[Title],
[dbo].[Genres].[Name]
from [dbo].[Albums]
LEFT JOIN [dbo].[Genres] ON ([dbo].[Genres].[GenreId] = [dbo].[Albums].[GenreId])
WHERE [dbo].[Albums].[GenreId] = @p1
@p1 (Int32) = 1
假设“流派”表是一个包含数千甚至数百万行的表。我认为在 JOIN 发生后过滤数据可能非常低效,这就是这个查询在 Simple.Date 中翻译的内容。
过滤Generes表中的数据会更好吗,这意味着首先创建一个SELECT语句并与该过滤表进行JOIN?
提前过滤数据不是更好吗?
此外,是否有一个选项可以使用 Simple.Data 进行这种类型的复杂(在过滤表上加入)查询。
需要您的答案才能知道是继续使用 Simple.Data,还是将其抑制为支持另一个微 ORM。
【问题讨论】:
-
顺便说一句,如果您 /any/ 知道我花了多少时间优化 Simple.Data 以获得快速性能,那么您会从您的问题中编辑该句子。 :(
标签: asp.net sql simple.data micro-orm