Oracle文本索引(Context)持续增长
在我的应用程序中,我需要从不同的表中搜索许多 varchar 列。
因此,我创建了一个物化视图,在其中连接这些列,因为它们超过了 4000 个字符,所以我将它们与 TO_CLOBS(column1) || 连接起来。 TO_CLOB(列)... || TO_CLOB(N 列)。
查询比较复杂,所以视图的刷新是按需完成的。我们每 2 分钟刷新一次。
CONTEXT 索引是使用sync on commit 参数创建的。
然后索引每两分钟同步一次。
但是当我们运行优化索引时,它不会对索引进行碎片整理。所以它不断增长。
在 ctx_user_indexes 中,我看到优化如何减少 docid 计数,但令牌并没有缩小。但是,当我在索引优化中使用 REBUILD 参数时,它可以正常工作(减少 DR$TEXT_INDEX_IDX$I 中的行数)。
有什么想法吗?
谢谢,并为我糟糕的英语感到抱歉。
In my application I needed to search through many varchar columns from differents tables.
So I created a materialized view in which I concatenate those columns, since they exceed the 4000 characters I merged them concatenating the columns with the TO_CLOBS(column1) || TO_CLOB(column)... || TO_CLOB(columnN).
The query is complex, so the refresh is complete on demand for the view. We refresh it every 2 minutes.
The CONTEXT index is created with the sync on commit parameter.
The index then is synchronized every two minutes.
But when we run the optimize index it does not defrag the index. So it keeps growing.
In ctx_user_indexes I see how optimize drops the docid count but tokens doesnt shrinks. But when I use the REBUILD parameter in the index optimization it works correctly (drops down number of rows in DR$TEXT_INDEX_IDX$I).
Any idea ?
Thanks, and sorry for my poor english.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
通过添加作业来减少行数是可行的。
By adding a job to decrease the number of rows works.