Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #21  
Antiguo 23-11-2019
lbuelvas lbuelvas is offline
Miembro
 
Registrado: may 2003
Ubicación: Colombia
Posts: 378
Poder: 22
lbuelvas Va por buen camino
Hola, puedes subirlo a mi servidor

http://45.77.164.42/HFS_Publica/

Se pueden subir archivos y bajarlos, pero no borrarlos, me avisas cuando lo puedo borrar.
__________________
Luis Fernando Buelvas T.
Responder Con Cita
  #22  
Antiguo 23-11-2019
novato_erick novato_erick is offline
Miembro
 
Registrado: ago 2010
Ubicación: Panamá
Posts: 397
Poder: 15
novato_erick Va por buen camino
Compañeros dejo el enlace para descarga:

https://drive.google.com/open?id=1uv...1_ATD9mOXaQ-1I

Saludos;

novato_erick
Responder Con Cita
  #23  
Antiguo 23-11-2019
novato_erick novato_erick is offline
Miembro
 
Registrado: ago 2010
Ubicación: Panamá
Posts: 397
Poder: 15
novato_erick Va por buen camino
Cita:
Empezado por lbuelvas Ver Mensaje
Hola, puedes subirlo a mi servidor
Hola Ivuelvas:

Deje en enlace y tambien lo subi a tu servidor.

Saludos y muchas gracias por tu colaboración;


novato_erick.

pd: el que administre este foro no estaría interesado que colaboremos en un servidor para este tipo de situaciones de subir info a los miembros?
Responder Con Cita
  #24  
Antiguo 25-11-2019
lbuelvas lbuelvas is offline
Miembro
 
Registrado: may 2003
Ubicación: Colombia
Posts: 378
Poder: 22
lbuelvas Va por buen camino
Estuve revisando tus metadatos y encuentro que no tienes llaves foráneas, entonces suspendí la revisión. Regálanos por favor una base de datos donde recortes lo que no estés interesado en que nosotros veamos y una porción de registros. Luego de recortar lo que es dispensable, haces Backup/Rrestore para disminuir el tamaño del archivo, lo comprimes y lo envías.

Lo otro que podemos hacer es hacer una sesión remota, yo tengo licencia de Ammyy y hablamos por Telegram o Whatsapp porque veo que tu base de datos tiene muchos registros.

Como estás en Panamá tenemos el mismo horario, yo estuve por allá hace unos 15 días en un Crucero por el Caribe que nos ganamos mi esposa y yo, estuvimos medio día por allá, es muy bonito.
__________________
Luis Fernando Buelvas T.
Responder Con Cita
  #25  
Antiguo 11-12-2019
novato_erick novato_erick is offline
Miembro
 
Registrado: ago 2010
Ubicación: Panamá
Posts: 397
Poder: 15
novato_erick Va por buen camino
Cita:
Empezado por lbuelvas Ver Mensaje
Como estás en Panamá tenemos el mismo horario, yo estuve por allá hace unos 15 días en un Crucero por el Caribe que nos ganamos mi esposa y yo, estuvimos medio día por allá, es muy bonito.
lBuelvas. Si Panamá es muy Bonito para mi cada país tiene sus atractivo he ido a Colombia y me parece espectacular depende de las perspectiva y las mujeres bellas.

En referencia a las Llaves foráneas cuando tomé el proyecto también noté lo mismo en la Tabla FACTURAS_VENTAS con sus tablas hijas o dependiente en fin a pesar de no poseer dicha llave foraneas no ha perdido integridad en cuanto a las transacciones a cada tabla.

Casi son dos millones de registros.

en Fin realizé una recreación de los indixes de todas las tablas leyendo un poco este link https://firebird21.wordpress.com/tag/reindex/ la cual al ejecutarlo se corrigió el problema de consulta también cree un nuevo campo la cual guarda solamente el tipo de dato de FECHA sin la hora para evitar usar la función cast de Firebird en la consulta y tenias razón si mejoró notablemente.

También el consejo de:

Cita:
mamcx
(Todos los join era nested loops, que asco!) y aun asi, termine reescribiendo el query mejor.
Definiitva mamcx no reescribí pero tan solo quitando la clausula order by y la función DESCENDING fue notable ejemplo:
Código SQL [-]

ORDER BY FAC_CLIENTE.ID_FACTURA DESCENDING  --quite aquí


Antes de quitar la función DESCENDING

Código:
Query Performance
------------------------------------------------
Prepare       : 16 ms
Execute       : 0 ms
Avg fetch time: 0 ms

Memory Usage
------------------------------------------------
Current: 98.30 MB
Max    : 98.35 MB
Buffers: 2048

Database Operations
------------------------------------------------
Reads  : 10167
Writes : 0
Fetches: 6145639

Plan:
------------------------------------------------
PLAN SORT (JOIN (FACTURAS_VENTAS NATURAL, FAC_CLIENTE INDEX (IDX_FAC_CLIENTE), CLIENTES INDEX (RDB$PRIMARY85), FAC_CAJA INDEX (IDX_FAC_CAJA), CAJAS INDEX (RDB$PRIMARY77)))

Table Operations:
+--------------------------+-----------+-----------+-----------+-----------+-----------+
|        Table Name        |   Index   | Non-Index |  Updates  |  Deletes  |  Inserts  |
|                          |   reads   |   reads   |           |           |           |
+--------------------------+-----------+-----------+-----------+-----------+-----------+
|           FACTURAS_VENTAS|         0 | 1,329,368 |         0 |         0 |         0 |
|                  FAC_CAJA|   182,404 |         0 |         0 |         0 |         0 |
|               FAC_CLIENTE|   182,404 |         0 |         0 |         0 |         0 |
|                     CAJAS|   182,404 |         0 |         0 |         0 |         0 |
|                  CLIENTES|   182,404 |         0 |         0 |         0 |         0 |
+--------------------------+-----------+-----------+-----------+-----------+-----------+

Quitando la función DESCENDING

Código:
Query Performance
------------------------------------------------
Prepare       : 0 ms
Execute       : 0 ms
Avg fetch time: 0 ms

Memory Usage
------------------------------------------------
Current: 33.32 MB
Max    : 98.35 MB
Buffers: 2048

Database Operations
------------------------------------------------
Reads  : 8725
Writes : 0
Fetches: 2316311

Plan:
------------------------------------------------
PLAN JOIN (FACTURAS_VENTAS NATURAL, FAC_CLIENTE INDEX (IDX_FAC_CLIENTE), CLIENTES INDEX (RDB$PRIMARY85), FAC_CAJA INDEX (IDX_FAC_CAJA), CAJAS INDEX (RDB$PRIMARY77))

Table Operations:
+--------------------------+-----------+-----------+-----------+-----------+-----------+
|        Table Name        |   Index   | Non-Index |  Updates  |  Deletes  |  Inserts  |
|                          |   reads   |   reads   |           |           |           |
+--------------------------+-----------+-----------+-----------+-----------+-----------+
|           FACTURAS_VENTAS|         0 | 1,147,164 |         0 |         0 |         0 |
|                  FAC_CAJA|       200 |         0 |         0 |         0 |         0 |
|               FAC_CLIENTE|       200 |         0 |         0 |         0 |         0 |
|                     CAJAS|       200 |         0 |         0 |         0 |         0 |
|                  CLIENTES|       200 |         0 |         0 |         0 |         0 |
+--------------------------+-----------+-----------+-----------+-----------+-----------+
Sus aportes son significativo y en resumen:
- recrear los indice ya que en la db habia 160 mil registros de diferencia entre mi tabla de desarrollo y la tabla de producción sin indexar eso también jugó un papel importante así que significativamente la recreación de los indice debe de realizarse cada cierto tiempo en fin no encontré por el momento alguna sugerencia en ese tema.

- usar la función Cast de firebird para convertir la fecha si afecta algo en el rendimiento de la consulta Mejor utilizar el tipo de Dato correspondiente a sólo Fecha

- El uso de las funciones hay que saber cuando hay que usarla en caso de consultas de búsquedas de mucha cantidad de registros. Esto juega un papel importante (Tener bien claro cada consulta).


Doy solucionado dejaré terminado este tema.

Saludos y Bendiciones a todos;


novato_erick
Responder Con Cita
  #26  
Antiguo 12-12-2019
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.927
Poder: 26
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Cita:
Empezado por novato_erick Ver Mensaje
recreación de los indice debe de realizarse cada cierto tiempo en fin no encontré por el momento alguna sugerencia en ese tema.
Solo es recrea si hay una inserción masiva (quizás, solo si es realmente grande y trastea enormente con los datos, triggers, etc. No es tan necesario si los registros son un "APPEND") . De resto es innecesario.
__________________
El malabarista.
Responder Con Cita
  #27  
Antiguo 13-12-2019
novato_erick novato_erick is offline
Miembro
 
Registrado: ago 2010
Ubicación: Panamá
Posts: 397
Poder: 15
novato_erick Va por buen camino
Cita:
mancx:
Solo es recrea si hay una inserción masiva (quizás, solo si es realmente grande y trastea enormente con los datos, triggers, etc. No es tan necesario si los registros son un "APPEND") . De resto es innecesario.

Gracias.

Saludos;

novato_erick
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Consulta update desde una consulta select jafera SQL 3 08-05-2015 20:56:02
Consulta SQL basada en otra consulta anterior jafera SQL 5 19-11-2013 02:07:37
Optimizando velocidad de mis páginas lucasarts_18 PHP 2 25-09-2008 20:42:47
Optimizando Creación de Formularios MDI nelostanley OOP 20 08-01-2008 04:00:36
Realizar una consulta sobre los registros que devuelve otra consulta Borjaserrano Firebird e Interbase 12 02-10-2007 00:19:44


La franja horaria es GMT +2. Ahora son las 02:11:05.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi