NUM_ROWS
показывает количество строк на основе последнего анализа, поэтому вы не должны полагаться на него. Я предлагаю запустить подсчет, например.
SELECT COUNT(*)
FROM your_table PARTITION FOR (DATE '2016-04-01')
или
SELECT COUNT(ROWNUM)
FROM your_table PARTITION FOR (DATE '2016-04-01')
WHERE ROWNUM <= 1
Он должен быть намного быстрее, чем DBMS_STATS.GATHER_TABLE_STATS
(если у вас есть какой-либо индекс в этой таблице)
Мы можем вычислить все три части вручную, так же как в этот ответ:
sprintf("%02d:%02d:%02d", x %/% 3600, (x %% 3600) %/% 60, x %% 60)
# [1] "38:49:25" "88:50:17" "145:45:29" "00:24:51" "58:50:31" "07:39:31"
# [7] "04:14:14" "118:45:46" "87:13:36" "02:36:12"
Поскольку один час имеет 3600 секунд, x %/% 3600
дает количество полных часов 112] дает количество полных минут в оставшееся время, а x %% 60
- количество оставшихся секунд.