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

Tablas Gigantes en SQL Server

Estas en el tema de Tablas Gigantes en SQL Server en el foro de Bases de Datos General en Foros del Web. Hola, Alguien sabe como puedo hacer para dividir una tabla muy grande de SQL Server en diferentes archivos para poder distribuirla en diferentes discos y ...
  #1 (permalink)  
Antiguo 03/08/2004, 09:41
 
Fecha de Ingreso: mayo-2004
Ubicación: Guadalajara, Jalisco
Mensajes: 47
Antigüedad: 20 años
Puntos: 0
Pregunta Tablas Gigantes en SQL Server

Hola,
Alguien sabe como puedo hacer para dividir una tabla muy grande de SQL Server en diferentes archivos para poder distribuirla en diferentes discos y asi su consulta sea mas rápida.
O cual es la forma correcta de manejar éste tipo de casos?.

Gracias.
__________________
Si puedes pensarlo, puedes hacerlo.
  #2 (permalink)  
Antiguo 03/08/2004, 14:12
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Que tan gigante, quiza solo con un poco de optimización quede (indices, defragmentación, Planes de ejecución, etc).

Revisa, puedes dividir el MDF en varios archivos, si metes el archivo en diferentes unidades divides la DB.

Considera también el uso de un RAID mas eficiente (¿Lo manejan ahora?)
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche

Última edición por Mithrandir; 03/08/2004 a las 14:13
  #3 (permalink)  
Antiguo 04/08/2004, 08:31
 
Fecha de Ingreso: mayo-2004
Ubicación: Guadalajara, Jalisco
Mensajes: 47
Antigüedad: 20 años
Puntos: 0
Digamos que tiene unos 2 millones de registros y crece a una velocidad de aprox. 10,000 registros por día.

Tal vez se podría depurar cada cierto tiempo o pasarla a tablas históricas, pero me pregunto si se podría mantener lógicamente en la misma tabla, aunque físicamente en diferentes lugares. De forma que no me preocupe que tan grande crezca en el futuro y solo tenga que estar dividiendo la tabla físicamente.

Aunque bueno, no se si sea lo correcto.
__________________
Si puedes pensarlo, puedes hacerlo.
  #4 (permalink)  
Antiguo 04/08/2004, 14:57
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
No me parece mucho, he visto de tablas con 11 millones de registros sin grandes complicaciones.

Mejor aplicate a optimizar los índices (quiza requieras mas de 1), de manera que el acceso a la tabla sea mas óptimo. Y ya después te preocupes por dividirla.

Quiza sea mas problema de procesador/RAM que de disco, revisa si la RAM es adecuada
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #5 (permalink)  
Antiguo 04/08/2004, 15:02
 
Fecha de Ingreso: mayo-2004
Ubicación: Guadalajara, Jalisco
Mensajes: 47
Antigüedad: 20 años
Puntos: 0
Me parece bien lo de los indices y la memoria RAM.
Solo que aun me queda la duda de si es posible dividir una tabla físicamente?
__________________
Si puedes pensarlo, puedes hacerlo.
  #6 (permalink)  
Antiguo 05/08/2004, 14:46
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Si se puede, revisa Files and Filegroups en los Books Online (la ayuda).

verás cosas como esta:
Cita:
Filegroups allow files to be grouped together for administrative and data allocation/placement purposes. For example, three files (Data1.ndf, Data2.ndf, and Data3.ndf) can be created on three disk drives, respectively, and assigned to the filegroup fgroup1. A table can then be created specifically on the filegroup fgroup1. Queries for data from the table will be spread across the three disks, thereby improving performance.
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #7 (permalink)  
Antiguo 06/08/2004, 08:29
 
Fecha de Ingreso: mayo-2004
Ubicación: Guadalajara, Jalisco
Mensajes: 47
Antigüedad: 20 años
Puntos: 0
Muchas gracias ,
eso era exactamente lo que estaba buscando. Sabia que se podia dividir la base de datos en diferentes archivos y cosas por el estilo, pero no habia mirado hacia los filegroups.
__________________
Si puedes pensarlo, puedes hacerlo.
  #8 (permalink)  
Antiguo 06/08/2004, 14:30
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Esta de mas decirte que si los archivos los distribuyes sobre el mismo RAID o unidad fisica (aunque sean diferentes unidades logicas) el rendimiento será PEOR.

Necesitas usar diferentes unidades fisicas o RAIDs (incluso de controladoras) para aumentar el rendimiento
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #9 (permalink)  
Antiguo 08/02/2005, 14:05
 
Fecha de Ingreso: noviembre-2003
Mensajes: 46
Antigüedad: 20 años, 6 meses
Puntos: 0
Hola amigos, queria una ayuda urgente de como trabajar contablas de SQL Server grandes tengo 3 teblas de 1.500.00 a 2.900.000 de registros, se que no es mucho pero al hacer las consultas tardan demaciado, estoy trabajando con Visual BAsic 6.0 y me conecto con la base y la tabla asi

Set TE = New ADODB.Connection
str = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=TE;Data Source=DALFONSO\BKUPEXEC"
TE.Open str

Set temp = New ADODB.Recordset
temp.CursorLocation = adUseClient
temp.Open "SELECT Telefono FROM GuiaPais", str, adOpenStatic, adLockOptimistic 'guia pais

Probe con Dynamic y levantando la tabla completa, esta ultima que les paso aca es solo filtrando el campo que me interesa tarda menos pero igual es mucho.

esta guia posee 1.500.000 registros y tarda muchismo en levantarla, mas o menos 2 min. y cuando la levanta tengo que actualizar solo un campo y tarda en los Update muchisimo tambien y cae cuando intenta la segunda actualizacion.

igualmente en el entorn del SQLserver en el Query tambien le cuesta trabajar con la tabla porque ??? ahora estoy creandole indices a ver si mejora pero al crear los indices tambien tarda mucho en actualizar los cambios SALUDOS
  #10 (permalink)  
Antiguo 08/02/2005, 15:22
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Ya tienes el thread correspondiente, procura utilizar únicamente tu thread.
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #11 (permalink)  
Antiguo 31/08/2009, 11:23
 
Fecha de Ingreso: agosto-2009
Mensajes: 5
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Tablas Gigantes en SQL Server

Hola compañeros tengo una pregunta para Mithrandir, o si alguien mas me puede colaborar seria muy bueno.

tengo una tabla que tiene 7 campos uno es la llave primaria por lo cual sql server ya creo un indice para este campo, se espera que la tabla aumente mas o menos 2.300.000 registros por mes.

basicamente las consultas a esta tabla se hacen por la llave primaria o por otra de las columnas, solo por esas dos, pero los datos que necesito que me retornen las consultas es todo el registro osea los 7 campos.

la duda que tengo es que ¿no se si deba crear un indice agrupado para la otra columna por la que se consulta o si debo dividir la tabla en archivos, o si debo crear algun otro tipo de indice? como se menciona en el foro, por el tamaño que puede llegar a tener en el futuro por que por el momento esta vacia.

gracias.
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 19:25.