Ответ 1
Я использовал SqlObject широко как часть TurboGears 0.9, но переключился на SqlAlchemy + эликсир как на замену для SqlObject еще до того, как TurboGears сделал.
Обратите внимание, что даже без эликсира SqlAlchemy имеет собственные определения класса декларативного стиля: http://docs.sqlalchemy.org/en/rel_1_0/orm/extensions/declarative/index.html
Если вы не уверены в производительности, не стоит слишком много работать, чтобы отказаться от использования эликсира в качестве замены в вашем приложении и быстро выполнить профилирование. Я предполагаю, что различия в производительности между SqlObject/SQL/SQLA + elixir бледнеют по сравнению с временем, потраченным на запись и чтение данных в/из базы данных.
Обратите внимание, что SqlAlchemy дает гораздо больший контроль над нетерпением/ленивой загрузкой relationships и , который помогает во многих случаях отслеживать объем памяти и производительность вашего приложения.
Вероятно, наиболее веская причина для переключения заключается в том, что SqlAlchemy заключается в том, что он активно развивается (хотя я уже не слишком много знаю о статусе dev в SqlObject). Как вторичная причина, вы можете быть уверены, что, если ваши потребности будут более сложными, вполне вероятно, что есть кто-то еще, кто уже пытался взломать квадратную привязку объектов Python в круглое отверстие SQL с помощью SqlAlchemy.