日期:2014-05-20  浏览次数:21167 次

linq 对oracle的大数据查询问题(单表千万级数据)
数据库用的是oracle 11g 
有一个表中存在千万级的数据。

现在使用linq 通过Entity Framework对这个表进行查询
现在有一个条件例如 id=‘222’(不是主键)进行查询表中的数据。后面不带任何排序等,就是简单的待条件查询。发现如果查找的数据是最新插入的会很慢,查询越早插入的数据越快。
同时在数据库中对这个字段建立索引和不建立索引效果没有区别。

同样的语句如果用ADO的方式直接用sql语句进行查询的话,对这个字段建立索引比不建立索引快很多。
请高手指教一下,这个问题到底在哪里,是不是索引导致的,应该怎么解决!!!
大数据 索引 linq EF oracle

------解决方案--------------------
是插入慢还是查询慢?
数据库肯定要建索引的,大量数据查询一定要分页
------解决方案--------------------
大量数据查询,不管是linq还是ado.net,都应当分页
------解决方案--------------------
如果表的基数大,你查询和插入又频繁的话,你最好把历史数据转移出去

而且数据多,更得建索引
------解决方案--------------------
引用:
是查询,而且现在不是分页的问题。
问题在于我查询的数据只有一条数据,如果这条数据是新插入的那么查询起来会很慢,如果是最开始插入的,就很快。
总感觉是用linq查询时,对这个条件创建的索引没有起到效果。

没有索引慢是必然的
------解决方案--------------------
哎呀,Oracle 用Entity Framework,你不是自找麻烦嘛。建议使用 ALinq
------解决方案--------------------
检查下EF生成的SQL语句,和直接写的有什么区别