Linq To Sql 它的优点我就不说了,随便上网找,一大堆。我就说说效率。
大家都知道 Pooling 吧,如果不考虑 pool 本身的开销,适当的用Pooling 模式将大大的提高访问速度。
所以写下面的代码测试一下linq 咋样,结果下一大跳。先是一般的链接。
string s = "Data Source=HOME;Initial Catalog=TEST;Integrated Security=True; Pooling=False";
for (int i = 0; i < 5; i++)
{
using (SqlConnection con = new SqlConnection(s))
{
con.Open();
con.Close();
}
}
打开Sql Server Profiler, 执行上面代码,结果看到 5次 login logout,
然后将链接字符串里面的Pooling=False去掉在再执行,发现这回只有一次 login logout, 说明用的是一个链接。pooling 其作用了。然后测试 linq to sql把 for 里面改成下面代码
using (DataClasses1DataContext con = new DataClasses1DataContext())
{
con.TestData.Count();
}
结果发现有 5 次 login, logout.因为Ado.net 链接字符串里面如果不写 pooling 的话,默认是等于pooling = True, 但很显然用 linq to sql 查询是
pooling 没有起作用, 于是干脆显示的写进去,打开Settings.Designer.cs,将链接字符串内加入 pooling = True
然后再试,结果还是5次 login, logout.至此我已经无语了。
大家都知道 Pooling 吧,如果不考虑 pool 本身的开销,适当的用Pooling 模式将大大的提高访问速度。
所以写下面的代码测试一下linq 咋样,结果下一大跳。先是一般的链接。
string s = "Data Source=HOME;Initial Catalog=TEST;Integrated Security=True; Pooling=False";
for (int i = 0; i < 5; i++)
{
using (SqlConnection con = new SqlConnection(s))
{
con.Open();
con.Close();
}
}
打开Sql Server Profiler, 执行上面代码,结果看到 5次 login logout,
然后将链接字符串里面的Pooling=False去掉在再执行,发现这回只有一次 login logout, 说明用的是一个链接。pooling 其作用了。然后测试 linq to sql把 for 里面改成下面代码
using (DataClasses1DataContext con = new DataClasses1DataContext())
{
con.TestData.Count();
}
结果发现有 5 次 login, logout.因为Ado.net 链接字符串里面如果不写 pooling 的话,默认是等于pooling = True, 但很显然用 linq to sql 查询是
pooling 没有起作用, 于是干脆显示的写进去,打开Settings.Designer.cs,将链接字符串内加入 pooling = True
然后再试,结果还是5次 login, logout.至此我已经无语了。
解决方案 »
- 利用SqlDataReader实现与listview数据的绑定 问题出在哪里怎么运行不出来呢?
- 找不到类型或命名空间名称MD5是否缺少 using 指令或程序集引用
- 服务器端读NetworkStream ,还是多就是少是咋回???????????
- 请问各位用.NET的哪个版本? 哪里有vs2005下载? 谢谢!
- WinForm下可否设置Lable控件的背景色为透明的?谢谢!
- 请教window.location.search.substr(1)是什么意思?
- c#输出EXCEL表单中加注解如何实现?
- 有一个关于音频方面的需求,有经验的朋友进来给点意见
- web里的treeview长度问题
- 求c#编程问题
- 关于GridView,数据库数据改变了,GridView如何同步显示
- C#编辑资源问题
再然后,又的浪费时间去把代码改回到直接用 ado.net当然做小玩意用 linq to sql 将能大大的提高工作效率(我指的是工作效率,不是程序的性能)
这样设计的效率还能好吗!