Novato Acceso a Datos
Publicado por JCdev (2 intervenciones) el 27/08/2009 18:03:20
Hola. Alguien puede ayudarme:
Soy novato y estoy trabajando con 5000000 de registros. En memoria creo una tabla en 3 segundos, pero cuando intento en SQL esto se me relentiza (de hecho no me termina por que la corto) aunque si veo como crece la base de datos - lo corté con 200 mb. aproximadamente, tras mas de una hora.
Algo no hago bien o es que SQL no es tan bueno como dicen?
Mi codigo es sencillo con solo 2 o 3 campos. Es algo así:
Dim Conexion As New SqlConnection
Conexion.ConnectionString = "Data Source= . . . . .Security=True"
Try
Conexion.Open()
Catch ex As Exception
MsgBox("no conecto con la base de datos")
Exit Sub
End Try
Dim Consulta As New SqlCommand("select * from TABLA", Conexion)
Dim Adaptador As New SqlDataAdapter
Adaptador.SelectCommand = Consulta
Dim DatasetTabla As New DataSet
Adaptador.Fill(DatasetTabla, "TABLA")
Dim Tabla As DataTable = DatasetTabla.Tables("TABLA")
Dim i As Integer = 0
Dim Registro As DataRow
Dim constructor As SqlCommandBuilder = New SqlCommandBuilder(Adaptador)
for i = 1 to 5000000
Registro = tabla.NewRow
Registro("IDCampo1") = i
Registro("Campo2") = "Cadena"
Tabla.Rows.Add(Registro)
Next i
Adaptador.Update(Tabla)
Tabla.AcceptChanges()
Adaptador = Nothing
Conexion.Close()
Soy novato y estoy trabajando con 5000000 de registros. En memoria creo una tabla en 3 segundos, pero cuando intento en SQL esto se me relentiza (de hecho no me termina por que la corto) aunque si veo como crece la base de datos - lo corté con 200 mb. aproximadamente, tras mas de una hora.
Algo no hago bien o es que SQL no es tan bueno como dicen?
Mi codigo es sencillo con solo 2 o 3 campos. Es algo así:
Dim Conexion As New SqlConnection
Conexion.ConnectionString = "Data Source= . . . . .Security=True"
Try
Conexion.Open()
Catch ex As Exception
MsgBox("no conecto con la base de datos")
Exit Sub
End Try
Dim Consulta As New SqlCommand("select * from TABLA", Conexion)
Dim Adaptador As New SqlDataAdapter
Adaptador.SelectCommand = Consulta
Dim DatasetTabla As New DataSet
Adaptador.Fill(DatasetTabla, "TABLA")
Dim Tabla As DataTable = DatasetTabla.Tables("TABLA")
Dim i As Integer = 0
Dim Registro As DataRow
Dim constructor As SqlCommandBuilder = New SqlCommandBuilder(Adaptador)
for i = 1 to 5000000
Registro = tabla.NewRow
Registro("IDCampo1") = i
Registro("Campo2") = "Cadena"
Tabla.Rows.Add(Registro)
Next i
Adaptador.Update(Tabla)
Tabla.AcceptChanges()
Adaptador = Nothing
Conexion.Close()
Valora esta pregunta


0