2014-01-23 5 views
0

У меня есть довольно маленькое веб-приложение CRUD с некоторыми отчетами о выводах. Отчеты создаются с использованием представлений базы данных DROOLS и Oracle. Мне трудно понять, что делают представления, и практически не имеет шансов изменить вид (некоторые представления составляют около 100 строк кода запроса). Является ли это лучшей практикой, хранящей данные, представляющие интерес, в представлении? Я не очень опытный пользователь базы данных, но я пытаюсь выяснить, требуется ли изменение архитектуры или мне просто нужно копаться в базах данных, чтобы лучше понять представления базы данных.База данных веб-приложений

+0

Нет ничего плохого в том, чтобы использовать представления базы данных как таковые. Как вы описали, они инкапсулируют некоторые сложные запросы. Где еще вы могли бы поставить те же самые запросы? Обратите внимание, что вы не храните ничего в представлении. Это скорее виртуальная таблица. – Steve

+0

Мне было бы проще включить логику в конец java. Я бы указал более простой запрос во время транзакции. Обратите внимание, что я использую структуру Grails, Hibernate и GORM. Я хотел бы написать методы обслуживания для некоторых сложных запросов и просто вызвать их по мере необходимости. Что-то не так с этим? Я понимаю, что, вероятно, это связано с производительностью, но из того, что я обнаружил при тестировании своего веб-приложения, представления базы данных работают довольно медленно. –

+0

В этом нет ничего плохого. В современных базах данных нет серьезных последствий для этого, поскольку они автоматически оптимизируют часто называемые запросы. Таким образом, нет большого улучшения производительности при использовании представлений или хранимых процедур. Хотя, если они являются «материализованными представлениями», они кэшируют результаты и, как таковые, могут быть значительно быстрее, чем код в вашем приложении. – Steve

ответ

0

Я закончил использование именованных запросов в своих классах доменов, чтобы сделать код более управляемым. Я также разбил много просмотров на более мелкие запросы, чтобы я мог точно определить шею бутылки и применить кэш. Я думаю, что это чудеса, имеющие запросы в классе домена, в том, что касается управления кодом и помогли мне разобраться в узких местах.

Смежные вопросы