Oracle10g数据库/表调优

时间:2009-09-08 07:53:55

标签: asp.net oracle

我在ASP.NET网站上使用Oracle Datbase 10g标准版。我有一个表,每天都会填充数据(每天大约10000行)。该表中数据的增长率为100%,即每年行数将增加前一行加10000行。

这是图形和水晶等报告的主要表格。

我知道数据增加时,选择查询性能会降低。 在这里,我希望您的帮助可以调整我的Oracle数据库/表,以便选择查询的性能始终保持良好状态?

我在oracle中不是很好。请帮帮我..............

3 个答案:

答案 0 :(得分:5)

实际上,没有理由在表格增加时性能降低。如果您的查询使用索引,要检索单个行或焦点集(即INDEX RANGE SCAN),那么随着表的增长,性能应保持稳定。这部分取决于您的数据的配置文件。具有低聚类因子的索引将继续执行,但具有高聚类因子的索引将降级。 Find out more

您几乎肯定会遇到问题的是运行不使用索引或使用INDEX FAST FULL SCAN的查询。随着表的增长,这些查询显然会随着时间的推移而降级。要处理该场景,您可以构建预先聚合数据的物化视图。

最好的一般建议是

  1. 阅读Oracle online documentation。很漂亮 完整。
  2. 开始对您的查询进行基准测试 性能现在(使用Statspack)。 那样你就可以做到 事物的趋势分析和现场 开始出错了。

答案 1 :(得分:2)

简单,确保您的索引与您的查询匹配。检查你的解释计划,通常的oracle东西 - 阅读这个主题,你会发现很多信息!

这取决于查询的运行方式。如果您的查询只能回收数月的数据,那么按月分区可以大大受益。然后你只会达到你本来会做的数据的十二分之一。但如果查询不受限制,那么这可能没有帮助。

最后确保您没有阅读所有数据只是为了在报告中对其进行总结。因此,如果您这样做,请考虑创建一个通宵作业来创建聚合表,然后进行查询。

哦;此外,如果插入速度是一个问题,您可能希望保持索引数量下降 - 如果是这种情况,您可能需要一个单独的报告表到您插入实时数据的那个,然后在夜间或某些地方同步数据

答案 2 :(得分:1)

生成额外的测试数据并测试性能是否确实降低。也许你什么都不担心:)