Sto cercando di ottimizzare un report che utilizza più stored procedure sulla stessa tabella. Sfortunatamente, ogni procedura sta leggendo milioni di record e aggregando i risultati. È una lettura molto intensa per un report, ma ogni procedura memorizzata è ottimizzata per essere eseguita abbastanza velocemente all'interno di SSMS.SSRS esegue più query contemporaneamente?
È possibile eseguire ciascuna stored procedure e ottenere un set di risultati entro 10-20 secondi. Quando li metto tutti in un report all'interno di SSRS, il report scade.
Esiste un totale di 4 parametri per procedura memorizzata. Tutti puntano alla stessa tabella, semplicemente aggregando i dati in modi diversi. Gli indici su quelle tabelle sono in linea con la query. È basato sul tempo, sull'utente e sulla sola dimensione che uso per COUNT() sia DISTINCT che NONDISTINCT.
Penso che il problema sia il fatto che SSRS sta eseguendo 4 procedure contemporaneamente sulla stessa tabella anziché una dopo l'altra. È vero? In tal caso, è comunque necessario garantire che SSRS non li esegua in parallelo?
La mia unica opzione è quella di creare una tabella di riepilogo che è già pre-registrata. Quindi basta eseguire il report su quella tabella. Altrimenti, immagino che sia possibile anche il param fiutamento.
Si può simulare l'attività in un ambiente non prod e eseguire una traccia del profilo? Questo ti direbbe cosa sta funzionando contemporaneamente. Un'altra opzione è quella di aggiornarlo regolarmente, in modo che il report sia pronto per l'uso. –
Ho visto situazioni in cui il passaggio di rendering è il pezzo della pipeline che richiede molto tempo ed è responsabile del timeout. Non sto dicendo che ciò si sta verificando nel tuo caso, sto solo dicendo che è una possibile spiegazione per l'esecuzione veloce in SSMS e molto lento in SSRS. –
come aumentare il timeout http://geekswithblogs.net/ssrs/archive/2009/10/30/steps-to-resolve-ssrs-timeout-issues.aspx – niketshah90