大家说说你们项目dal层用的是什么?

代码 2012-04-30 03:13:44
1.sqlhelper?
2.nhibernate?
3.linq?

我还是个菜鸟,我们公司用得是sqlhelper,而且改过ConnectionString.、
现在我存在一个疑问,用一次sqlhelper,就要连一次数据库,那不是性能很低吗?
...全文
197 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
代码 2012-05-02
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

若干年前我跟楼主也有相同的疑问,但我解决这个疑惑的方法是自己编程序测试,而没有上网问人。

测试A:
数据库.Open()
for(i=0;i<1000;i++)
{
读取一个数据集
}
数据库.Close();

=======================

测试A:

for(i=0;i<1000;i++)
{
数据库.Open();
读取一个数据集
……
[/Quote]
受教了。谢谢高手。
piao2004 2012-05-01
  • 打赏
  • 举报
回复
若干年前我跟楼主也有相同的疑问,但我解决这个疑惑的方法是自己编程序测试,而没有上网问人。

测试A:
数据库.Open()
for(i=0;i<1000;i++)
{
读取一个数据集
}
数据库.Close();

=======================

测试A:

for(i=0;i<1000;i++)
{
数据库.Open();
读取一个数据集
数据库.Close();
}

=====================
两个测试所城的时间几乎相同。

evelyn_green 2012-05-01
  • 打赏
  • 举报
回复
dal====>data access layer(tier)
xupeihuagudulei 2012-05-01
  • 打赏
  • 举报
回复
现在还在用helper
weqrazxaar 2012-05-01
  • 打赏
  • 举报
回复
我用的是SQLHelper
chen_ya_ping 2012-04-30
  • 打赏
  • 举报
回复
关于性能的问题,楼主不要靠猜测,而是要靠实际的测试。
代码 2012-04-30
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

引用楼主 的回复:
现在我存在一个疑问,用一次sqlhelper,就要连一次数据库,那不是性能很低吗?


当你使用SQL Server的ADO.NET客户端驱动,它是基于连接池的。所以只有你及时地释放逻辑连接,那么连接池里的物理连接才能尽快交给别的逻辑连接去复用。如果你不尽快释放逻辑连接,那么别的逻辑连接就必须申请新的物理连接。如果你不申请新的逻辑连接,对于DbDataReader就……
[/Quote]

高手哟。受教了。谢谢
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
现在我存在一个疑问,用一次sqlhelper,就要连一次数据库,那不是性能很低吗?
[/Quote]

当你使用SQL Server的ADO.NET客户端驱动,它是基于连接池的。所以只有你及时地释放逻辑连接,那么连接池里的物理连接才能尽快交给别的逻辑连接去复用。如果你不尽快释放逻辑连接,那么别的逻辑连接就必须申请新的物理连接。如果你不申请新的逻辑连接,对于DbDataReader就会出现异常而让程序垮掉,因为Reader过程中是要独占连接的。

所以你花费的是new一个对象的时间(一秒钟可以new出来一百万个),而得到的就是可以使用到自动化的连接池机制。打个比方吧,假设一个有着很多个车间的工厂,一共只有10台叉车用于生产需要,那么每一个车间使用叉车的时候都要填一个单子。假设有一个车间说“用一次叉车就要填一张单子,那么是性能很低吗?干脆我一个月才填一张单子吧!”,那么这个工厂也就别想生产了。显然这种画蛇添足的所谓“高性能”,其实性能很低。
orochiheart 2012-04-30
  • 打赏
  • 举报
回复
我只用过sqlhelper,应该是执行一次sql操作 就连接一次吧 效率可以接受
mizuho_2006 2012-04-30
  • 打赏
  • 举报
回复
用一次sqlhelper,就要连一次数据库,那不是性能很低吗?

---> 你想一直占用着数据库连接吗?数据库中最宝贵的资源就是连接。所以DataReader一般都不建议用的,因为它至始至终占用着数据库连接。
mizuho_2006 2012-04-30
  • 打赏
  • 举报
回复
nhibernate和DAL不是一个层面上的东西吧!

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧