Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
Crystal Reports e reportistica
Lentezza report
giovedì 14 settembre 2006 - 12.05
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
ducky
Profilo
| Junior Member
57
messaggi | Data Invio:
gio 14 set 2006 - 12:05
Ciao a tutti,
ho realizzato un report per un'applicazione ASP.NET, ma è troppo lento, sia nella creazione, che nello scorrimento delle pagine.
Mi hanno detto chiaramente che questa lentezza non è accettabile e bisogna fare qualcosa per ottimizzare le prestazioni.
In ASP tradizionale, invece, i report erano molto più veloci.
Tra i due sistemi ci sono in realtà 2 differenze:
1) in ASP tradizionale usavo l'ActiveX Viewer, in ASP.NET uso il Viewer di default (perché non ho ancora capito come fare a utilizzare l'ActiveX con il .NET);
2) in ASP tradizionale scrivevo la query completa da codice, in ASP.NET scrivo la query "base" nel Command, dopodiché nel Record Selection imposto le condizioni utilizzando i parametri.
Potrebbe essere questa la causa di tanta lentezza?
In questo modo, Crystal Report prima estrae TUTTI i dati, e poi applica i criteri di selezione?
Un'ultima domanda... è possibile, all'interno del Command, scrivere la query parametrizzata (qualcosa del tipo mioCampo = :parametro), o bisogna farlo da codice ASP.NET?
Qualsiasi informazione mi è di grande aiuto, grazie in anticipo
***UPDATE***: ho provato a passare la query da codice ASP.NET, ma le prestrazioni non cambiano: il report è ancora dannatamente lento.
A questo punto mi viene da pensare che la lentezza è proprio dovuta al componente viewer per il .NET, ma non ci posso credere... possibile che nessun'altro ha il mio stesso problema?!?!?
Vi prego di farmi sapere se è possibile parametrizzare la query all'interno del Command, senza dover utilizzare la Record Selection...
Grazie
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
gio 14 set 2006 - 20:20
ciao,
diciamo che ci posssono essere varie ragioni,tipicamente pero' sono queste le cose che rallentano l'elaborazione:
- tabelle linkate come sorgente dati (meglio usare delle left join e linkarle da query decisamente piu veloce)
- sottoreport (da usare con cautela)
[per entrambe, se invece lavori con i gruppi puoi ottenere gli stessi risultati.]
- hai messo troppe immagini (deve renderizzarle al volo quindi perde tempo di cpu)
- hai troppi oggetti grafici (meglio se agli oggetti associ una classe di css)
Poi potrebbe essere anche qualcosa di asp.net:
- non l'hai compilato e quindi è 1po piu lento
- hai lasciato il tag "<compilation debug ="true" />" nel web.config
- hai poca ram sul svr? il report ne utilizza 1po
ciao.
Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo
ducky
Profilo
| Junior Member
57
messaggi | Data Invio:
ven 15 set 2006 - 09:36
Ciao, Freeteo!
Inanzitutto grazie per la risposta. Ho veramente bisogno di assistenza
Andiamo con ordine...
> tabelle linkate come sorgente dati (meglio usare delle left join e linkarle da query decisamente piu veloce)
No, non ho linkato le tabelle da Crystal Reports. Ho scritto la query e le condizioni di join all'interno del Command. Dopodiché ho scritto le condizioni di ricerca nel Record Selection.
> sottoreport (da usare con cautela)
Sì, ho un sottoreport... mi è necessario.
Però quando usavo ASP tradizionale i sottoreport non mi davano nessun problema di lentezza.
> se invece lavori con i gruppi puoi ottenere gli stessi risultati.
In che senso... come posso utilizzare un gruppo al posto di un sottoreport?
Nel subreport ho bisogno di specificare una diversa query, anche con campi differenti.
> hai messo troppe immagini
Non ho inserito nessuna immagine!
> hai troppi oggetti grafici (meglio se agli oggetti associ una classe di css)
Non ho nessun oggetto grafico, a parte una linea e un box!
> non l'hai compilato e quindi è 1po piu lento
Compilo sempre... non dovrebbe essere questo il problema.
> hai lasciato il tag "<compilation debug ="true" />" nel web.config
In effetti era impostato a "true". L'ho sostituito con "false", ma le prestazioni non cambiano.
> hai poca ram sul svr? il report ne utilizza 1po
3 GB!!! Non mi sembra poca...
Ciao
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
ven 15 set 2006 - 21:38
ciao,
allora non saprei proprio...ma alla fine il report va giusto? quindi sembra proprio 1 problema di runtime...non ho idea a questo punto mi dispiace, se vuoi provare a scaricarti qualche service pack magari cambia qualcosa ma è un consiglio il mio, non una soluzione
http://support.businessobjects.com/downloads/service_packs/crystal_reports_en.asp
ciao.
Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo
ducky
Profilo
| Junior Member
57
messaggi | Data Invio:
lun 18 set 2006 - 08:59
Ciao,
sì il report va, ma come ti dicevo è troppo lento.
Proverò a scaricare il service pack... non mi potrebbe creare ulteriori problemi, vero?
***EDIT***
certo che Crystal Reports è proprio un software pessimo... sto leggendo delle cose allucinanti nel readme del service pack...
***UPDATE***
comunque ho risolto eliminando il subreport, come mi avevi suggerito, e facendo un "merge" delle 2 query nel report principale.
Grazie
cmrcmr
Profilo
| Newbie
8
messaggi | Data Invio:
mer 20 set 2006 - 01:12
ducky
....ma è lento anche quando lo carichi nell'editor o solo in esecuzione?
se eliminando il subreport si è velocizzato probabilmente il link era fatto male controllalo.
Comunque di report ne abbiamo creati parecchi e siamo abbastanza soddisfatti e se può servire la nostra esperienza abbiamo individuato alcuni motivi di lentezza:
- Report creato male nell'editor (perde pezzi o sottoreport)....
- i sottoreport esterni sono una dannazione, meglio includerli
- la query sql la hai provata con Query Analyzer?...i tempi sono accettabili?
- i gruppi e le sezioni sono cerati bene e non deve fare dei rigiri doppi o tripli?
- se usi più tabelle i link sono corretti?
se vuoi maggiori dettagli siamo qui:-)
ducky
Profilo
| Junior Member
57
messaggi | Data Invio:
mer 20 set 2006 - 09:17
Ciao
> ....ma è lento anche quando lo carichi nell'editor o solo in esecuzione?
Nell'editor non faccio mai l'anteprima... i reports li provo direttamente in esecuzione (perché alla fine è lì che mi interessa verificare il funzionamento)
> se eliminando il subreport si è velocizzato probabilmente il link era fatto male controllalo.
Non sono un "guru" di SQL, ma il link era legato con le uniche chiavi disponibili... non c'era tanta possibilità di sbagliare (anche perché il risultato era corretto)
> i sottoreport esterni sono una dannazione, meglio includerli
Il mio sottoreport era incluso!
> la query sql la hai provata con Query Analyzer?...i tempi sono accettabili?
L'ho provata con TOAD, e sì, i tempi sono normali.
> i gruppi e le sezioni sono cerati bene e non deve fare dei rigiri doppi o tripli?
No, non mi sembra di aver fatto nulla di strano... è una semplice struttura con 2 raggruppamenti.
> se usi più tabelle i link sono corretti?
Sì, le condizioni di join sono OK.
Ne approfitto per chiedere anche a te... io sono ancora convinto che la causa di questa lentezza sia dovuta al diverso tipo di viewer.
Quando usavo l'ActiveX Viewer con ASP tradizionale, avevo un report con addirittura 4 sottoreport, eppure si apriva in un attimo! E sto parlando di applicazioni che girano sullo stesso server.
Il problema è che non sono mai riuscito a utilizzare l'ActiveX Viewer con .NET...
cmrcmr
Profilo
| Newbie
8
messaggi | Data Invio:
mer 20 set 2006 - 10:38
Non ti so dire, noi non usiamo in nessun caso il Viewer, non ci piace.
La soluzione che ci ha soddisfatto è quella di esportare il report in PDF e poi di includere un viewer Acrobat nella pagina web.
Se la tua applicazione è Web e vuoi il codice C# per fare delle prove, chiedimelo pure.
ducky
Profilo
| Junior Member
57
messaggi | Data Invio:
gio 21 set 2006 - 09:38
Ti ringrazio molto, comunque per quanto riguarda il codice C# sono a posto.
In ogni caso, grazie mille per la disponibilità!
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !