我的orientdb数据库拥有大约230万条记录。我试图查询所有重复记录(其中有大约750,000)使用声明 - SELECT FROM (select PROP1, PROP2, count(*) as c from vin_data group by PROP1) where c > 1
。当我将限制设置为200左右时,大约需要180秒才能查询(我认为这很慢)。但是,当我将限制设置为750000时,它会给我带来内存不足的错误。我的内存是4GB,我已经设置了Xms64m和Xmx3600m。我已经设置了PROP1和PROP1 + PROP2(复合)的索引。我的问题是 - 对于230万个记录数据库,4GB内存足够了吗?Orientdb GC开销限制超出/内存不足错误和性能下降
3
A
回答
2
对于上面的查询,两个索引都毫无价值,因为它们不在GROUP BY
中使用。没有任何“where”条件,整个班级都会被扫描。您可以尝试通过在语句末尾添加PARALLEL
关键字来优化它。如果你有多个内核,它应该快得多。
无论如何,随着即将发布的v3.0版本(仍在alpha版本之前),新的SQL引擎中已经付出了很多努力,像你这样的查询应该快得多。
相关问题
- 1. 内存不足错误 - 超出GC开销限制
- 2. Firebase Java Lang内存不足错误:超出了GC开销限制
- 3. 超出GC开销限制
- 4. java.lang.OutOfMemoryError:超出GC开销限制
- 5. GC开销超出限制 - 阵列
- 6. 超出GC开销限制 - Android Studio
- 7. Robolectric。 Maven OutOfMemoryError:超出GC开销限制
- 8. Jmeter java.lang.OutOfMemoryError:超出GC开销限制
- 9. 避免“GC开销超限”错误
- 10. 读取文本文件时,GC开销限制超出错误
- 11. 错误:XSSFWorkbook中超出了GC开销限制
- 12. 错误:java.lang.OutOfMemoryError:超出GC开销限制Android Studio
- 13. 错误:未捕获的翻译错误:java.util.concurrent.ExecutionException:java.lang.OutOfMemoryError:超出GC开销限制
- 14. icCube java.lang.OutOfMemoryError:超过GC开销限制
- 15. 阿卡 - GC开销超过限制
- 16. Tomcat7 - GC开销超过限制
- 17. smartgwt超过gc开销限制
- 18. Jenkins给出错误“线程中的异常”主“java.lang.OutOfMemoryError:超出GC开销限制”?
- 19. 超过jmeter的gc内存开销
- 20. 弹出数据JPA OutOfMemoryError:超出GC开销限制
- 21. Apache NiFi - OutOfMemory错误:在SplitText处理器上超出了GC开销限制
- 22. 面对java.lang.OutOfMemoryError:使用Camel Aggregator时超出GC开销限制
- 23. java.lang.OutOfMemoryError:超出GC开销限制Spring Hibernate Tomcat 6
- 24. Java HSQLDB - 批量批量插入:OutOfMemoryError:超出GC开销限制
- 25. Jenkins中的gradle compileJava获取:OutOfMemoryError:超出GC开销限制
- 26. java.lang.OutOfMemoryError:春季工具套件超出GC开销限制
- 27. 代码中超出了GC开销限制
- 28. Java Spark插入CSV:超出GC开销限制
- 29. 风暴阅读文件抛出“Java.lang.OutOfMemoryError:超过GC开销限制”
- 30. 使用迭代时超出了Clojure GC开销限制
我明白了。感谢您的回应。尽管我为了不同的目的而编制了我的课程。那么,考虑到查询的种类,占用4GB RAM的230万条记录是正常的?我现在的目的是从我的数据库中删除重复项。任何你可能会暗示的技巧可以加快我的查询速度? –
顺便说一句,我在24 GB RAM的系统上执行查询,为Xmx分配20GB,并行化8个内核和SSD(如果有的话)。我仍然会超过GC的开销限制。我很确定这是不正常的。任何疑难解答建议?什么时候会发布v3.0? –
不幸的是,'group by'和'order by'工作在RAM中。最终结果集中有多少条记录有多条记录分组?你可以执行这个'SELECT count(*)FROM(从PROP1选择PROP1,PROP2,count(*)作为来自vin_data组的c)其中c> 1'? – Lvca