找回密码
 FreeOZ用户注册
查看: 2383|回复: 13
打印 上一主题 下一主题

[论坛技术] 关于.net3.5中LINQ的效率问题?

[复制链接]
跳转到指定楼层
1#
发表于 19-3-2010 17:55:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?FreeOZ用户注册

x
为了提高运行效率,我把一个拥有几千万条记录的表从database load into memory,干掉了近3G空间 ,现在我要对这个内存中的数据进行频繁的查询获得它的subset,使用了LINQ,但效率并不满意,全部程序运行下来要几十个小时,如何提高执行效率,感觉使用LINQ比较慢,希望各位大虾赐教,谢谢
回复  

使用道具 举报

2#
发表于 20-3-2010 20:39:55 | 只看该作者
使用内存数据库试试。
回复  

使用道具 举报

3#
发表于 20-3-2010 20:47:49 | 只看该作者
LINQ来搞千万级数据量的工作,恐怕不是个好主意哦
回复  

使用道具 举报

4#
发表于 20-3-2010 20:51:51 | 只看该作者
其实要处理数据量的大小, 跟用不用LINQ 没有多大关系,如果要用LINQ, 最后它还是要转化成SQL语句执行,只不过是经过系统优化的延后执行。
回复  

使用道具 举报

5#
发表于 20-3-2010 21:30:57 | 只看该作者
楼主是用Linq2SQL做的?
回复  

使用道具 举报

6#
发表于 22-3-2010 14:34:01 | 只看该作者
这种大数据量全loading到内存里? 你用SQL或者StoreProc在数据库里搞定然后再返回给你程序比较好把
回复  

使用道具 举报

7#
发表于 22-3-2010 14:34:53 | 只看该作者
你如果有兴趣, 把表和需求写一下, 我来看看?
回复  

使用道具 举报

8#
 楼主| 发表于 22-3-2010 17:44:55 | 只看该作者
谢谢ls各位大虾,经过改进,目前效率得到显著提升,但是还要大概10小时左右

表结构很简单,就3个columns,USER_ID,TAG_ID,TAG_VECTOR,总共5000多个USERS,每个USERS有几十个到几千个TAGS,每个TAG用一个VECTOR来表示,VECTOR的SIZE是3000多,就好比是一个3000多维的向量。

问题是这样的,要计算任何两个USERS之间的所有TAGS向量夹角的余弦值,对于给定的阈值,统计满足条件的TAGS数量占其中一个USER中TAGS数量的比例,保存这个比例值。
回复  

使用道具 举报

9#
发表于 23-3-2010 10:25:55 | 只看该作者
我的建议你可以写一个.net程序把它放到sql server中, 变成sql server的一个user function, 然后直接在sql中用sql 来调用这个function, 我相信比你load到内存中计算要快很多
回复  

使用道具 举报

10#
发表于 23-3-2010 10:37:00 | 只看该作者

确认一下

提示: 作者被禁止或删除, 无法发言
这个表里面每一行数据存的是一个TAG值么?所以如果一个用户有3000个TAG,那么这个表里面就有3000条记录?
回复  

使用道具 举报

11#
发表于 24-3-2010 06:27:40 | 只看该作者
用Linq2SQL显然是没有意义的
主要是算法问题吧
能不能提供3-5个User的数据,以及阀值,
我看到一个SQL网上经常有这样的擂台赛,就一个具体的问题由大家提供方案或者程序,看谁的方法效率最好
回复  

使用道具 举报

12#
发表于 24-3-2010 08:58:45 | 只看该作者
LINQ2SQL is already dead.
回复  

使用道具 举报

13#
发表于 18-4-2010 21:59:13 | 只看该作者

为什么?哪位大侠能解释一下吗?

据我所知:
Of all the new features introduced in .Net Framework 3.5, LINQ to SQL is the most significant one.

还没开始看.Net Framework 4,莫非有新的东西代替LINQ?
不明白。。。
回复  

使用道具 举报

14#
发表于 19-4-2010 12:07:35 | 只看该作者
Linq to sql 确实微软已经不推了.这和linq没什么关系. 现在是Entity Framework 4.0. 我觉得这些ORM的东西处理一些业务逻辑还是不错的. 但是大数据量下面的查询还是的用SQL, ORM不行的.

评分

参与人数 1威望 +15 收起 理由
Melodyy + 15 谢谢分享!

查看全部评分

回复  

使用道具 举报

您需要登录后才可以回帖 登录 | FreeOZ用户注册

本版积分规则

小黑屋|手机版|Archiver|FreeOZ论坛

GMT+10, 30-4-2024 14:28 , Processed in 0.043734 second(s), 30 queries , Gzip On, Redis On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表