distruggi le variabili dopo che le hai usate, liberi memoria ed eviti spurie :P
nel programma che sto sviluppando c'e' un sistema di ricerca abbastanza complesso e anche io avevo un problema simile.
ho risolto facendo una funzione (quella di ricerca), una volta visualizzato il risultato pulisco tutto
...
M3Dsqls.Search("Cognome", Me.TextBoxCercaCognome.Text, "")
Me.TextBoxCercaNome.Text = ""
Stringa = Nothing
Opzioni = Nothing
Campo = Nothing
lancia la funzione, pulisce la textbox, azzera le variabili in eccesso.
sulla lentezza del programma non saprei anche qui durante le fasi di test e' incredibilmente lento/pesante, penso sia colpa del debugger che gira sotto..