【发布时间】:2010-05-01 07:18:24
【问题描述】:
我正在使用 LINQ to SQL 并看到我的 CPU 使用率飙升。请参见下面的屏幕截图。我有三个问题
我可以做些什么来减少这个 CPU 使用率。我已经完成了分析并基本上删除了所有内容。将每个 LINQ to SQL 语句变成编译查询有帮助吗?
我还发现,即使使用已编译的查询,像 ByID() 这样的简单语句在具有 3.25GB RAM 3.17GHz 的服务器上也可能需要 3 毫秒 - 这在功能较弱的计算机上只会变得更慢。还是编译的查询会越用越快?
单个用户的 CPU 使用率(在本地服务器上达到 12-15%)将乘以访问服务器的用户数量 - 当应用程序放在实时服务器上时。即一次 2 个用户意味着 15*2 = 30% CPU 使用率。如果是这种情况,那么我的应用程序一次最多只能有 4-5 个用户。或者 LINQ to SQL .net 不共享一些 CPU 使用率。 alt text http://www.freeimagehosting.net/uploads/5f10e1f694.png
【问题讨论】:
-
您可以发布您认为是导致问题的查询的 SQL 吗?
-
您的 SQL Server 是否在同一台机器上?你确定 LINQ to SQL (.NET) 正在吃掉你的 CPU,还是你的 SQL Server?
-
我目前正在使用以下过程调整使用 L2S 的大型应用程序(非常成功!)启动 SQL Server Profiler 并使用保存到文件的“调整”模板创建跟踪。然后与您的应用程序交互以锻炼慢点。停止跟踪,然后启动数据库引擎优化顾问。您可以加载刚刚创建的跟踪文件并让它建议各种优化。我刚刚根据它的建议创建了 5 个非聚集索引,我的应用比以前快了 90%。
标签: .net sql-server-2005 linq-to-sql cpu