Распространено ли создавать представление для каждой из этих таблиц и выбирать только записи, для которых IsActive имеет значение true?Или это перебор?
Не столько перебор, сколько сомнительный дизайн.
Подход часто называют «мягким» удалением, когда запись помечается с определенным статусом.контролировать его видимость.Это экономит место, но позволяет легко восстанавливать записи - иначе у вас останется восстановление из резервных копий (или, что еще хуже, из журналов транзакций).
Я бы не использовал представление о том, что должно быть всам стол.Нематериализованное представление - это просто макрос, который заменяет ссылку на представление запросом, который он инкапсулирует - для каждого экземпляра в данном запросе.Это дает небольшой выигрыш в производительности, поскольку основной запрос, скорее всего, будет кэширован.Материализованное представление (индексированное представление в терминологии SQL Server) было бы лучшей идеей, чем нематериализованное представление, но вы могли бы сделать то же самое, просто проиндексировав столбец состояния (2008+, может быть рассмотрен фильтрованный индекс).в самой таблице тоже без беспорядка.Это зависит от ситуации, поэтому вам, в конечном счете, придется самостоятельно проверить и проверить данные на основе данных и настроек.
Разделение исходной таблицы на основе состояния - это еще одна возможность для выполнения запроса, но она все же требует спецификации в запросе.