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 18-01-2006
Jvilomar Jvilomar is offline
Miembro
 
Registrado: mar 2004
Ubicación: Republica Dominicana
Posts: 97
Poder: 21
Jvilomar Va por buen camino
Unhappy Optimizacion Base de Datos

Saludos mis queridos amigos del Club Delphi..

Tengo el siguiente dilema y me gustaria que ustedes me den su siempre sabia opinion.

TEngo una base de datos en SQL Server 2000 en esta eh exportado tres tablas desde DBase donde Cada Tabla tiene 2 millones de Registros. el asunto es que primero quisiera unir todos los registros en una sola tabla ya que voy a tener que consultar todos los registros en una sola consulta. apenas pude crearle el indice a una de las tablas porque cuando intento hacerlo en las otras dos se me cuelga el servidor sql.

Ahora bien la pregunta es: ¿ Esta bien unirlos en una sola tabla? ¿si es asi.. existe alguna forma de que yo pueda optimizar la tabla para que la consulta no se haga superrrrr lenta? o simplemente la dejo como esta en tres tablas diferentes y hago la consulta tabla por tabla? que me recomiendan ustedes?

Muchas gracias por Adelantado...

Atentamente

Jose Manuel.

pd. por si las moscas pienso hacer la consulta en Delphi 7
__________________
El conocimiento es un Patrimonio Universal....
Responder Con Cita
  #2  
Antiguo 18-01-2006
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Saludos

Eso depende de que informacion contenga cada tabla y/o de que informacion deseas consultar, yo supongo que las tablas tienen la estructura de los campos iguales.

Lo de consultar; Hazlo con un rango, sin traer todos los registros y campos.
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #3  
Antiguo 19-01-2006
Jvilomar Jvilomar is offline
Miembro
 
Registrado: mar 2004
Ubicación: Republica Dominicana
Posts: 97
Poder: 21
Jvilomar Va por buen camino
PUes tienes razon vtdeleon las tablas tienen exactamente la misma estructura. Resulta que estaban en DBase y supongo (no conozco mucho si dbase tiene algunas limitaciones en cuanto a capacidad de registro se refiere) que tuvieron que dividirlas en tres porque son unos 7 millones de registro.

el asunto es tratar de ver si existe alguna forma de optimizarla porque ya estoy uniendolas en una sola y francamente me da hasta cierto miedo que el rendimiento y desempeño aun en SQLServer sea lento.
__________________
El conocimiento es un Patrimonio Universal....
Responder Con Cita
  #4  
Antiguo 19-01-2006
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Saludos

Con Dbase, no impota que utilices sentencias sql, filtros, o lo que sea para obtener cierta cantidad de registros, éstos siempre traerán tooooda la información y despues aplican el filtro. Lo cual conlleva a un bajo rendimiento.

En MSSQL y en cualquier otro respetable (Oracle, IB/FB, MySQL,..) es diferente. Ya que éstos ofrecen solo el servicio o la petición que el cliente demande. Solo lo necesario.

Imagino que nadie quiere ver toda la información (7 millones de registros). Seguro que solo quieren ver una parte de la información y mediante una sentencia Sql bién estructurada, pidiendo solo lo necesario, se peude llegar a optimizar mucho el flujo de información y el rendimiento.
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #5  
Antiguo 19-01-2006
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Es innecesario unir en una sola tabla. Para ello puedes crear una vista (que hace que virtuamente paresca una tabla).

No se si usas los componentes de ADO, pero en ese caso (o en cualquiera libreria relativamente moderna de acceso a sql) puedes crear un recordset de solo lectura y hacia adelante (read only, forward) y con los de ADO si lo pones la propiedades de ubicacion en el servidor deberia dar la lectura mas veloz posible.
__________________
El malabarista.
Responder Con Cita
  #6  
Antiguo 20-01-2006
Jvilomar Jvilomar is offline
Miembro
 
Registrado: mar 2004
Ubicación: Republica Dominicana
Posts: 97
Poder: 21
Jvilomar Va por buen camino
Gracias por Responder vtdelon y mamcx.

Para vtdeleon te explico que ya no estoy utilizando DBase solo lo puse como referencia para explicar desde el principio.

para mamcx no eh podido hacerlo ni siquiera como me explicaste, de hecho ni siquiera en el servidor me responde, o sea desde el mismo ConsoleManager se me cuelga cuando intento hacer una consulta por ejemplo de 2 o 3 registros.

Eso me tiene preocupado..... porque sinceramente necesito resolver ese problema...
__________________
El conocimiento es un Patrimonio Universal....
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
Llenado de Base de datos Luis Castillo Firebird e Interbase 1 16-01-2006 20:52:36
Copiar una tabla a otra base de datos noe Firebird e Interbase 4 09-03-2005 17:37:47
Problemas al conectar una tabla ADO a una base de datos de Access que posee contraseñ Roger_Fernandez Conexión con bases de datos 5 28-02-2005 16:46:29
Diseño de la Base de Datos gluglu Conexión con bases de datos 7 09-02-2005 18:04:54
¿Siempre hay que poner la ruta completa de la base de datos que está en el servidor? Al González Firebird e Interbase 2 12-05-2004 22:06:25


La franja horaria es GMT +2. Ahora son las 07:11:19.


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