У меня есть база данных, я должен поддерживать совместимость с SQL Server 2005, и я думаю о способах снижения сложности и решения проблем с производительностью.
Моя база данных, как и большинство других, заполнена данными, это много данных и есть много запросов там.У меня есть много хранимых процедур, которые развивались (в течение некоторого времени), чтобы удовлетворить требования бизнеса.И это в основном нормально, но я сталкиваюсь с проблемами производительности, и мои запросы становятся все более сложными для управления.
На первый взгляд, я не думаю, что с моей моделью данных что-то не так, это не так.Абсурдно нормализовано (мы уже денормализуем некоторые вещи), но я не могу написать и выполнить эти быстрые запросы для запуска запросов AJAX моего веб-интерфейса, потому что все ограничения, которые кажутся беспорядочными, существуют здесь и там.
Итак, я подумал об этом и думаю, что хочу организовать свою базу данных по кольцам.Позвольте мне объяснить.
По сути, в самом внутреннем кольце вы найдете наиболее специализированный набор данных.Эти таблицы полностью денормализованы и были построены путем агрегирования данных из внешних колец, чтобы убедиться, что конкретные запросы выполняются действительно быстро.
Самое внешнее кольцо идеально "немое" и в основном простодействительно плохое место для размещения вещей.
Между внешним и внутренним находится в основном ваша концептуальная модель, они вытягивают из других колец или толкают во внутренние кольца, и именно здесь вы очищаете свои данные иубедитесь, что это правильно.
Данные могут передаваться только от внешнего кольца к внутреннему кольцу.
Я не хочу использоватьтриггеры для поддержания согласованности различных колец, вместо этого у меня есть службы и задания, которые прослушивают, опрашивают и запускают через регулярные промежутки времени для обеспечения возможной согласованности, пересекают доску.
Теперь этогде я прошу совета и надеюсь получить некоторую информацию от опытных людей из базы данных.Я уверен, что таким образом я смогу получить больше из своей базы данных.И это позволит мне решать проблемы сложности и производительности на разных этапах.Может быть, есть общее название для того, что я делаю, или, может быть, это и есть движение NoSQL, но я не знаю, на самом деле, идея мне нравится, но если я ухожу, я 'Я хотел бы услышать об этом, прежде чем я совершу ошибку ...