Buenos Dias
Hace algun tiempo realize una aplicacion para llevar control de inventarios algo sencillo, utilize visual basic 2010 express y sql server.
Ahora la base de datos llego a 160.000 usuarios, y por lo tanto se me presento un pequeño detalle que habia pasado por alto. al hacer una consulta al ultimo usuario de la base de datos se me demora entre 10 segundos a 20 segundos, demasiado tiempo.
SQL SERVER: Para crear la base de datos utilize:
------------------------------------------------------------------------------------------
CREATE TABLE USUARIOS1 (Documento varchar(15)PRIMARY KEY CLUSTERED,
Tipo varchar(3), APELLIDO_1 varchar(15), APELLIDO_2 varchar(20),
NOMBRE_1 varchar(15), NOMBRE_2 varchar(20), Eps varchar(50),
Edad varchar(8), Direccion varchar(30), Telefono varchar(10),
Estrato varchar(2), Sexo varchar(10), Contrato varchar(15))
-----------------------------------------------------------------------------------------
VB: Para conectarme a la base de datos utilize:
----------------------------------------------------------
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
----------------------------------------------------------
cn.Open("Provider=SQLOLEDB; " & _
"Initial Catalog=MI BD; " & _
"Data Source=ALEX\SQLEXPRESS; " & _
"User Id=admin;Password=******* ;")
----------------------------------------------------------
'DEFINO LAS CARACTERISTICAS DEL RECORDSET
rs.ActiveConnection = cn
rs.CursorType = ADODB.CursorTypeEnum.adOpenKeyset
rs.LockType = ADODB.LockTypeEnum.adLockOptimistic
-------------------------------------------------------------------------
'PARA REALIZAR LA BUSQUEDA Y COLOCAR EL DATO EN TEXTBOX
rs.Open("select * from USUARIOS1")
rs.Find("Documento = '" & TextBox1.Text & "'")
If rs.BOF = False And rs.EOF = False Then
TextBox2.Text = rs.Fields(1).Value
TextBox3.Text = rs.Fields(2).Value
Else
MsgBox("No se ha podido localizar el registro")
TextBox1.Focus()
End If
rs.Close()
--------------------------------------------------------------------------------------------
Buenos como vemos el codigo es sencillo y realizo lo que quiero, en algunos formularios utilizo para la busqueda:
rs.Filter = "Documento = '" & TextBox1.Text & "'"
Pero sigue igual de lenta la busqueda.
Quisiera que me ayudaran con alguna otra forma para que la busqueda sea mas rapida le agradeceria mucho.