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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top