Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-08-2018
hal1967 hal1967 is offline
Miembro
 
Registrado: feb 2012
Posts: 32
Poder: 0
hal1967 Va por buen camino
Este pedazo del código sería terrible (por lo menos en mysql)

Código Delphi [-]
qry.sql.add('(SELECT MAX(campo2) AS b');        

qry.sql.add('FROM tabla1');  

qry.sql.add('WHERE campo3=1 AND campo4= 'texto' AND campo2<6584651)');

MAX es genial en ciertos casos, porque el manejador de bb dd simplemente busca el ultimo registro del indice para esa columna, ni siquiera baja a disco (los indices están en ram), pero en el WHERE refieres al mismo campo (CAMPO 2) por lo que hay que recorrer el indice

Mi sugerencia es que pruebes un indice campo2, campo3, campo4 (siempre campo2 primero) y mides si ese subquery mejora

Yo de hecho cambiaría un poco la consulta (cosas de MySQL)

Código:
 SELECT campo2
FROM tabla1
WHERE campo3=1 AND campo4= 'texto' AND campo2<6584651
ORDER BY campo2, campo3, campo4 DESC
LIMIT 1
Ahora fuera del subquery tienes
Código Delphi [-]
qry.sql.add('SELECT  MAX(campo1)AS a,');          

qry.sql.add('FROM CFDI');       
qry.sql.add('WHERE campo3 =:valor1 AND campo4=:valor2 AND campo2<:valor3');


Esto si es un dolor de cabeza, siempre termina por crear una tabla temporal y luego ordenarla. No importa lo que mejores el
subquery (por cierto no entiendo la función del subquery)


Lo seguiré pensando, pero realmente no veo forma de optimizar ese query.
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
Como optimizar la conversion de hexadecimales a enteros decimales REVINFOR Varios 12 18-10-2014 23:57:48
Ayuda como Optimizar Código JerS OOP 3 24-06-2011 05:59:44
¿como optimizar rendimiento y tamaño base de datos firebird 2.5? JXJ Firebird e Interbase 4 22-11-2010 02:51:45
Optimizar clientDataSet Kenobi Varios 2 07-07-2010 22:20:46
Como optimizar la operación Last marcoszorrilla Trucos 0 29-06-2006 22:37:06


La franja horaria es GMT +2. Ahora son las 12:27:15.


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