我们正在使用MarkLogic 9.0.8.2
我们已经设置了MarkLogic集群,吸收了约18M个XML文档,创建的索引很少,例如Fields,PathRange等。
现在在使用配置,索引,相同记录数设置另一个环境时,但是我不明白为什么数据库状态页上的总大小与以前的环境不同。
因此,我开始比较两个集群的数据库状态页面,在这里我可以看到每个目录林/副本目录林以及所有目录的大小。
所以在这种情况下,我想知道每个的大小
还想知道(而不是通过管理界面扩展)给定数据库中的总索引
管理界面中的选项,或者通过xQuery也可以。
答案 0 :(得分:1)
MarkLogic不会将索引大小与数据库大小分开细分。原因之一是因为数据与Universal Index一起存储。
您可以通过一次创建一个索引,并在重新索引器运行之前和之后检查其大小来估计其他索引的大小,并且删除的片段为merged out。通常,尝试确定确切的索引大小不会带来很多好处,因为它们提供的好处通常会超过存储成本。
很难确切说明为什么存在尺寸差异。一个常见的原因是每个数据库中已删除片段的数量。删除的片段是已经marked for deletion(通常由于更新,删除或其他更改)的数据。删除的片段将继续消耗数据库空间,直到它们被合并为止。默认情况下会发生这种情况,也可以在目录林或数据库级别手动启动它。
可以通过Admin UI,查询控制台(QConsole)或通过MarkLogic REST管理API(RMA)端点来确定数据库大小和配置的索引。 QConsole支持多种语言,但是服务器端Javascript和XQuery是最常见的。 RMA可以XML或JSON返回结果。
数据库大小:
配置的索引:
答案 1 :(得分:0)
for $db-id in xdmp:databases()
let $db-name := xdmp:database-name($db-id)
let $db-size :=
fn:sum(
for $f-id in xdmp:database-forests($db-id)
let $f-status := xdmp:forest-status($f-id)
let $space := $f-status/forest:device-space
let $f-name := $f-status/forest:forest-name
let $f-size :=
fn:sum(
for $stand in $f-status/forest:stands/forest:stand
let $stand-size := $stand/forest:disk-size/fn:data(.)
return $space
)
return $f-size
)
order by $db-size descending
return $db-name || " = " || $db-size