当前位置:  开发笔记 > 编程语言 > 正文

LinqToSql预编译查询有什么好处?

如何解决《LinqToSql预编译查询有什么好处?》经验,为你挑选了1个好方法。

我正在查看LINQPad提供的示例LINQ查询,这些查询来自于Cuts 4.0中的一本Nutshell书籍,并且遇到了我从未在LINQ to SQL中使用过的东西...编译查询.

这是确切的例子:

// LINQ to SQL lets you precompile queries so that you pay the cost of translating
// the query from LINQ into SQL only once. In LINQPad the typed DataContext is
// called TypeDataContext, so we proceed as follows:

var cc = CompiledQuery.Compile ((TypedDataContext dc, decimal minPrice) =>    
    from c in Customers
    where c.Purchases.Any (p => p.Price > minPrice)
    select c
);

cc (this, 100).Dump ("Customers who spend more than $100");
cc (this, 1000).Dump ("Customers who spend more than $1000");

预编译这样的LINQ to SQL查询实际上是什么让我买?我是否会从稍微复杂一点的查询中获得性能提升?这甚至用于实际操作?



1> Robert Grein..:

简而言之,当您需要多次运行单个查询时,预编译的查询会为您带来性能提升.

以下是有关LINQ To SQL性能的一些信息.

我在几个地方读到编译你的LINQ会有所帮助,但我从来没有听过有人说过速度提升有多么激烈.例如,在Fabrice Marguerie和其他人最喜欢的一本书(LINQ in Action)中,他在第296页引用了Rico Mariani的博客文章,标题为DLINQ(Linq to SQL Performance(第1部分),说使用编译查询几乎提供了两倍于非编译查询的性能,并继续说它使性能达到使用原始数据读取器的93%以内.嗯,足以说我自己从未运行过测试.我本可以住两次,但不是37次.

替代文字

因此,似乎您应该始终编译LINQ to SQL查询.嗯,那不是真的.我建议的是,如果你有理由一遍又一遍地执行相同的查询,你应该强烈考虑编译.例如,如果您只是进行一次LINQ to SQL调用,那么没有任何好处,因为您无论如何都必须编译它.叫它十次?那么,你必须自己决定.

推荐阅读
女女的家_747
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有