Use cached attribute list when fetching preferences
Attributes have, since their initial implementation, use LoadByNameAndObject. However, when the user does not have any preferences stored, this can be very expensive, as DBIx::SearchBuilder::Record::Cachable does not cache negative results -- that is, that the matching Attribute row does not exist. This means that every request for RT->Config->Get( '...', $session{CurrentUser}) results in an identical database query. Use the ->Attributes method, which caches the set of user attributes. This, in itself, is not sufficient to cause the preferences to be cached; the the next commit.
Showing
Please register or sign in to comment