首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LINQ和SQL Server性能调整SQL Server 2008数据库的最佳实践?

LINQ和SQL Server性能调整SQL Server 2008数据库的最佳实践?
EN

Stack Overflow用户
提问于 2009-12-30 11:15:27
回答 2查看 1.8K关注 0票数 2

我的问题是,使用LINQ for SQL优化性能的最佳实践是什么,性能是用户界面中的响应时间。

现在,我在SQL Server2008数据库中有一些销售数据,我使用LINQ for SQL构造可执行的可查询表达式,在ASP.NET应用程序的图表中显示这些数据(MAT、年度、不同细分市场、细分市场增长、市场增长百分比

我看到的挑战是,我有一个数据库,并使用LINQ构造所有问题,我无法控制创建什么SQL (我可以跟踪它,但是,,,),并且我不使用存储过程,因此我的数据获取方式就像一个黑盒。

现在,我运行了一些单元测试和手动测试应用程序,并使用Databasse Engine Tuning Advisor创建了什么索引等。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-12-30 11:38:02

分析,分析,分析。:)

不仅要测量时间,还要注意I/O。由于缓存,频繁执行的I/O密集型查询可以快速执行,但由于可用于其他查询的资源较少,因此可能反过来对数据库服务器的整体性能产生负面影响。

正如你所说,L2S可能是一个有点黑盒,所以你需要尝试复制所有的场景和/或配置文件,而该应用程序正在被真正的用户使用。然后使用它来1)调整查询2)添加索引3)进行任何其他所需的更改以获得所需的性能。

我有一个专门为Linq- to -SQL设计的性能分析工具,让它不那么“黑箱”--它允许你在运行时进行性能分析,同时将生成的查询绑定到导致特定查询执行的代码(调用栈)。您可以从http://www.huagati.com/L2SProfiler/下载并获得免费试用许可证

我的分析器的背景原因在这里有一个更详细的概述:http://huagati.blogspot.com/2009/06/profiling-linq-to-sql-applications.html

...and此处介绍了一些高级性能分析选项:http://huagati.blogspot.com/2009/08/walkthrough-of-newest-filters-and.html

如果您有很多包含许多列的表,另一件可能会有帮助的事情是将索引信息放入代码编辑器中。这是通过将带有该信息的xml文档注释添加到实体类和成员属性来完成的;然后,该信息将显示在VS代码编辑器的工具提示中:

当你输入查询时,你可以通过...that的方式查看是否有一个索引覆盖了where子句等中使用的列。为了避免不得不输入所有的索引,我也为此创建了一个工具。请参阅http://www.huagati.com/dbmltools/中的“更新文档”功能

票数 1
EN

Stack Overflow用户

发布于 2009-12-30 11:22:38

除此之外,我通常会将SQL分析器和CLR分析器与一些模拟用户一起使用在大型数据集上,并通过datacontext观察长时间运行的查询和/或长时间运行的调用(这可能意味着在幕后发生多次往返)。我个人的偏好也是在默认情况下禁用所有datacontext上的延迟加载和对象跟踪,所以在大多数情况下我必须选择多次往返。虽然您不能直接影响生成的SQL,但您可以小心使用LoadWith/AssociateWith,并确保您不会获取非常大/低效的结果集,并分解具有大量昂贵连接的查询(有时多次往返比大型表上的mondo连接更便宜)。

这一切都是关于测量的--使用你能用到的任何工具。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1978223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档