It is currently 25 September 2020, 3:30 Advanced search

TOP 1 fatale

Domande e risposte su come utilizzare Instant Developer Foundation al meglio

TOP 1 fatale

Postby d.damico » 14 February 2020, 11:34

Scusate, sono un pochino OT
Nel senso che il problema non è dovuto direttamente ad INDE ma è sul DB

Vi è mai successo che una select impieghi 2-3 secondi, ma se poi ci metto TOP 1 impiega 6 minuti?

Più alzo il valore del TOP più + veloce, più lo abbasso più rallenta esponenzialmente , fino a rallentare in maniera assurda con il valore 1
d.damico
 
Posts: 244
Joined: 17 September 2019, 16:20

Re: TOP 1 fatale

Postby lucabaldini » 14 February 2020, 15:03

Ricordo un caso simile..

Il problema, se ricordo bene, era dovuto ad una cosa strana...
Tu scrivi "SELECT TOP 1 * from TABELLA" e SQL Server non prende una riga a caso ma ordina comunque tutti i risultati... poi, una volta ordinati, prende la prima riga.

Ora, quale colonna usa SQL Server per ordinare? Una a caso... non una con indice ma una a caso... proprio random... e, se i dati sono tanti e la colonna che sceglie non è indicizzata, ordinare può richiedere tantissimo tempo.

Credo si risolvesse aggiungendo manualmente una ORDER BY per una qualunque colonna per cui tu sai che c'è un indice. Per esempio la PK o una qualunque altra colonna dotata di indice.

Mi fai sapere??? Sono curioso... la mia memoria, più passa il tempo, e più è fallace... non vorrei aver ricordato male...
User avatar
lucabaldini
Pro Gamma
Pro Gamma
 
Posts: 4564
Joined: 1 October 2010, 17:03
Location: Bologna

Re: TOP 1 fatale

Postby d.damico » 14 February 2020, 15:47

La cosa folle sai qual' è?
Che io la order by la faccio e come… e la faccio per un campo chiave e indicizzato.
Ho provato a fare la order by per un campo non indicizzato tipo la descrizione!!!! E sia… diventa una scheggia!!!!!
E' una cosa incredibile.
d.damico
 
Posts: 244
Joined: 17 September 2019, 16:20

Re: TOP 1 fatale

Postby lucabaldini » 14 February 2020, 16:19

Nooooooooooooooooooooooo
Non ci credo!!!! Se fai una order by per un campo non indicizzato è veloce????? Ma io ricordavo il contrario!!!!

Alzo le braccia... Bisogna chiedere aiuto ad un vero DBAAAAAAA... :-DDDD
User avatar
lucabaldini
Pro Gamma
Pro Gamma
 
Posts: 4564
Joined: 1 October 2010, 17:03
Location: Bologna

Re: TOP 1 fatale

Postby d.damico » 14 February 2020, 16:21

Pazzesco lo so :-O
d.damico
 
Posts: 244
Joined: 17 September 2019, 16:20

Re: TOP 1 fatale

Postby lucabaldini » 14 February 2020, 16:23

Domanda: io ho dato per scontato che fosse SQL Server... è così? Comunque tutto può essere... il mondo è strano forte... XDXDXD
User avatar
lucabaldini
Pro Gamma
Pro Gamma
 
Posts: 4564
Joined: 1 October 2010, 17:03
Location: Bologna

Re: TOP 1 fatale

Postby d.damico » 14 February 2020, 16:26

SQL Std 2017
d.damico
 
Posts: 244
Joined: 17 September 2019, 16:20

Re: TOP 1 fatale

Postby t.simoncini » 14 February 2020, 16:37

Hai provato a guardare l'execution plan?
t.simoncini
 
Posts: 1100
Joined: 5 March 2012, 14:00

Re: TOP 1 fatale

Postby lucabaldini » 14 February 2020, 16:39

t.simoncini wrote:Hai provato a guardare l'execution plan?


Quello sarebbe davvero interessante!!!
User avatar
lucabaldini
Pro Gamma
Pro Gamma
 
Posts: 4564
Joined: 1 October 2010, 17:03
Location: Bologna

Re: TOP 1 fatale

Postby t.simoncini » 14 February 2020, 16:42

SQL Server ha anche il tracciamento del plan eseguito con eventuali suggerimenti per l'ottimizzazione.
t.simoncini
 
Posts: 1100
Joined: 5 March 2012, 14:00

Next

Return to Tips & Tricks - Foundation

Who is online

Users browsing this forum: No registered users and 14 guests

cron