在我之前的工作中,我设计并帮助构建了一个运行时(生产)Profiler工具,除了其他很酷的功能之外,它还能为每个执行的SQL语句提供.Net堆栈跟踪.将其视为类固醇上的SQL-Server Profiler.因此,您还可以获得SQL执行的上下文,而不仅仅是查看SQL语句和持续时间.在开发以数据库为中心的应用程序时,我发现此信息是上帝发送的.
问题是,由于这是开发的,我以前的公司已被赛门铁克收购,虽然该工具仍可下载,但很不清楚许可是什么,而且不是SKU Symnatec正在销售的.
我想知道是否有人知道任何类似的工具会给我堆栈跟踪我的SQL语句执行?
alt截图http://img151.imageshack.us/img151/4357/profiler1jz3.gif
这仍然没有答案,ANTS等人不这样做,只考虑回答否并接受它.
我最近更新了一个使用LINQ to SQL和SQL Server CE 3.5到Entity Framework 4.1 Code First和SQL Server CE 4.0的应用程序,它现在运行速度明显变慢.在秒表测试之前和之后我做了一些,我的应用程序的大多数主要操作平均运行速度慢了约40%.
我正在使用EF Code First的所有默认策略和配置,但禁用级联删除除外.
当我最初发布这个问题时,我专注于一个似乎花了很长时间的查询,但我已经意识到它在第一次运行时只是特别慢(参见下面的评论帖子).
我现在认为我看到的是大多数查询运行速度较慢 - 速度不是很慢,但速度足够快,因为应用程序执行的大多数操作都涉及多个查询.
这个应用程序有一个非常小的数据库 SQL CE(.sdf)文件只有458 KB,最大的表少于250条记录.
这是一个POCO类示例:
public class Target
{
public int Id { get; set; }
public int TrialDefinitionId { get; set; }
public int Number { get; set; }
public int X { get; set; }
public int Y { get; set; }
public string Phase { get; set; }
public virtual TrialDefinition TrialDefinition { get; set; }
} …Run Code Online (Sandbox Code Playgroud)