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

retardo con consulta mssql y mysql

Estas en el tema de retardo con consulta mssql y mysql en el foro de SQL Server en Foros del Web. Hola buenas, tengo que realizar una consulta a mysql para despues decirle que quiero eliminar registros de mssql, sobre la bbdd mysql, El problema que ...
  #1 (permalink)  
Antiguo 21/11/2012, 04:50
Avatar de syntex  
Fecha de Ingreso: noviembre-2002
Ubicación: Cataluña
Mensajes: 978
Antigüedad: 22 años
Puntos: 4
retardo con consulta mssql y mysql

Hola buenas,

tengo que realizar una consulta a mysql para despues decirle que quiero eliminar registros de mssql, sobre la bbdd mysql,

El problema que veo que tarda muchísimo la consulta, me pueden ayudar?

MSSQL
Código SQL:
Ver original
  1. SELECT REF FROM articulos


MYSQL
Código MySQL:
Ver original
  1. SELECT CODIGO FROM dbo.articulo WHERE (BAJA != 1 AND CODIGO NOT IN ('' ".$this->where_articulos.")

La bbdd tiene unos 30000 registros, y bueno es eterno para hacer la consulta.

Muchísimas gracias.
__________________
------------------------------------------------
La paciencia es el rey de la ciencia
------------------------------------------------


Última edición por gnzsoloyo; 21/11/2012 a las 08:13 Razón: Codigo d eprogramacion no peritido en foros de base de atos.
  #2 (permalink)  
Antiguo 21/11/2012, 08:17
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: retardo con consulta mssql y mysql

Por un lado, nadie intentaría poner una lista de 30.000 valores dentro del IN(). Eso no tiene sentido, y es un desastre de performance, sin importar con qué DBMS estás trabajando.
Hay otros modos de hacerlo: LEFT OUTER JOIN, subconsultas, etc., que son mucho más eficientes.
También hay modos diferentes según el DBMS, y tu estás hablando de dos completamente distintos (SQL Server y MYSQL), que en muchos casos no comparten toda la sintaxis.
Primero aclaranos en cuál vas a trabajar, cómo obtienes esa lista de valores, y cómo es la relación entre las tablas impactadas.
Entonces podremos ver una opción adecuada.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 21/11/2012, 17:35
Avatar de Potro  
Fecha de Ingreso: abril-2001
Mensajes: 2.249
Antigüedad: 23 años, 7 meses
Puntos: 39
Respuesta: retardo con consulta mssql y mysql

EL problema no es Myql si no como intentas ejecutar algo asi desde PHP armando el query.

Te recomiendo mejor crearte un Stored Procedure donde la base de datos se encarge de resolver esto y solo aventar el resultado a PHP para que ahora si vallas a tu MsSql para hacer lo que quieras.
__________________
Paginación en FLASH,

http://www.forosdelweb.com/f62/pagin...o-aqui-540241/
  #4 (permalink)  
Antiguo 21/11/2012, 20:07
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: retardo con consulta mssql y mysql

Personalmente, tengo mis dudas de que usar un SP, que como todo SP corre en la base, genere alguna diferencia con respecto a la perfomance de una consulta que también corre en la base, en tanto los 30.000 valores del IN() sigan estando allí...
Es la consulta lo que tarda mucho, no la recuperación de los datos en PHP.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 21/11/2012, 23:40
Avatar de syntex  
Fecha de Ingreso: noviembre-2002
Ubicación: Cataluña
Mensajes: 978
Antigüedad: 22 años
Puntos: 4
Respuesta: retardo con consulta mssql y mysql

Hola muy buenos días,

Al final gracias a todos vosotros tenéis todo más que razón.

Probando ya que como comentáis que era una consulta con muchos registros a no consultar, cree una tabla boleana en mssql para comprobar y así no hacer NOT IN en mysql

Y todo más que perfecto,

Menos mal que hay que probar para saber el funcionamiento de los query y así coger expieriencia.

Muchísimas gracias nuevamente.
__________________
------------------------------------------------
La paciencia es el rey de la ciencia
------------------------------------------------


Etiquetas: mssql, mysql, registro, retardo, select
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 00:41.