gpt4 book ai didi

java - 调整 Jackrabbit 数据模型(VERSION_BUNDLE 表)

转载 作者:行者123 更新时间:2023-11-30 06:29:59 26 4
gpt4 key购买 nike

作为我们应用程序的一部分,我们使用 Jackrabbit (1.6.4) 来存储文档。我们的应用程序检索到的每个文档都放入 Jackrabbit 中的文件夹结构中,如果不存在则创建该文件夹结构。

我们的 DBA 注意到以下查询针对持有 Jackrabbit 模式的 Oracle (11.2.0.2.0) 数据库执行了很多次 - 每小时超过 50000 次,导致数据库上出现大量 IO。事实上,就运行时间而言,它是 IO 排名前 5 的 SQL 语句之一 (97% IO):

    select BUNDLE_DATA from VERSION_BUNDLE where NODE_ID = :1

查看数据库,您会注意到该表最初仅包含一条记录,包括 node_id(数据类型 RAW)键和 DEADBEEFFACEBABECAFEBABECAFEBABE 值以及然后是 bundle_data BLOB 列中的几个字节。稍后,将添加更多记录和其他数据。

该表的 SQL 如下所示:

CREATE TABLE "VERSION_BUNDLE"
(
"NODE_ID" RAW(16) NOT NULL ENABLE,
"BUNDLE_DATA" BLOB NOT NULL ENABLE
);

我有以下问题:

  • 为什么 Jackrabbit 访问这张表的频率如此之高?
  • 是否有 Jackrabbit 调整选项可以加快速度?
  • Jackrabbit 是否更改了 BUNDLE_DATA 值,还是每次访问存储库时只读取它?
  • 是否有任何方法可以调整数据库架构以使其更好地处理这种情况?

更新:该表最初仅包含一条记录,随着时间的推移由 Jackrabbit 内部决定添加其他记录。在大多数情况下,访问似乎仍然是只读的,因为插入或更新语句没有被报告为以高数字运行。

最佳答案

这是物理 I/O 还是逻辑 I/O?对于经常读取的数据,如果 block 从缓存中老化的速度足够快以致于需要物理 i/o,我会感到惊讶。

关于java - 调整 Jackrabbit 数据模型(VERSION_BUNDLE 表),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10979322/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com