Pergunta

Diga que tenho uma tabela x com 100 registros e que executando um select * from X leva 100 segundos.

Quanto tempo devo esperar a consulta select top 10 * from X pegar?

Eu esperaria que o relacionamento seja mais ou menos linear, então 10 segundos. Isso está correto ou o relacionamento não linear de alguma forma?

Foi útil?

Solução

Seu custo de desempenho está em duas áreas diferentes:

  • Quanto tempo leva para realizar a consulta
  • Quanto tempo leva para devolver os resultados

Muitas vezes, uma consulta será rápida, mas os resultados retornados serão lentos, pois é ligada à E/S. Se for esse o caso, você verá uma aceleração aproximadamente linear retornando menos resultados.

No entanto, se a consulta for complicada, as coisas serão diferentes. Se não for apenas select * from X, mas select * from X where [complicated-expression], os resultados podem variar amplamente entre as implementações do banco de dados. Nesse caso, seu desempenho pode ser dominado pela complexidade da consulta; nesse caso, você não verá tanto benefício, apenas retornando menos resultados.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top