Запросить диапазон разделов в DB2

Я хочу найти начальную и конечную точки раздела диапазона DB2 с помощью запроса. Можно ли запросить эти значения из любой из системных таблиц?


Немного больше контекста для моей проблемы:
Мы изменили некоторые из наших огромных таблиц, чтобы они были разделены на ежедневные части:

CREATE TABLE orders(id INT, CRDTTM TIMESTAMP, …)
PARTITION BY RANGE(CRDTTM)
(
    (STARTING ('2014-10-01') ENDING ('2015-15-31') EVERY 1 DAY)
)  

Можно ли впоследствии запросить начальную и конечную точки с помощью обычного SQL? Мне нужно изменить хранимую процедуру, которую мы используем, чтобы она фильтровала строки, которые имеют отметку времени за пределами этого диапазона (таблицы находятся в хранилище данных, которое загружается только данными за короткий период времени).

Что касается среды:
Мы используем DB2 LUW Версии 10.5 на сервере SUSE Enterprise 11. Рассматриваемые таблицы основаны на строках.


person borst.philipp    schedule 26.11.2014    source источник


Ответы (2)


Посмотрите на таблицу SYSCAT.DATAPARTITIONS, особенно на столбцы LOWVALUE, HIGHVALUE и LOWINCLUSIVE и HIGHINCLUSIVE.

person Ian Bjorhovde    schedule 26.11.2014
comment
Спасибо, это сработает, если я получу значения Max/Min для каждой таблицы. - person borst.philipp; 27.11.2014

Эта информация находится в системных каталогах. Проблема только в том, чтобы найти, где и как. Само выражение раздела находится в удачно названном файле syscat.datapartitionexpression.

Воссоздание информации о конкретном разделе требует объединения нескольких представлений. Пример запроса здесь может помочь.

Вы должны найти документация полезна.

person Gordon Linoff    schedule 26.11.2014
comment
Спасибо за совет. Я искал в системных каталогах, но не смог найти нужные мне данные. syscat.datapartitionexpression содержит только имя столбца, а мне нужны верхний и нижний пределы диапазона раздела. - person borst.philipp; 26.11.2014
comment
@borst.philipp . . . Я ожидаю, что поле DATAPARTITIONEXPRESSION действительно будет содержать выражение. Вам нужно будет проанализировать его, чтобы получить минимальное и максимальное значения. - person Gordon Linoff; 26.11.2014