Вопрос

Я использую шаблон репозитория L2S в своем веб -приложении ASP.NET 3.5. Но я не совсем доволен спектаклем, опытным в Live. Я искал Google и наткнулся на кэширование SQL, используя класс SQLCachedEpendency. Но у меня нет ни одного учебника или ссылки, которая объяснит, как использовать его в моем сценарии.

Так что помогите мне, ребята ... любая помощь или руководство будут высоко оценены.

Пожалуйста, используйте несколько примеров кодов или онлайн -ссылок ....

Заранее спасибо

Обновление: мой репозиторий

public interface IRepository<T> where T : class
{
    T GetById(int id);
    IQueryable<T> GetAll();
    void SaveOrUpdate(T entity);
    void DeleteOnSubmit(T entity);
}
Это было полезно?

Решение

Иногда LINQ-TO-SQL делает запросы неожиданным образом. Вы проверяли, как ваши запросы LINQ переведены в SQL? Используйте SQL Server Profiler (доступен в меню «Инструменты» в SQL Management Server), чтобы проверить сгенерированные запросы. Я написал некоторую информацию об этом здесь.

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

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

Другие советы

Вы не описывали, как вы используете LINQ для SQL со своим репозиторием. По сути, вы повторно используете один и тот же данных DataContext для всех репозиториев, созданных во время одного запроса, или каждый репозиторий получает свой собственный экземпляр DataContext? Если это последнее, вы теряете внутреннюю кэшируемость обработки данных.

Другая область, где можно улучшить производительность, заключается в том, что у вас есть какие -либо часто используемые запросы, которые содержат множество слоев соединений (не только одна таблица выбора). Используя CompiledQuery Здесь резко ускорит ситуацию. Скомпилированные кворики должны генерироваться только в первый раз, когда они используются, в противном случае запрос перекомпилируется каждый раз, когда он используется.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top