Oracle 12c全文索引维护

问题描述 投票:0回答:1

我们计划在Oracle 12c标准版中使用上下文索引进行全文搜索。

将在其上运行搜索的数据是一个JSON,其中包含一个Channel帖子及其从加载到我们数据库中的第3方工具的回复。(基本上,所有聊天和回复(包括其他属性,例如timestamp / user等)都是存储在此表中。

我们预计每年约有5万行数据,每天每天有100-150 DML。我们的索引当前为“ SYNC ON COMMIT”,那么对优化Oracle Text索引有何建议?

oracle full-text-search oracle12c oracle-text
1个回答
0
投票

[首先,让我以免责声明开头我的回答:目前我正在探索将Oracle Text用作POC的一部分,由于我们仍处于研究阶段,因此我的知识有所限制。此外,我们的数据集每天要进行10万次DML操作的数千万个。

根据我的阅读,Oracle Docs建议为产生DML的索引安排FULL和REBUILD优化,因此我目前在我们的开发环境中实现了以下内容。

execute ctx_ddl.optimize_index('channel_json_ctx_idx', 'FULL'); --run daily
execute ctx_ddl.optimize_index('channel_json_ctx_idx', 'REBUILD'); --run weekly

我无法想象您发现的数据集确实会使索引变得零散并导致性能问题。您可能不如我所提到的那样减少频繁的优化。

您甚至可以放弃计划优化并确定性能基准。如果您看到它开始退化,请记下时间跨度,也许还要注意DML操作的数量以供参考。然后运行“ FULL”。然后测试性能。如果性能提高,请创建一个时间表。如果性能没有提高,请运行“ REBUILD”。测试性能。假设性能有所提高,那么您可以在该时间范围内安排“重新构建”,并考虑添加更频繁的“完整”。

© www.soinside.com 2019 - 2024. All rights reserved.