2010-01-28 19 views

Respuesta

9

Con un índice en order_date, tienen el mismo rendimiento.

Sin índice, MAX es un poco más rápido, ya que usará Stream Aggregation en lugar de Top N Sort.

1

Yo diría que la primera, porque la segunda le obliga a ir a través de una función de agregado.

Sin embargo, como dijo marc_s, pruébelo.

0

No puede responder eso sin saber al menos algo sobre sus índices (¿tiene uno en customer_id, on order_date?), La cantidad de datos en la tabla, el estado de sus estadísticas, etc.etc.

2

ORDER BY es casi siempre el más lento. Los datos de la tabla deben estar ordenados.

Las funciones de agregado no deberían desacelerar tanto como un ordenamiento.

Sin embargo, algunas funciones agregadas utilizan un género como parte de su implementación. Por lo tanto, un conjunto particular de tablas en un producto de base de datos particular debe probarse experimentalmente para ver cuál es más rápido: para ese conjunto de datos.

0

depende de qué tan grande sea su mesa. En la segunda consulta, supongo que no es necesario "TOP 1", ya que MAX solo devuelve un valor. Si yo fuera tú, usaría la segunda consulta.

+0

Eso fue un error de copiar/pegar. Gracias por la captura. – Ron

Cuestiones relacionadas