web-dev-qa-db-fra.com

La requête est rapide mais le rapport est lent: comment déboguer ceci?

J'exécute SSRS 08. Ma requête a quatre paramètres (tous les varchars). Je peux exécuter la requête via le studio de gestion, qui s'exécute en moins de 10 secondes. J'obtiens les mêmes performances si j'exécute la requête dans le concepteur de requêtes de Visual Studio.

Cependant ... si j'essaie de prévisualiser le rapport ou de l'exécuter une fois déployé, le rapport prend parfois plus de 5 minutes. J'ai exécuté une trace et la requête semble être rapidement entrée/sortie côté serveur SQL. Comment puis-je trouver où/pourquoi je perds cette performance? J'ai essayé/vérifié jusqu'ici ce qui suit:

  • Aucune image n'est référencée dans le rapport
  • Pas de regroupement/tri en dehors de la procédure stockée
  • Puisqu'il s'agit d'un rapport simple, je l'ai reconstruit avec le même résultat (pour vérifier s'il ne s'agit pas d'un rapport corrompu).
  • a exécuté la trace SQL quand j'ai exécuté le rapport pour m'assurer que la requête n'avait pas de problèmes

Sur la base de quelques suggestions avant de réécrire la requête pour utiliser des variables au lieu de paramètres tels que

    -- ...
    -- Note: @Parameter is a varchar(40) 
    -- ...
    declare @Var as varchar(40) 
    set @var=@parameter

    select * from table where fieldvalue=@var

A suivi la trace et ce n'est pas un problème du côté de la requête.

16
Ahd

J'ai eu le problème de sortie de rapport HTML sur le rapport récupérant 32000 lignes. Dans mon cas, je devais activer la «pagination interactive» pour permettre à l'utilisateur de voir la première page et capable de générer un fichier Excel. Le pro est que la première page semble rapide et que l’utilisateur peut générer une exportation vers Excel ou PDF, l’inconvénient est que cet utilisateur ne peut faire défiler que la page actuelle. Si l'utilisateur veut voir plus de contenu, il doit utiliser les boutons de navigation au-dessus de la grille. Dans mon cas, l'utilisateur a accepté ce comportement car l'exportation vers Excel était plus importante.

Pour activer la «radiomessagerie interactive», vous devez cliquer sur la zone disponible dans le volet de rapport et modifier la propriété «InteractiveSize»\«Hauteur» au niveau du rapport dans le volet de propriétés. Définissez cette propriété sur une valeur différente de 0. J'ai défini la valeur 8,5 pouces dans mon cas. Assurez-vous également que vous avez décoché la propriété «Conserver ensemble sur une page si possible» au niveau du tableau matriciel (cliquez avec le bouton droit de la souris sur le tableau matriciel, puis sur «Propriétés du tableau matriciel», puis sur «Général»\«Options de saut de page»).  Report Properties pane

2
Alexey Sukhanov

Je résolvais un problème similaire il y a quelque temps et il s'est avéré que cela était lié au navigateur que j'utilisais pour afficher le rapport. Si le rapport renvoie beaucoup de données à l'écran, envisagez de le diviser en plusieurs pages s'il n'est pas déjà configuré de cette façon.

Pourquoi Business Intelligence Studio charge-t-il les rapports plus rapidement que Report Server

0
Frank Pearson

Je pense avoir trouvé ma réponse sur un fil social.msdn.Microsoft.com http://social.msdn.Microsoft.com/Forums/en-US/sqlreportingservices/thread/1e34dc76-4d78 -4376-89b0-7c381ed82726/

J'ai décoché le paramètre "Conserver ensemble" et il affiche maintenant les aperçus provenant du serveur et je peux exporter le rapport. Beaucoup d'amélioration

0
Ahd