Как прекратить «рост» b_sale_viewed_product Битрикс 17?
В данной таблице хранятся просмотренные товары пользователей.
В настройках модуля «Интернет магазин» есть возможность изменить «Время хранения просмотренных товаров (дней)» и «Максимальное количество просмотренных товаров пользователя».
Соответственно уменьшите время для хранения.
Функция которая отвечает за очистку таблицы:public function _ClearViewed()
{
    global $DB;
 
    $viewed_time = COption::GetOptionString("sale", "viewed_time", "90");
    $viewed_time = IntVal($viewed_time);
 
    $strSql =
        "DELETE ".
        "FROM b_sale_viewed_product ".
        "WHERE TO_DAYS(DATE_VISIT) < (TO_DAYS(NOW()) - ".$viewed_time.") LIMIT 1000"; $db_res = $DB->Query($strSql, false, "File: ".__FILE__."
Line: ".__LINE__);
 
    return true;
}
Т.е. по сути можно напрямую код вызвать в БД
Возможно в настройках модуля ИМ стоит не адекватное время хранения просмотренных товаров.
Так же попробуйте очистить таблицу и посмотреть как быстро она будет наполняться вновь.
https://thisis-blog.ru/problema-razdutiya-tablic-b...
Можно вообще выключить в модуле ИМ сохранение данных в эту таблицу. Параметр называется  "Сохранять просмотренные товары каталога"