Ciao a tutti, sono in difficoltà conuna query che, fino ad ora ha sempre funzionato, ma ultimamente, sarà per l'aumento dei dati, sarà per una piccola modifica che ho fatto, va perennemente in timeout bloccando tutto il sistema visto che è la query principale.
Vi spiego per capire il contesto:
è un software WEB CRM. Tutto si accentra sulla tabella dei contratti.
Questa tabella contiene i dati principali, mentre altre tabelle contengono dati che mano mano vengono registrati sul CRM.
Questo un piccolo schema:
707x565
38Kb
Come vedete la tabella Contratti ha una serie di tabelle collegate per specificare ad esempio gli stati, le offerte, ecc.
La tabella StoricoStatiContratti contiene tutto lo storico di movimentazione del contratto.
Inoltre, esiste un'altra tabella, o meglio una vista, che mostra dei dati aggiuntivi ai contratti che sono degli "esiti di lavorazione".
La mia necessità è reperire tutti i dati necessari a mostrare il contratto ed "accessori" in una griglia di ricerca e/o schermata riepilogativa.
questa l'attuali VISTA che sto utilizzando:
Come potete vedere è abbastanza complicata, ma in sostanza non fa altro che reperire le varie descirzioni per le tabelle di parametri, e poi aggiungere gli altri dati come esito, agente di vendita, agente di recupero ed altro.
Il problema è nato quando ho aggiunto, oltre all'agente di vendita, anche l'agente di recupero in queto pezzo:
da interfaccia, faccio semplicemente:
select * from V_PV_DatiContratto
e in 13 secondi mi tira fuori 48.000 record, il che sarebe accettabile.
Il problema è quando aggiungo la where in base ai filtri dell'utente. Diventa lentissima e l'interfaccia va naturalmente in timeout.
Come posso risolvere?
Grazie
____________
Ricordati di utilizzare il tasto "Accetta" se i nostri consigli ti sono serviti a risolvere il problema.
È il modo per ringraziare chi ti ha aiutato.