Что это значит, что Linq To SQL не масштабируется? - PullRequest
3 голосов
/ 09 октября 2009

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

Спасибо, Avi

Ответы [ 3 ]

2 голосов
/ 09 октября 2009

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

2 голосов
/ 09 октября 2009

Это скорее функциональная масштабируемость. Если вы посмотрите на свои доменные объекты, сгенерированные LINQ, вы заметите много раздувания, которое может оказаться ненужным, если вы перейдете на другую среду хранения, такую ​​как NHibernate. Один из вариантов - развернуть свой собственный слой домена, который является более абстрактным, и сопоставить созданный вами домен с абстрактным. Сохранение уровня домена «без раздувания» позволяет повторно использовать его с различными средами сохранения. L2S не очень хорош в этом. Другие вещи могут включать производительность, но я думал, что это было улучшено в более поздних версиях?

1 голос
/ 09 октября 2009

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

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

Но каждая абстракция имеет пределы.

...