Stiamo utilizzando SQL Server 2005 con Reporting Services.Prestazioni lente di Reporting Services, molto veloce in QueryAnalyser
Abbiamo un numero di report, ciascuno contenente una query SQL relativamente semplice: per "relativamente" intendo che abbiamo alcuni join, ma niente di peggio. Non chiamiamo alcuna stored procedure nelle nostre query - questo non è il caso dello sniffing dei parametri.
Quando si esegue uno di questi report (chiamiamolo report A) tramite Reporting Services, ci vuole molto tempo per completare - nell'ordine di decine di minuti o addirittura di ore. Quando si esegue la query SQL corrispondente in Query Analyzer, viene completata in pochi secondi.
Il numero di righe restituite dal database può essere pari a 1 - tuttavia, il report non viene mai completato.
Gli altri report funzionano correttamente.
Guardando nella tabella ExecutionLog su Reporting Services, posso vedere che la maggior parte del tempo è in TimeDataRetrieval (e stiamo parlando di milioni di secondi qui ...) - le volte in cui il report viene effettivamente completato. Se il report viene interrotto manualmente, TimeDataRetrieveal è zero e TimeProcessing è invece assurdamente alto.
Ho esaminato i registri di Reporting Services, ma tutto sembra normale.
Ora, prima di iniziare a suggerire "blocco" - beh, le nostre query hanno il suggerimento nolock attivato.
Allo stato attuale, ho raggiunto il limite della mia immaginazione cercando di trovare l'errore. Qualsiasi pensiero, intuizione sarebbe gradita.
/Christoffer
Provare a utilizzare SQL profiler per vedere come la stessa query viene ricevuta in modo diverso quando viene passata da Query Analyzer a Reporting Services e vedere quanto tempo impiega ciascuno di essi per terminarlo. Potrebbe essere l'interpretazione dei parametri che potrebbe causare problemi a Reporting Services? – shahkalpesh
Grazie per il tuo commento. Ho provato a utilizzare SQL Profiler. I parametri sono abbastanza semplici: due date e alcune stringhe. Le date sarebbero i primi sospettati, ma sembrano interpretati ok. Nulla spicca nel profiler, i parametri inviati a SetSessionParameters sembrano ok. – Christoffer
Devo anche aggiungere che posso eseguire il report direttamente in Visual Studio senza problemi. – Christoffer