linq 对oracle的大数据查询问题(单表千万级数据)
数据库用的是oracle 11g
有一个表中存在千万级的数据。
现在使用linq 通过Entity Framework对这个表进行查询
现在有一个条件例如 id=‘222’(不是主键)进行查询表中的数据。后面不带任何排序等,就是简单的待条件查询。发现如果查找的数据是最新插入的会很慢,查询越早插入的数据越快。
同时在数据库中对这个字段建立索引和不建立索引效果没有区别。
同样的语句如果用ADO的方式直接用sql语句进行查询的话,对这个字段建立索引比不建立索引快很多。
请高手指教一下,这个问题到底在哪里,是不是索引导致的,应该怎么解决!!!
大数据
索引
linq
EF
oracle
------解决方案--------------------是插入慢还是查询慢?
数据库肯定要建索引的,大量数据查询一定要分页
------解决方案--------------------大量数据查询,不管是linq还是ado.net,都应当分页
------解决方案--------------------如果表的基数大,你查询和插入又频繁的话,你最好把历史数据转移出去
而且数据多,更得建索引
------解决方案--------------------
没有索引慢是必然的
------解决方案--------------------哎呀,Oracle 用Entity Framework,你不是自找麻烦嘛。建议使用 ALinq
------解决方案--------------------检查下EF生成的SQL语句,和直接写的有什么区别