[MySQL] vista lenta

  • Creatore Discussione Creatore Discussione avana9
  • Data di inizio Data di inizio

avana9

Nuovo Utente
11 Giu 2018
3
0
1
Salve a tutti,
ho un problema da porvi,
ho una vista lentissima che mi arriva sino a 30 sec senza usare filtri
ma se uso la query usata per creare la vista, come query normale, il tempo scende a 5 sec

Non credo sia una cosa normale. Qualcuno saprebbe spiegarmi il perchè?
Grazie a tutti

//Enrico
 
Non è facile spiegare il motivo, bisognerebbe conoscere bene il contesto, ci sono molte cause, per esempio,
- la vista non ha indici sufficienti quindi vengono lette sequenzialmente le tabelle sottostanti
- join tra tabelle che sottostanno alla vista non hanno legami con indici di nuovo lettura sequenziale
- hai eseguito la query della vista e poi quella che la crea,la seconda query è privilegiata perchè il motore del db ha impostato le sue strategie di accesso, prova il contrario dopo aver fermato e fatto riparire il motore del db
- poi bisognerebbe sapere di più

non ho mai avuto una vista più lenta della query sulle tabelle,
uso molto le viste soprattutto per realizzare query semplici e con filtri di accesso,
di solito l'accesso su una vista riduce notevolmente il tempo di lettura proprio perchè le strategie di accesso sono già impostate con la vista stessa
 
  • Like
Reactions: avana9
Non è facile spiegare il motivo, bisognerebbe conoscere bene il contesto, ci sono molte cause, per esempio,
- la vista non ha indici sufficienti quindi vengono lette sequenzialmente le tabelle sottostanti
- join tra tabelle che sottostanno alla vista non hanno legami con indici di nuovo lettura sequenziale
- hai eseguito la query della vista e poi quella che la crea,la seconda query è privilegiata perchè il motore del db ha impostato le sue strategie di accesso, prova il contrario dopo aver fermato e fatto riparire il motore del db
- poi bisognerebbe sapere di più

non ho mai avuto una vista più lenta della query sulle tabelle,
uso molto le viste soprattutto per realizzare query semplici e con filtri di accesso,
di solito l'accesso su una vista riduce notevolmente il tempo di lettura proprio perchè le strategie di accesso sono già impostate con la vista stessa

Grazie della risposta.
Anche a me la cosa sembra parecchio strana ma purtroppo è così. Ho anche riavviato il server mysql lanciando prima la query e poi la select * sulla vista, ma le cose non sono cambiate.
Se c'era un problema con le join avrei dovuto averlo anche lanciando la query no?
La vista è create con l'algoritmo UNDEFINED, ma anche usando TEMPLATE il risultato è sempre lo stesso.
Non ti viene in mente nulla che potrei controllare, magari tra le variabili di mysql?
Ah dimenticavo, giusto per info complete, il server è su Linux redhat

//Enrico
 

Discussioni simili