Уровень доступа к данным Advantage - PullRequest
0 голосов
/ 10 августа 2010

На работе я пытаюсь реализовать n-уровневую модель в большом уже существующем PHP-приложении.

Я должен убедить своих старших, так как они не видят смысла в дополнительном слое DAиз-за производительности.Теперь код запрашивает Db в бизнес-логике и вычисляет в цикле, получая данные из набора результатов.Низкая производительность.

Я пытался убедить их по очевидным причинам: прозрачность («мы можем читать SQL»), смена базы данных («не произойдет»).

Их аргументв том, что если это делается отдельным слоем, это будет означать, что набор данных должен быть создан и снова зациклен на бизнес-уровне.Калькуляция производительности.Кроме того, создание этой n-уровневой модели будет означать большую работу, в которой нет «реальной» оплаты.

Это проблема с производительностью, и поэтому логическая причина сказать «нет» отдельному уровню DA?

Ответы [ 2 ]

3 голосов
/ 10 августа 2010

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

Вероятно, возникнет вопрос: перевешивает ли преимущество дополнительной скорости преимущество уровня доступа к базе данных, например инкапсуляция специфических знаний SQL, чтобы инженеры могли сосредоточиться на бизнес-логике (уровень домена).

В большинстве случаев вы, вероятно, обнаружите, что производительность уровня абстракции базы данных будет достаточно хорошей, если реализация была выполнена экспертом в этом вопросе. Если все сделано правильно, двойного буфера / циклов можно избежать в значительной степени.

Я подозреваю, что существует лишь небольшая доля приложений (я думаю, не более 20%), где производительность настолько критична, что уровень абстракции не подходит.

Но возможно и гибридное решение: используйте уровень абстракции для 80% модулей, где гибкость и удобство превосходят скорость, и напрямую обращайтесь к базе данных в 20% модулей, где скорость критична.

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

1 голос
/ 24 августа 2011

Уровень доступа к данным является устаревшей технологией по сравнению с существующей технологией, потому что это слишком сложная и научно недоказанная технология, он проверяет каждый и типы данных sql в цикле while и проверяет типы данных. .Net сталкивается с серьезными проблемами в области приложений, такими как выполнениеКоды из одного файла класса в другой файл класса занимают больше времени, потому что сборки .net не связаны друг с другом, доказательством моего аргумента является то, что мы можем запускать Suse linux в 256 МБ Ram очень плавно, но не в Windows 7 или Windows XP, более того..net утверждает, что автоматическое управление памятками, что на самом деле неверно, .net оставляет много неиспользуемой памяти в куче, что приводит к значительной потере производительности в архитектуре DAP, более того, усилия в DAL на 95% больше по сравнению с прямым подключением кбаза данных с использованием хранимой процедуры, не используйте DAL, вместо нее используйте WCF или xml webservices

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...