我自己做一个关于地理信息的小程序,从一个文本格式的文件里先抽取约11万条记录,放在List<T>里,然后根据不同类型的信息做分析处理。不是逐行处理,而是用from。 where orderbyselect 来查询处理的整个处理过程约900万次查询我大概测算了一下,对于这11万条的记录的880万次查询,Linq每秒仅仅可以处理67次查询,全部处理完估计要将近40个小时晕啊,这样规模的数据,这样规模的查询,用啥最快啊?

解决方案 »

  1.   

    c++ 记得释放内存
    这样就能快很多了
    不过c++下没有linq这样的东西了
      

  2.   

    用数据库能快多少,有没有具体速度的数据?比如我这11万条记录,每秒能查询几次?因为是从一个文本格式里倒出来的数据,再放到数据库里比较麻烦,不过真的速度有几何级的提供,还是值得倒数据的。关于释放内存,我不懂C#里面会如何,不过除了这个大List<T>以外,其他变量什么的数据都很小很小的,也不多。程序是简单的,就是处理量比较大
      

  3.   

    或许我的设计有问题,我现在也绞尽脑汁想呢不过每秒67次的处理速度总还是太慢太慢吧!! 我的计算机也不算很差,08年5月买的,具体什么配置忘了,但也是当时最流行的配置,双核的CPU,4G内存
      

  4.   

    放在数据库里面,建索引,优化索引.
    一般按照楼主机器配置,检索11W条记录中的某一条使用主键索引(int型)应该不需要多少毫秒的.
      

  5.   

    LINQ的效率是不怎么样的,楼主也不必大惊小怪。Apress有本书上介绍过这个事情,效率上还是foreach比较高。
    我觉得如果不使用数据库的话,是不是可以先对数据进行排序,或者散列,再根据数据的特征分区处理呢?
      

  6.   

    Linq 不是让你代替数据库用的
      

  7.   

    选择linq就是为了后期项目的可维护性(直接映射)
    和开发成本上。
    成本降低了就可以把多余的money投入到硬件上。
    相比之下,用linq的性价比高的多。
      

  8.   

    谢谢大家的讨论,大家对linq和Sql的评价,还有建议对我很有益处!昨天晚上想了一夜,我今天再查一下程序结构,有没有冗余的运算。数据也打算先处理一下,去掉一些冗余数据。另外数据要分类处理,尽量减少查询时的数据量。如果再不行,就上sql了!