LINQ To SQL 的性能 (列出部分的测试程序)

摘要:LINQ To SQL 的性能 (列出部分的测试程序)

一时兴起,测了一下LINQ To SQL的性能,

?以100000笔数据的读入来测试,为求平衡,特别以5次读取之总值测试.

读取方式 结果
With Un-Typed DataTable Load (use DataAdapter without Delete/Insert/Update assocation) 5188 ms
With LINQ To SQL???????????????????????????????????????????????????????????????????? 4203 ms

我很讶异LINQ To SQL的性能,居然呈现出比Un-Typed DataTable更快,虽然就理论上而言,

LINQ To SQL所产生的类于成本上应比DataRow来得低,但这样的差距能引起我的怀疑,

或许我尚有遗漏之处也说不定,待较有空时,审视一下LINQ To SQL的Fill机制,应能找到其

性能提升的证据.

列出部分测试的程序.

With UnTyped DataTable

static void TestUnTypedLoad()
?{
??????????? SqlConnection conn = new SqlConnection(DSPerformanceTest.Properties.Settings.Default.Northwind2ConnectionString);
??????????? DataTable table = new DataTable();
??????????? using (conn)
??????????? {
??????????????? using(SqlCommand cmd = new SqlCommand("SELECT * FROM TEST_TABLE",conn))
??????????????? {
??????????????????? using (SqlDataAdapter adapter = new SqlDataAdapter(cmd))
??????????????????? {???????????????????????
??????????????????????? adapter.Fill(table);
??????????????????? }
??????????????? }
??????????? }???????????
??????? }

With LINQ to SQL

static void TestLoadWithLinq()
?{???????????
??????????? NorthwindDataContext context = new NorthwindDataContext();
??????????? var s = (from s1 in context.TEST_TABLEs select s1).ToList();
}

原文:大专栏  LINQ To SQL 的性能 (列出部分的测试程序)

原文地址:https://www.cnblogs.com/chinatrump/p/11513164.html

时间: 2024-10-11 12:45:57

LINQ To SQL 的性能 (列出部分的测试程序)的相关文章

LINQ TO SQL和Entity Framework 的关系 你了解多少?

1. LINQ  TO SQL 和EF 特点:  LINQ TO SQL和Entity Framework都是一种包含LINQ功能的ORM 也就是所谓的关系对象的映射.其中包括的有DBFrist  Code Frist    ModeL  Frist   三种中方式 来进行和数据库之间的访问.只是形式不同而已本质没有什么区别.都是ORM  之间的转化.最终都是来进行访问底层的数据库的对象 和服务. 简单来说LINQ是为了满足不知道怎么操作数据库的程序员开发设计的,LinQ 可以让他们以一种面向数

初涉SQL Server性能问题(4/4):列出最耗资源的会话

原文:初涉SQL Server性能问题(4/4):列出最耗资源的会话 在上3篇文章里,我们讨论了列出反映服务器当前状态的不同查询. 初涉SQL Server性能问题(1/4):服务器概况 初涉SQL Server性能问题(2/4):列出等待资源的会话 初涉SQL Server性能问题(3/4):列出阻塞的会话 这篇文章我们看下从计划缓存里列出执行状态. 1 /*********************************************************************

初涉SQL Server性能问题(2/4):列出等待资源的会话

原文:初涉SQL Server性能问题(2/4):列出等待资源的会话 在初涉SQL Server性能问题(1/4)里,我们知道了如何快速检查服务器实例上正运行的任务数和IO等待的任务数.这个是轻量级的脚本,不会给服务器造成任何压力,即使服务器在高负荷下,也可以正常获得结果. 问题检测的第2步是获取在进行任何资源等待的会话.下面的脚本会帮助我们获得这些信息.这个查询需要预建立一个函数,如果会话是由SQL Server代理启动的话,会显示具体的作业名. 1 /********************

初涉SQL Server性能问题(3/4):列出阻塞的会话

原文:初涉SQL Server性能问题(3/4):列出阻塞的会话 在 初涉SQL Server性能问题(2/4)里,我们讨论了列出等待资源或正运行的会话脚本.这篇文章我们会看看如何列出包含具体信息的话阻塞会话清单. 1 /******************************************************************************************/ 2 CREATE FUNCTION [dbo].dba_GetStatementForSpid

简单测试linq to sql性能

前些日子,做了一个物业收费系统,cs模式,用到了linq to sql 技术,这是我第一次使用这个东东写程序存取数据库,迷迷糊糊搞得一塌糊涂,当时有个同学他们找好的分页组件,然后写好了调用方法,由于时间比较急,而且第一次用,所以没有怎么研究就直接按照注释使用他们写好的分页方法,然而开发过程中一直都对他们写的方法有怀疑,会不会是一种投机取巧,胡编乱造的?后来我也做过一些简单分析,我发现程序在业务逻辑层中每次都从数据库中将数据全部读取出来,然后循环将数据转成特定的List,也就是遍历整个数据集合,然

LINQ To SQL 语法及实例大全

LINQ to SQL语句(1)之Where Where操作 适用场景:实现过滤,查询等功能. 说明:与SQL命令中的Where作用相似,都是起到范围限定也就是过滤作用的,而判断条件就是它后面所接的子句. Where操作包括3种形式,分别为简单形式.关系条件形式.First()形式.下面分别用实例举例下: 1.简单形式: 例如:使用where筛选在伦敦的客户 var q = from c in db.Customers where c.City == "London" select c

Linq to Sql语法及实例大全

LINQ to SQL语句(1)之Where Where操作 适用场景:实现过滤,查询等功能. 说明:与SQL命令中的Where作用相似,都是起到范围限定也就是过滤作用的 ,而判断条件就是它后面所接的子句. Where操作包括3种形式,分别为简单形式.关系条件形式.First()形式.下 面分别用实例举例下: 1.简单形式: 例如:使用where筛选在伦敦的客户 var q = from c in db.Customers where c.City == "London" select

LINQ to SQL语句入门篇 纯属转载

Where操作 适用场景:实现过滤,查询等功能. 说明:与SQL命令中的Where作用相似,都是起到范围限定也就是过滤作用的,而判断条件就是它后面所接的子句. Where操作包括3种形式,分别为简单形式.关系条件形式.First()形式.下面分别用实例举例下: 1.简单形式: 例如:使用where筛选在伦敦的客户 var q = from c in db.Customers where c.City == "London" select c; 再如:筛选1994 年或之后雇用的雇员:

c# LINQ to SQL

list例: List<result_1> list = get_lately_fifty_data(); List<int> number_count = (from c in list orderby c.Number ascending select c.Count).ToList(); datatable例: var q = from p in dt.AsEnumerable() where p.Field<string>("username"