• Lunes 18 de Noviembre de 2024, 06:45

Autor Tema:  Consultas Rapidas???  (Leído 3528 veces)

Soultaker

  • Miembro HIPER activo
  • ****
  • Mensajes: 972
  • Nacionalidad: pe
    • Ver Perfil
Consultas Rapidas???
« en: Miércoles 9 de Marzo de 2005, 15:08 »
0
Hola que tal tengo una pregunta, saben como puedo hacer consultas rapidas, lo que pasa es que tengo una base de datos de cerca de 1 millon de registros y cuando quiero hacer una consulta se demora ufffffffffffffffffffffff me quedo asi -_-  -_- , despues probe creando indices pero igual demora, calro que ya no tanto pero igual demora, la cosa seria que apenas haga la consulta ya me muestre el resultado.

Espero sus respuestas. Gracias a todos.

 :comp:
http]
foros,programacion, c, c++, java,
linux, videojuegos, directX, .NET,
visual basic,robotica,microprocesadores

Para los nuevos usuarios de este Foro, por favor leerse esta discusión.
Cómo Hacer Preguntas De Forma Inteligente

Ojos que no ven... pisan caquita
Camarón que se duerme... muere electrocutado


<<< Harol Moreyra Bendezú >>>

lucaseto

  • Miembro activo
  • **
  • Mensajes: 32
    • Ver Perfil
Re: Consultas Rapidas???
« Respuesta #1 en: Viernes 11 de Marzo de 2005, 18:46 »
0
Manda el procedimiento y la tabl :rolleyes:  :(  :alien: a y lo miramos a ver que es

antony_soluciones

  • Miembro MUY activo
  • ***
  • Mensajes: 222
    • Ver Perfil
Re: Consultas Rapidas???
« Respuesta #2 en: Lunes 25 de Julio de 2005, 04:36 »
0
yo he solucionado problemas similares pero siempre ha sido afinando los query's o haciendo tuning, deberias publicar los querys y aca los vemos....
[size=109]Antony Hernan Delgado Solano. @antonyDelSol en twitter[/size]

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Consultas Rapidas???
« Respuesta #3 en: Lunes 25 de Julio de 2005, 06:13 »
0
waiting for querys...
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

Soultaker

  • Miembro HIPER activo
  • ****
  • Mensajes: 972
  • Nacionalidad: pe
    • Ver Perfil
Re: Consultas Rapidas???
« Respuesta #4 en: Sábado 30 de Julio de 2005, 22:04 »
0
Cita de: "antony_soluciones"
yo he solucionado problemas similares pero siempre ha sido afinando los query's o haciendo tuning, deberias publicar los querys y aca los vemos....
Cita de: "JuanK"
waiting for querys...
Ya que tanto piden el query, bueno ahi se los mando, esta es para crear el indice
<!--sql--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>SQL </td></tr><tr><td id='CODE'><!--sql1-->CREATE CLUSTERED INDEX idx_telefono ON Agenda(ag_tlf ASC) <!--sql2--></td></tr></table><div class='postcolor'><!--sql3-->
Ahi esta el query, servidos muchachos, espro que ahora si me puedan ayudar.

Gracias a todos. Saludos  :hola:
http]
foros,programacion, c, c++, java,
linux, videojuegos, directX, .NET,
visual basic,robotica,microprocesadores

Para los nuevos usuarios de este Foro, por favor leerse esta discusión.
Cómo Hacer Preguntas De Forma Inteligente

Ojos que no ven... pisan caquita
Camarón que se duerme... muere electrocutado


<<< Harol Moreyra Bendezú >>>

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Consultas Rapidas???
« Respuesta #5 en: Sábado 30 de Julio de 2005, 23:30 »
0
pero  no has posteado ningun query solo has posteado la sentenceia para crear el indice... :scream:
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

Soultaker

  • Miembro HIPER activo
  • ****
  • Mensajes: 972
  • Nacionalidad: pe
    • Ver Perfil
Re: Consultas Rapidas???
« Respuesta #6 en: Domingo 31 de Julio de 2005, 00:21 »
0
Cita de: "JuanK"
pero  no has posteado ningun query solo has posteado la sentenceia para crear el indice... :scream:
Los querys que uso son como cualquiera, mirando la sentencia para crear indices, el indice se crea en el campo ag_tlf, eso quiere decir que al hacer una consulta

<!--sql--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>SQL </td></tr><tr><td id='CODE'><!--sql1-->[color=blue;font-weight]SELECT[/color] * FROM Agenda WHERE ag_tlf='4687548' <!--sql2--></td></tr></table><div class='postcolor'><!--sql3-->
me debe mostrar al instante el registro donde el ag_tlf sea 4687548, pero esto demora.

En conclusión el indice se crea en el campo, y al hacer una consulta usando el where con ese campo, ahi ya se esta usando el indice.

 :comp:
http]
foros,programacion, c, c++, java,
linux, videojuegos, directX, .NET,
visual basic,robotica,microprocesadores

Para los nuevos usuarios de este Foro, por favor leerse esta discusión.
Cómo Hacer Preguntas De Forma Inteligente

Ojos que no ven... pisan caquita
Camarón que se duerme... muere electrocutado


<<< Harol Moreyra Bendezú >>>

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Consultas Rapidas???
« Respuesta #7 en: Domingo 31 de Julio de 2005, 06:50 »
0
hola de nuevo

*que base de datos usas?
*el campo ag_tlf puede repetirce en mas de una agenda?
*el campo ag_tlf  necesariamente debe ser varchar2? (supongo que si pues es un telefono no?)
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

DiabloRojo

  • Miembro MUY activo
  • ***
  • Mensajes: 220
    • Ver Perfil
Re: Consultas Rapidas???
« Respuesta #8 en: Domingo 31 de Julio de 2005, 13:57 »
0
Qué tal Soultaker?
Hasta donde tengo entendido las consultas SELECT que devuelven todos los campos se optimizan reemplazando el "*" por el nombre de cada campo. Es decir

En vez de esto:
Código: Text
  1.  
  2. SELECT * FROM nombretabla
  3.  
  4.  

Algo como esto:
Código: Text
  1.  
  2. SELECT campo1,campo2,campo3...campoN FROM nombretabla
  3.  
  4.  

Además de agregar una o varias condiciones de búsqueda.

Espero que te aumente la velocidad del query.

DiabloRojo

Soultaker

  • Miembro HIPER activo
  • ****
  • Mensajes: 972
  • Nacionalidad: pe
    • Ver Perfil
Re: Consultas Rapidas???
« Respuesta #9 en: Domingo 31 de Julio de 2005, 17:05 »
0
Cita de: "JuanK"
*que base de datos usas?
La base de datos se llama AGENDA

Cita de: "JuanK"
*el campo ag_tlf puede repetirce en mas de una agenda?
El campo ag_tlf en este caso no se repite, el campo es unico.

Cita de: "JuanK"
*el campo ag_tlf necesariamente debe ser varchar2? (supongo que si pues es un telefono no?)
Bueno creo que el tipo de dato no importa mucho, ya que si lo pongo de tipo INT, lo importante es como lo emplee en la consulta, igualmente si le pongo VARCHAR lo tendría que poner entre comillas simples en la consulta.

Cita de: "DiabloRojo"
Hasta donde tengo entendido las consultas SELECT que devuelven todos los campos se optimizan reemplazando el "*" por el nombre de cada campo.
No estoy seguro si lo optimizará mas, pero la consulta sigue demorando.

Les explico mejor lo que estoy haciendo, tengo la Base de Datos de las Páginas Blancas de teléfonos, como bien deben saber esa Base de Datos contiene cerca de 500 mil registros (si no estoy mal), con solo decirles que el archivo de la Base de Datos ocupa 715 MB, el problema es que al hacer una busqueda de un teléfono (el campo ag_tlf) demora demasiado (debe ser por que hay muchos registros), pero al crearle un indice en el campo ag_tlf lo hace un poco mas rapido, pero igual demora.

Si alguno de ustedes tiene una base de datos con bastantes registros hagan un select de un registro especifico, y verán que demora.

Bueno chauuuu  :hola:

 :comp:
http]
foros,programacion, c, c++, java,
linux, videojuegos, directX, .NET,
visual basic,robotica,microprocesadores

Para los nuevos usuarios de este Foro, por favor leerse esta discusión.
Cómo Hacer Preguntas De Forma Inteligente

Ojos que no ven... pisan caquita
Camarón que se duerme... muere electrocutado


<<< Harol Moreyra Bendezú >>>

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Consultas Rapidas???
« Respuesta #10 en: Domingo 31 de Julio de 2005, 17:27 »
0
1- Sino es necesario que sea varchar2 entonces dejalo number pues las busquedas son mas rapidas.
2- tienes dos opciones, crear un indice unico o crear un constraint unique
<!--sql--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>SQL </td></tr><tr><td id='CODE'><!--sql1-->CREATE UNIQUE INDEX idx_telefono( Agenda)
<!--sql2--></td></tr></table><div class='postcolor'><!--sql3-->
<!--sql--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>SQL </td></tr><tr><td id='CODE'><!--sql1-->[color=blue;font-weight]ALTER TABLE[/color] agenda
ADD CONSTRAINT cns_telefono UNIQUE (Agenda)
<!--sql2--></td></tr></table><div class='postcolor'><!--sql3-->

DEBE SER ALGO PARECIDO NO LO RECUERDO EN ESTE MOMENTO (Por cierto es sintaxis de oracle)

3- Realiza estimaciones del tamaño de cada registro de la tabla con el fin de que al momento de la creacion utilices un tamaño de bloque personalizado.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io