Quello che guadagni di prestazioni posso aspettarmi da paging database?
-
26-09-2019 - |
Domanda
Di 'Ho una tabella X con 100 record in essa e che l'esecuzione di un select * from X
prende 100 secondi.
Per quanto tempo devo aspettare il select top 10 * from X
query per prendere?
mi aspetto che il rapporto è più o meno lineare così 10 secondi. È questo corretto, o è la relazione non lineare in qualche modo?
Soluzione
Il costo delle prestazioni è in due diverse aree:
- Quanto tempo ci vuole per eseguire la query
- Quanto tempo ci vuole per restituire i risultati
Spesso, una query sarà veloce, ma i risultati di ritorno sarà lento, dal momento che è di I / O-bound. Se questo è il caso, allora si vedrà un aumento di velocità approssimativamente lineare restituendo un minor numero di risultati.
Tuttavia, se la query stessa è complicata, le cose sono diverse. Se non è solo select * from X
, ma select * from X where [complicated-expression]
, poi i risultati possono variare ampiamente tra le implementazioni di database. In questo caso, le prestazioni potrebbero essere dominato dalla complessità delle query, nel qual caso non si vedrà come molto beneficio, semplicemente restituendo un minor numero di risultati.