Следующее действительно быстро (менее 1 секунды для таблиц с сотнями миллионов записей) при условии, что ваша статистика актуальна (что настоятельно рекомендуется).
select
(
(select u.NUM_ROWS from user_tables u where u.TABLE_NAME='JOBS')
-
(select u.NUM_ROWS from user_tables u where u.TABLE_NAME='COUNTRIES')
) DIFF
from dual
DIFF
----------
-6
Пример кода применяется к схеме HR ORACLE.Вы можете изменить имена таблиц.
Обе таблицы могут не обязательно иметь одну и ту же схему.
Редактировать комментарий Джеффри Кемпа:
Если таблицы в разных схемах, вы должны использовать dba_tables
, если у вас есть права доступа.
Просто добавьте имя схемы к имени таблицы.то есть HR.JOBS