MarkLogic - Единицы размера базы данных - PullRequest
0 голосов
/ 06 марта 2019

Я использую запрос ниже, чтобы вернуть размер каждой базы данных на сервере MarkLogic.Запрос возвращает данные, но не уверен, какие единицы (КБ / МБ / ГБ и т. Д.) Запрос возвращает.Я пытался найти приблизительный размер каждой коллекции, чтобы сложить ее вручную, но цифры почему-то не совпадают.Применяет ли MarkLogic сжатие по умолчанию к документам?

xquery version "1.0-ml";

declare namespace forest = "http://marklogic.com/xdmp/status/forest";

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 $stand-size
      )
    return $f-size
  )
order by $db-size descending
return $db-name || " = " || $db-size

1 Ответ

0 голосов
/ 07 марта 2019

Показатель единицы измерения, отображаемый в пользовательском интерфейсе администратора на странице состояния кластера, всегда равен МБ, а отображаемые там цифры соответствуют тому, что возвращает ваш код.

MarkLogic на самом деле не применяет сжатие, но имеет сложныйлогика для разделения данных и структурирования информации для каждого документа.Есть некоторая выгода, когда у вас есть повторение в ваших документах.Чем больше повторений, которые также включают имена элементов, тем больше разница.

HTH!

...