- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有没有一种方法可以分析 LinqToSql,以便我可以看到查询在数据库中花费了多长时间,以及映射到对象需要多长时间?
据我从 SQL Profiler 判断,我的查询速度快如闪电,但应用程序端的调用速度很慢,我想知道是不是 DataReader > Objects 映射速度慢。
最佳答案
欢迎来到我们的世界!是的,我们也看到了这一点。在衡量方面,我们编写了 MvcMiniProfiler,使其可以包装标准的数据库连接/命令/阅读器等(因为 ADO.NET 对装饰器相当友好);所以我们可以通过以下方式测量 LINQ 开销:
using(MiniProfiler.Current.Step("Getting awesome data")) {
var data = {your query that materializes data, i.e. ToList() etc }
}
然后 MvcMiniProfiler 将向您显示“获取很棒的数据”的时间等,以及在 SQL 查询等方面花费的时间。
我们发现即使在使用 ExecuteQuery<T>(sql, args)
时也经常会有很大的差距。 ,这(连同一些 CPU 事件探测)让我们强烈怀疑物化是罪魁祸首(特别是在高使用率下运行时;例如,我们可以看到,由于开销,一个 4 毫秒的查询花费了 80+ 毫秒 - 所以损失了 76 毫秒到 LINQ)。因此,我们编写了 dapper-dot-net,它在削减物化成本方面做得非常出色。一个 4 毫秒的查询再次需要 4 毫秒。
举个例子:
cols 是(我只包括了 2 行,所以没有标题):
步骤名称 |这一步的时间(毫秒) |从开始的偏移量(毫秒) |数据库 |时间(毫秒)
如您所见,运行 sql 需要 1.3 毫秒,步骤需要 1.8 毫秒,因此开销为 0.5 毫秒。 “1 sql”实际上是指向已执行的 sql(带有参数/值)的超链接。您可以在生产环境中 24x7 无痛地运行它(....我们这样做)。
关于.net - 从 LinqToSql 获取查询与映射速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8241223/
// goal: update Address record identified by "id", with new data in "colVal" string cstr = Connectio
在 ADO.Net/SQLClient 中我经常会做这样的事情: SELECT COUNT(*) FROM SomeTable WHERE SomeKey = 1234 ...并使用 executes
我有 3 个类(class): BasePlace、Hall、HallPlan。 关系: BasePlace - Hall:一对多。 Hall - HallPlan:一对多。 我从远程程序中获取地点(
假设我有一个包含 DateTime 字段和一个 int 字段的表并执行如下查询: var query = context.tblSomeTable.Where(s=>s.Name == "Hello
我有一个使用多个连接运行的 LINQ 查询,我想将它作为 IQueryable 传递并在其他方法中应用额外的过滤器。 问题是我不知道如何传递 var数据类型并保持强类型,如果我尝试将其放入我自己的类中
我有一个问题。如果我使用的是 LinqToSql,我的程序会将我的数据库加载到内存中。小例子: //pageNumber = 1; pageSize = 100;
我有以下代码: var tagToPosts = (from t2p in dataContext.TagToPosts joi
我喜欢 LinqToSql 数据上下文对象和底层 SQL 数据库之间的紧密耦合,但我很好奇混淆是如何融入画面的。 [global::System.Data.Linq.Mapping.ColumnAtt
在您将其标记为重复之前,我进行了广泛的搜索,但没有提供我的答案。我看过了 Recursive select via LINQ?和 linq to sql recursive query和 http:/
这可能已经有人问过,但我找不到,所以就到这里吧。 我们有一个表的通用读取,使用 Context.GetTable( ) 然后附加一个表达式来查找表中的单个记录。该表具有关联。不幸的是,我们正在尝试更改
我在使用 LinqToSQL 时无法将连接字符串初始化为文本文件。 我正在尝试使用以下连接字符串创建 DataContext: Provider=Microsoft.Jet.OLEDB.4.0;Dat
这里有一些 LinqToSql 问题: // Returns the number of counties in a state, // or all counties in the USA if t
我正在查看 LINQPad 提供的样本 LINQ 查询,这些查询取自 Nutshell 书中的 C# 4.0,并遇到了一些我从未在 LINQ to SQL 中使用过的东西...编译查询。 这是确切的例
我有一些 linq 实体继承了这样的东西: public abstract class EntityBase { public int Identifier { get; } } public int
有没有办法使用 LINQToSQL 从表中返回随机行? 最佳答案 是的,在表的计数范围内生成一个随机数,然后 Skip() 该数字,Take(1) 然后返回结果序列的第一个元素。有点像 var R =
我刚刚开始使用 LinqToSql 创建我的数据访问层。每个人都在谈论很酷的语法,我真的很喜欢 Linq。 但是当我看到如果你在 LinqContext 上拖动一些表时你的类是如何生成的,我很惊讶:这
我有以下形式的数据设置:State 1->n County 1->n City。 在我的 State 对象中,我想要返回至少包含一个人口大于 p 的城市的所有县。如果我用 sql 写这个,它会是: s
我是 LINQtoSQL 的新手。我选择学习它是因为我没有太多用 SQL 编写存储过程的经验,并且认为 LINQtoSQL 可能是进行数据访问的另一种方法。不管怎样,我创建了一个简单的 ASP.NET
我需要执行此 Sql 命令(在管理工作室中运行良好): select * from Users where Login = 'test' and PasswordHash = HashBytes('S
有没有一种方法可以分析 LinqToSql,以便我可以看到查询在数据库中花费了多长时间,以及映射到对象需要多长时间? 据我从 SQL Profiler 判断,我的查询速度快如闪电,但应用程序端的调用速
我是一名优秀的程序员,十分优秀!