Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Rendimiento de una consulta

Estas en el tema de Rendimiento de una consulta en el foro de SQL Server en Foros del Web. Hola, Tengo una página PHP donde se crea una tabla que representa un calendario (cada celda es un día). Y lo que necesito es que ...
  #1 (permalink)  
Antiguo 21/08/2012, 08:36
 
Fecha de Ingreso: abril-2007
Mensajes: 51
Antigüedad: 17 años
Puntos: 1
Rendimiento de una consulta

Hola,

Tengo una página PHP donde se crea una tabla que representa un calendario (cada celda es un día). Y lo que necesito es que en cada celda se muestren las ventas que se hicieron ese día (hasta un máximo de dos registros).

Mi duda es, qué es mejor y, sobre todo, más rápido de entre estas dos opciones. Si se os ocurre alguna, sin duda será bienvenida.

1.- Hacer 30 consultas (28 o 31 depende del mes) a la base de datos donde se recuperen las ventas de ese día. Cuando se crea la celda de la tabla, se hace la consulta y se recuperan los datos de la/s ventas que habría que mostrar para el día que representa esa celda (como mucho dos).

2.- Hacer una única consulta donde se recuperan las ventas de todo el mes y después procesar los datos de la consulta guardándolos en vectores para tratarlos al crear la tabla del calendario. Es decir, por ejemplo tener 2 vectores de 30 (28 o 31) posiciones, una por día y guardar en un vector el código de la primera venta en la posición X para el día X y en otro el código de la segunda venta en la posición X para el día X. La posición del vector representaría el día. Con esto nos ahorraríamos las 30 consultas a la base de datos.

La base de datos tendría entre 500.000 y 1.000.000 de registros, por ello que me preocupa mucho el tema del rendimiento.

La primera opción parece más "limpia", pero las 30 consultas cada vez que se cargue la página me hacen dudar mucho de la rapidez de esa opción.

¿Qué os parece?

Gracias por la ayuda!!
  #2 (permalink)  
Antiguo 21/08/2012, 08:53
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Rendimiento de una consulta

-Cargar los datos de tu base en un dataset en tu pagina y de ahi manipularlo, hacer 30 consultas no creo que sea la mejor opcion imaginate si cada consulta dura 30 seg * 30 = 15 min solo de recuperar datos :S
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 21/08/2012, 14:43
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Respuesta: Rendimiento de una consulta

Porque no haces tablas procesadas? es decir ejecuta un script que saque toda la información que necesitas, la guardas en una tabla de resultados (por así decirlo) y tu consulta va a ir sobre la tabla de resultados

Solo harías excepciones para las consultas en línea (pero ya no le pegas a toda la BD)

Me explico?
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #4 (permalink)  
Antiguo 22/08/2012, 08:28
 
Fecha de Ingreso: abril-2007
Mensajes: 51
Antigüedad: 17 años
Puntos: 1
Respuesta: Rendimiento de una consulta

Hola,

Gracias a todos por responder. Ha sido de gran ayuda. Voy a porbar a ver qué tal va con la idea que comentas.

Muchas gracias!!

Etiquetas: rendimiento, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:00.