Когда я снова и снова быстро нажимаю на db. Тогда его производительность становится узким местом. Что делать?
Похоже, вы должны кэшировать некоторые результаты.В приложениях с высокой нагрузкой кэширование даже на несколько секунд может сильно повлиять на производительность.Существует множество кеш-решений.если это веб-приложение, то встроенный http-контекст .Cache
должен быть в порядке (.NET 4.0 добавляет MemoryCache
, чтобы сделать то же самое удобнее в не-веб-приложениях).
Повторная загрузка данных;Вы упоминаете ORM - в нашем опыте мы находим, что большинство ORM действительно являются узким местом для «горячих» путей кода - тема, о которой я говорю через несколько часов, как это происходит.Поскольку мы столкнулись с этой проблемой, мы написали специально простую, но действительно действительно быструю микро-ORM , dapper-dot-net .Он не такой многофункциональный, как некоторые полные ORM, но если вы пытаетесь быстро загрузить данные для отображения, он идеально подходит.
Другая вещь, конечно, заключается в том, чтобы взглянуть на ваш запроси улучшить производительность.Посмотрите, в частности, на логические чтения IO и откуда они берутся.Вполне может быть, что дополнительный индекс или небольшая денормализация могут существенно повлиять на производительность вашего запроса.