2011-09-12 11 views
15

Sto utilizzando SSRS 08. La mia query ha quattro parametri (tutti i varchar). Posso eseguire la query attraverso lo studio di gestione e funziona in meno di 10 secondi. Ottengo le stesse prestazioni se eseguo la query in Progettazione query di Visual Studio.La query viene eseguita rapidamente ma i rendering del report sono lenti: come eseguire il debug di questo?

Tuttavia ... se cerco di visualizzare l'anteprima del report o di eseguire effettivamente il report dopo che è stato distribuito, il report effettivo richiede talvolta più di 5 minuti. Ho eseguito una traccia e la query sembra essere in/out del lato server SQL rapidamente. Come posso trovare dove/perché sto perdendo questa performance? Ho provato/controllato finora la seguente:

  • Nessuna immagine viene fatto riferimento nel rapporto
  • No raggruppamento/ordinamento al di fuori della stored procedure
  • Dal momento che è un rapporto di dritto in avanti ho ricostruito con lo stesso risultato (per verificare se non si tratta di un problema di un rapporto danneggiato).
  • corse traccia SQL quando ho eseguito il report per assicurarsi che la query non ha avuto problemi

Sulla base di alcuni suggerimenti prima ho riscritto la query per utilizzare le variabili invece di parametri in questo modo

-- ... 
    -- Note: @Parameter is a varchar(40) 
    -- ... 
    declare @Var as varchar(40) 
    set @[email protected] 

    select * from table where [email protected] 

Ho eseguito la traccia e non è un problema sul lato query.

+2

È possibile eseguire la query di seguito per scoprire dove si trova il sovraccarico: SELECT Nome, TimeDataRetrieval, TimeProcessing, TimeRendering \t, TimeDataRetrieval + TimeProcessing + TimeRendering AS TotalTime, Formato, Parametri, nome utente, timeStart DA dbo .ExecutionLog L WITH (NOLOCK) \t INNER JOIN dbo.Catalog R WITH (NOLOCK) ON L.ReportID = R.ItemID WHERE Name = '' - aggiorna i parametri per il nome del report AND Format> '' ORDER BY Nome I tempi sono per il recupero dei dati delle query, l'elaborazione dei report e il rendering. Se tutte le misure sono normali, il problema è da qualche altra parte, non la segnalazione di servizi – niktrs

risposta

0

Ho risolto un problema simile qualche tempo fa e risulta essere correlato al browser che stavo usando per visualizzare il rapporto. Se il report restituisce molti dati sullo schermo, prendi in considerazione la possibilità di dividerlo in più pagine se non è già configurato in questo modo.

Why Does Business Intelligence Studio Load Reports Faster than the Report Server

+0

Non sono sicuro se questo si applica al mio. Non riesco nemmeno ad avere un'anteprima in BIDS sotto i 5-10 minuti. Solo la query viene eseguita rapidamente nella finestra di progettazione query BIDS (<10 s). – Ahd

+0

Penso di aver trovato la mia risposta su un thread social.msdn.microsoft.com http://social.msdn.microsoft.com/Forums/en-US/sqlreportingservices/thread/1e34dc76-4d78-4376-89b0- 7c381ed82726/ Ho deselezionato l'impostazione "Mantieni insieme" e ora effettivamente le anteprime provengono dal server e posso esportare il rapporto. – Ahd

1

Ho riscontrato un problema di output HTML sul rapporto che recuperava 32000 righe. Nel mio caso ho dovuto attivare "Interactive Paging" per consentire all'utente di vedere la prima pagina e in grado di generare file Excel. Il professionista è che la prima pagina appare veloce e l'utente può generare l'esportazione in Excel o PDF, il contro è che l'utente può scorrere solo la pagina corrente. Se l'utente vuole vedere più contenuti, deve utilizzare i pulsanti di navigazione sopra la griglia. Nel mio caso l'utente ha accettato questo comportamento perché l'esportazione in Excel era più importante.

Per attivare "Paging interattivo" è necessario fare clic sull'area libera nel riquadro del report e modificare la proprietà "InteractiveSize" \ "Altezza" a livello di report nel riquadro Proprietà. Imposta questa proprietà su un valore diverso da 0. Nel mio caso ho impostato su 8,5 pollici. Assicurati inoltre di deselezionare la proprietà "Mantieni insieme su una pagina se possibile" a livello Tablix (fai clic con il pulsante destro del mouse su Tablix, quindi "Proprietà Tablix", quindi "Generale" \ "Opzioni interruzione pagina"). Report Properties pane