我正在开发优化linq to sql查询的工具。基本上,它拦截linq执行管道,并进行一些优化,例如从查询中删除冗余连接。当然,在dbms中执行查询之前,执行时间会有一定的开销,但是查询的处理速度应该会更快。我不想使用sql分析器,因为我知道在dbms中生成的查询比原始查询执行得更好,我正在寻找一种正确的方法来测量从在linq中创建查询到其执行结束之间的全局时间。目前,我使用的是秒表类,我的代码如下所示:
var sw = new Stopwatch();
sw.Start();
const int amount = 100;
for (var i = 0; i < amount; i+
我现在正在尝试使用优化我的数据库,我面临的问题是,我的SQL Profiler跟踪显示了大量使用sp_executesql执行的查询-而顾问无法处理这些查询。这些查询似乎来自我正在使用的LINQ- to -Entities,所以我只是好奇是否有任何方法可以让LINQ-to-Entities直接调用语句。
在Visual Studio 2012中查看Linq查询生成的SQL (最好是数据)的最简单方法是什么?我之前使用过一些调试可视化工具,它们在VS2008/2010中工作得很好,但我似乎找不到一个适用于2012年的。
例如,假设我有Linq:
var l = ctx.PurchaseOrders.Where(c => c.PurchaseOrderID == searchstring);
如何查看Linq转换成的SQL是什么?
我正在使用实体框架
我有一个LINQ查询,它检查自年初以来是否进行了任何测试。
var MetersTestedCount = (from n in _mttDomainContext.MTTMeterTests
where n.TestDate > DateTime.Parse("1/1/2010")
select n.TestDate).Count();
但是,此查询返回一个空集。我有一个类似的SQL查询,它拉取一些记录,
USE MeterTestTracking
在SQL Server中,可以选择使用查询提示。例如
SELECT c.ContactID
FROM Person.Contact c
WITH (INDEX(AK_Contact_rowguid))
我正在处理未使用的索引,我想知道如何确定索引是否用作查询提示。有人对我如何做到这一点有什么建议吗?
干杯,乔
我有一个性能问题,是由Repository的Get方法返回的延迟引起的。
var res = Data.TicketRepository.GetSingle(filterExpression, includeNavigations);
因此,我在数据库上配置了一个跟踪,以查看由linq- to -sql函数生成的sql语句。但是,在调试器使用该方法完成之后,我在分析器中没有得到任何跟踪。
我做错了什么?
分析器是否可以跟踪在SSMS之外触发的执行?
我有一个使用linq进行查询的aspx网格控件。我可以从网格控件中获得字符串形式的过滤器表达式,但它当然是在linq中。linq和tsql有时是相同的,但在其他时候是不同的。我需要将linq字符串语法更改为tsql语法,这样我就可以查询,在dataset中获得相同的结果,并加载自定义维护表单。例如:
linq: StartsWith( city,'cedarburg') Tsql: city like '%cedarburg‘
有什么方法可以做到这一点吗?
谢谢。