C# · 12月 24, 2021

c# – 应编译哪种类型的Linq to SQL查询?

我正在项目中使用 Linq to sql,并阅读有关框架效率低下的文章.我已经读过,提高性能的一种方法是创建编译查询.所有查询都会更好地编译吗?或者在某些情况下它可能没有多大区别?我认为这对于获得大量流量的大规模应用程序至关重要.

谢谢.

解决方法 我以前碰到过这个.编译查询可能是一件好事,并且确实可以显着提高性能.但这并不总是最好的解决方案.

我正在研究一些需要30-40分钟才能运行的报告.我发现我们正在调用某些查询数百次.编译查询确实提供了改进,但还不够.

我最终做的是运行较少的返回更多数据的查询.这减少了打开和关闭连接.结果是在不到一分钟的时间内发布的报告.

因此,如果您不得不多次运行查询,那么编译它是一个很好的选择.如果它运行数百或数千次,您可能只需要一种新方法.

关于这两件事的几篇文章:

用于报告的SQL查询优化:不同的方法:

http://www.foliotek.com/devblog/sql-query-optimization-for-reporting-a-different-approach/

Linq中预编译查询的意外好处:

http://www.foliotek.com/devblog/unexpected-benefits-of-precompilation-of-linq/

还需要考虑的另一件事是数据库中的索引.你的查询很慢,但你不知道为什么它很慢.如果它正在搜索未编入索引的列,那么这也可能是您的问题.