Есть ли практический смысл в выделении SQL таблиц, процедур и т. д. модулей в отдельные БД? Снизится ли нагрузка на БД, сервер?
Добрый день!
Есть ли практический смысл в выделении таблиц, процедур и т. д. модулей в отдельные БД? Снизится ли нагрузка?
Или же это не имеет смысла, и даже лучше все хранить в одной большой БД?
Как минимум, потому что это разные сущности и для операций с каждой из них серверу нужно выделить какое-то количество памяти.
Подобное выделение имеет смысл, если количество операций с двумя базами одновременно не большое.
Вообще, в корпоративных базах данных несколько сотен (а то и тысяч) таблиц это нормальное явление.
Если нужно увеличить производительность, то для этого есть другие способы:
1. стандартные: индексация таблиц, дефрагментация индексов, обновление статистики.
2.если не хватает стандартных способов: отделение физического расположения журнального файла от файла базы данных, перемещение наиболее часто используемых таблиц в отдельную storage group и помещение этой группы на более быстрые диски (SSD).
На самом деле, выделение таблиц в отдельную базу данных вам вряд ли даст вообще какое-то ощутимое изменение в быстродействии сервера БД. Поскольку накладные расходы на работу с двумя базами, конечно больше, но не настолько критично, чтоб это сказывалось на производительности.
Принципиально зависит от хранения. Если все это еще физически разнесено на разные независимые дисковые подсистемы и узким местом является именно она - то эффект будет.