Запросить диапазон разделов в 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. Указанные таблицы основаны на строках.
2 ответа
Посмотри на стол SYSCAT.DATAPARTITIONS
конкретно LOWVALUE
, HIGHVALUE
и LOWINCLUSIVE
а также HIGHINCLUSIVE
колонны.
Эта информация находится в системных каталогах. Задача - просто найти где и как. Само выражение раздела находится в метко названном syscat.datapartitionexpression
,
Воссоздание информации о конкретном разделе требует объединения нескольких представлений. Пример запроса здесь может помочь.
Вы должны найти документацию полезной.