FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Sobre el código
Decir que de si las llaves foráneas son "not null" (es decir que debe ir un valor para esos campos) utilizar LEFT JOIN en lugar de INNER JOIN puede hacer que el plan de la consulta utilice mejor los índices. Con Firebird llevo años usando LEFT JOIN sobre INNER JOIN.
__________________
Luis Fernando Buelvas T. |
#2
|
|||
|
|||
Si envías el script de esa parte del proyecto con algunos datos personalmente te podría colaborar un poco más.
__________________
Luis Fernando Buelvas T. |
#3
|
||||
|
||||
Cita:
Y además debe verificar que ambas bases de datos son realmente iguales. |
#4
|
|||
|
|||
Cita:
Disculpa la demora.. Saludos; |
#5
|
||||
|
||||
No, eso no esta bien. Eso altera los resultados (semantica diferente!)
__________________
El malabarista. |
#6
|
|||
|
|||
Ciertamente....
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney |
#7
|
||||
|
||||
#8
|
|||
|
|||
Ya hicieron la prueba ? Si la llave foránea es "not null" funciona como un inner join. Sigo trabajando con bases de datos Firebird 1.5 y el preprocesador (el que define el plan de la consulta) no selecciona algunos índices como uno esperaría. Mis consultas funcionan como espero que funcionen. En Firebird 3 he tratado de usar inner join pero si no toma el índice que espero paso a usar left join siempre y cuando la llave foránea tenga valor (definiéndola not null). Lo que pasa es que trabajo casi exclusivamente con Interbase y luego Firebird desde el año 1998. Firebird 1.5 es suficiente para todo, pero ahora Windows 10 cada vez que hace una actualización importante desinstala el motor de base de datos por el defecto que tiene el instalador de Firebird 1.5 que el Applet que se adiciona al panel de control hace que éste cuando se abre se cierra inmediatamente. Para instalar Firebird 1.5 toca cambia el nombre del instalador pero de tanto en tanto Windows 10 lo desinstala. Estoy moviéndome a Firebird 3 pero los componentes IBX no van bien con este motor por lo que adquirí UniDac y estamos pasando de VCL a uniGui y de IBX a uniDac.
__________________
Luis Fernando Buelvas T. |
#9
|
||||
|
||||
¿En qué no van bien?
|
#10
|
||||
|
||||
Cita:
Cita:
Ni te imaginas lo mucho que ha avanzado el tema de los RDBMS estos años. Y esos avances están siendo aplicados constantemente. Los RDBMs son MUY competitivos entre ellos. --- No siempre elegir un indice es lo mejor. Una de las tareas del query planer es determinar la manera menos costosa de ejecutar la consulta. Si este determina que usar el indice trae un mayor costo, lo DESCARTA. Ahora, es posible que este se "equivoque?". Si. Y es posible que DIO LA CASUALIDAD que en la version vieja no cometa el error y en la nueva sí? Claro. Y eso significa que es mejor usar la vieja? NOOOOOOOO. Porque es MUY probable que la nueva manifieste un ERROR de logica y/o diseño que la vieja, por casualidad NO VE. Asi que:
Pero en toda mi vida, usando como 8 rdbms diferentes solo he tenido que forzar a Mysql (que en versiones antes tenia el query planer mas imbecil del mundo. Todos los join era nested loops, que asco!) y aun asi, termine reescribiendo el query mejor. Siempre sigue estos pasos:
__________________
El malabarista. |
#11
|
|||
|
|||
Ciertamente Si...
egostar, Casimiro, mamcx es un gran privilegio que lean mi post ayudadome como siempre.. Bendiciones Totales.... Por cierto uso el inner join porque se que cada fila de la tabla A exista una fila en la tabla B. bueno en teoría. Provaré la sugerencia de lbuelvas del uso del CAST.. Saludos y les informo |
#12
|
|||
|
|||
Descartado funcion CAST en Campo TimesTamp
La verdad como había mostrado dos resultado de respuesta a mi consulta en Base de datos de Desarrollo y la misma en producción obteniendo resultado lento en la de producción mas no en la de Desarrollo descarto totalmente el campo fecha como causa sugerido por nuestro compañero lbuelvas. aun me encuentro en pruebas. Agregué el script solicitado por ustedes. Saludos; |
#13
|
||||
|
||||
Otra cosa a tener en cuenta y que es más importante de lo que puedas pensar, usa dominios.
De siempre, en todos los campos, usar dominios.
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Consulta update desde una consulta select | jafera | SQL | 3 | 08-05-2015 19:56:02 |
Consulta SQL basada en otra consulta anterior | jafera | SQL | 5 | 19-11-2013 01:07:37 |
Optimizando velocidad de mis páginas | lucasarts_18 | PHP | 2 | 25-09-2008 19:42:47 |
Optimizando Creación de Formularios MDI | nelostanley | OOP | 20 | 08-01-2008 03:00:36 |
Realizar una consulta sobre los registros que devuelve otra consulta | Borjaserrano | Firebird e Interbase | 12 | 01-10-2007 23:19:44 |
|