读书人

linq 对oracle的大数据查询有关问题(

发布时间: 2013-03-17 13:48:32 作者: rapoo

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

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

同样的语句如果用ADO的方式直接用sql语句进行查询的话,对这个字段建立索引比不建立索引快很多。
请高手指教一下,这个问题到底在哪里,是不是索引导致的,应该怎么解决!!! 大数据 索引 linq EF oracle
[解决办法]
是插入慢还是查询慢?
数据库肯定要建索引的,大量数据查询一定要分页
[解决办法]
大量数据查询,不管是linq还是ado.net,都应当分页
[解决办法]
如果表的基数大,你查询和插入又频繁的话,你最好把历史数据转移出去

而且数据多,更得建索引
[解决办法]

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

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

读书人网 >.NET

热点推荐