我有一个用 Play Framework 1.2.5 编写的应用程序,我使用 H2 文件作为数据库。
该应用程序有一个“销售”表,每天大约有 1000 行。我有大约 5 年的数据(通常会有 2-3 年的数据可用)所以基本上我的测试机中有一个包含 150 万+数据的表格。
我的问题是,客户要求提供诸如“给我日期之间的总和 os 销售额以及 group bu 产品类型和销售类型”之类的数据。所以我必须做一些类似于2组和日期范围的选择查询。
随着表变大,选择查询性能急剧下降。我该怎么做才能获得更好的结果?
我创建了另一个表,其中汇总了每小时、每天和每月的销售额,但是我必须从销售额表中搜索一些功能。
第一个应用程序是用 c# (asp.net webservice) 和 ms-sql 服务器编写的,其中存储过程作为数据库,这些操作只需几秒钟。而且我有相同的数据,即使我没有使用任何汇总表来更快地进行查询。
我知道,专用服务器应用程序总是比嵌入式服务器快,但我认为必须有一种方法来提高此查询的性能。
我可以对 H2 引擎进行任何优化吗?
由于并发问题,我必须在 H2 服务器上启用“MVCC”,这可能是性能问题吗?
感谢您阅读并花费您的时间。
* *编辑对于使用 Play Framework 1.2.x 的人:
我刚刚在要添加到索引的每一列上添加了 @Index(name="sales_columnname_index") 注释,现在 H2 引擎的工作速度甚至比我的旧 mssql+asp.net 应用程序还要快。