Anton hat recht das werden die Lookups sein.
Viele Lookups, dann noch auf anderen Datenbanken, die er ja alle auch noch mal öffnen muss und noch dazu, weil das fast die Regel ist, mit "NoCache", sind kumulierend heftig.
Wenn das in der Anwendung keine dynamischen Daten sind die sich permanent ändern, dann würde ich als erstes "NoCache" weglassen.
Als zweites würde ich versuchen die Datenbank übergreifenden Zugriffe zu reduzieren, vor allem dann wenn es auch noch auf unterschiedliche Datenbanken zulangt. Die kosten nämlich auch noch mal satt Performance.
Dann gibt es noch einen Fehler der häufig gemacht wird, nämlich das Sachen die ich mit einem Zugriff bekommen kann mit mehreren Lookups geholt werden. Also wenn du irgendwo mit ein und demselben Key auf mehrere Spalten einer Ansicht immer wieder zugreifst, dann ist das ganz schelchter Stil. Das kann man anders und besser machen.