![]() |
Mirar por favor este query y comentar...
Cada uno de los campos de las relaciones son campos primarios... Uso Delphi 2007 con FIBplus 6.8, este query es para darle mantenimiento a la tabla FICHAFAMILIAR. |
¿Y qué quieres que comentemos?
|
no, pus muy bonito query... miralo... con su select y toda la cosa.. :D
|
Cita:
Cita:
|
A mi lo que me gusta de este query es que hasta el apodo del jefe obtienes
Cita:
|
Hola
Casi entiendo que estan todos los campos, si no es así, son un montón. No seria mas facil un SELECT * ??? Saludos |
Cita:
O trae todos los campos de todas las tablas, o si informa de un error al no saber sobre que campos y de que tablas extraer los campos. Si es diferente si se empleara algo como: ;):D En lo personal prefiero dejar explícito que campos extraer. El empleo del asterisco en tablas con muchos campos puede hacer un poco más "lento" la consulta. Puesto que debe recorrer la/s tabla/s horizontalmente extrayendo los campos correspondiente. Saludos, |
Usar select *, que relentiza al menos un poco las consultas, ya que según tengo entendido el motor tiene que ir a las tablas del sistema para "averiguar" cuales son los campos de dicha tabla, mientras que si le pasas el nombre tu mismo, él ya no tiene que hacer eso y es un paso (que aunque lo hace rapido) se ahorra.
Bueno, al menos eso es lo que yo tengo entendido... |
Bueno, pero el tiempo en que el motor consulta los campos seguramente es menor que el tiempo que yo tardo en escribirlos en la consulta, con lo cual compensa :D
// Saludos |
Cita:
Luego, una vez extraído los campos, puede ejecutar la consulta en cuestión. Saludos, |
Hola
Sabia que crearía polémica:D Lo que dice El_Raso: Cita:
Lo que creo es que lo que quiere es visualizar el contenido de ciertos campos de ciertas tablas, pero como no indica los campos que tiene cada tabla puedo pensar que son todos (la lista es grande) y después actualizar la tabla FichaFamiliar. Por otra parte coincido con vosotros en lo que habéis dicho.:) Saludos |
Cita:
- "A ver Jhonny, sumemos el tiempo que te gastas escribiendo los nombres de los campos y comparemos contra las veces que se ejecutará esa consulta". - El perezoso no se queda atras y dice, listo pues, pero entonces abramos el IBExpert, ejecutemos select * from tabla y vamos a la pestañita que esta abajo de los resultados que se llama "Query Columns" (Ahí aparecen todos los nombres de las columnas separadas por comas), seleccione todo, copie y pegue :D. Caramba!!!, que cantidad de cosas que uno tiene que pensar :D:D:D P.D: Vieron que si habia bastante para comentar en este hilo? |
Bueno, y volviendo al hilo... ¿que debemos comentar?:confused:
Yo no demasiado lio, si admito que llama la atención la cantidad de join que hace. Al menos en teoría son operaciones "lentas" Pero bueno... no vamos a volver a analizar si es lento o no, .... ¿o si?:D La cuestión es que con analizar una instrucción SQL no basta como para decir, que está bien o mal. Necesitamos más material con el cual podamas analizar y debatir. El_Raso, te agradecería que nos comentaras algo más al respecto para que podamos darte sugerencias, críticas, alternativas, etc. Saludos, |
Chicos, sólo hace 5 horas que ha puesto la duda y ¿ya exigen que dé una respuesta? déjenlo respirar ¿no? También tiene vida fuera de los foros.
OFFTOPIC: Tenía que decirlo o reventaba :D :D :D :D. |
Pues Lepe tiene toda la razon, no debemos acosarlo con mas preguntas, algun dia......... regresara para mirar nuestras respuestas
Pero analizando hay cositas que le sobran por ejemplo Código SQL [-] ...... LEFT JOIN areadesalud C ON A.codigoregion = C.codigoregion AND A.codigoarea = C.codigoarea LEFT JOIN zonasdesalud D ON A.codigoregion = D.codigoregion AND A.codigoarea = D.codigoarea AND A.codigozona = D.codigozona LEFT JOIN unap I ON A.codigounap = I.codigounap AND A.codigoarea = I.codigoarea AND A.codigozona = I.codigozona AND A.codigoregion = I.codigoregion ...... LEFT JOIN municipio F ON A.municipio = F.codigomunicipio AND A.provincia = F.codigoprovincia LEFT JOIN secciones G ON A.seccion = G.codigoseccion AND A.municipio = G.codigomunicipio AND A.provincia = G.codigoprovincia LEFT JOIN parajes H ON A.paraje = H.codigoparaje AND A.municipio = H.codigomunicipio AND A.provincia = H.codigoprovincia AND A.seccion = H.codigoseccion ...... para mi solo quedaria asi Código SQL [-] .... LEFT JOIN areadesalud C ON A.codigoregion = C.codigoregion LEFT JOIN zonasdesalud D ON A.codigoregion = D.codigoregion LEFT JOIN unap I ON A.codigounap = I.codigounap ...... LEFT JOIN municipio F ON A.municipio = F.codigomunicipio LEFT JOIN secciones G ON A.seccion = G.codigoseccion LEFT JOIN parajes H ON A.paraje = H.codigoparaje .... !Que impaciencia, estamos muy urgidos que él lea nuestras respuestas¡ :D |
Cita:
|
Cita:
|
Cita:
Porque yo sigo sin tenerlo claro... |
Gracias a todos por los comentarios.... en realidad lo que ando buscando es la rapidez en la consulta... ahora bien... porque tantas relaciones? porque los datos lo presento en un cxDBgrid de la Quantum que uso (6.38) y necesito mostrar no los codigo (de la provincia, municipio, etc) si no la descripcion.
Como la respuesta de hescopina es que esperaba algunas de ustedes... pero me gustaron muy jocosas... Y en conclusion lo que quiero es que me comenten de que forma puedo optimizar el query ya que voy a manejar millones de registros en un grid como lo comente mas arriba. Y gracias a todos por sus comentarios....sigan por favor.... |
Funcionaria igual el query hescopina?, con la forma que propones?
|
La franja horaria es GMT +2. Ahora son las 07:11:26. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi