Question

Dire que j'ai une table X avec 100 enregistrements et que l'exécution d'un select * from X prend 100 secondes.

Combien de temps dois-je attendre la select top 10 * from X de requête à prendre?

J'attendre à ce que la relation est plus ou moins linéaire si 10 secondes. Est-ce exact ou est non-linéaire de la relation d'une certaine façon?

Était-ce utile?

La solution

Le coût de la performance est dans deux domaines différents:

  • Combien de temps qu'il faut pour effectuer la requête
  • Combien de temps qu'il faut pour retourner les résultats

Souvent, une requête sera rapide, mais les résultats de retour sera lente, car il est d'E / S lié. Si tel est le cas, alors vous verrez un peu près linéaire en speedup retournant moins de résultats.

Cependant, si la requête elle-même est compliquée, les choses sont différentes. Si elle est non seulement select * from X, mais select * from X where [complicated-expression], puis les résultats peuvent varier considérablement entre les implémentations de bases de données. Dans ce cas, votre performance pourrait être dominé par la complexité de la requête, dans ce cas, vous ne verrez que beaucoup d'avantages en se contentant de revenir moins de résultats.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top