select datatable solo expertos plis

22/12/2007 - 04:39 por Pablo_Hack | Informe spam
tengo q filtrar d esta tabla tablacodigos as datatable de uns 31000
records

el problema es q este filtro lo hago dentro de un for unas 5000 veces,
el problema es q en la condicion q coloco "66>=num_inicial" esto me
demora 1/2 segundo pero en 5000 se me hace lento, lo raro es q esto no
ocurre si coloco = en vez de >

for i=0 to 5000
sfilter = "66 >=num_inicial AND '" & codigo & "'=area "
Dim foundRows As DataRow() = tablaCodigos.Select(sfilter)
next

Preguntas similare

Leer las respuestas

#1 Morgan
22/12/2007 - 08:09 | Informe spam
Ya se por que, pero no soy experto ... sera en otra ocasion ...

.
.
.
.
.
.
.
.
.
.
el que se tarde no es nada raro y si te sirve de algo la explicacion, no es
lo mismo el operador "=" el cual compara un registro, mientras que ">="
compara el 66, 67, 68 ... 31000, tu dices si se va a tardar

Saludos ... Morgan 8-)
DGPPTB ... Cancún, Quintana Roo, México


"Pablo_Hack" escribió en el mensaje de
noticias
news:
tengo q filtrar d esta tabla tablacodigos as datatable de uns 31000
records

el problema es q este filtro lo hago dentro de un for unas 5000 veces,
el problema es q en la condicion q coloco "66>=num_inicial" esto me
demora 1/2 segundo pero en 5000 se me hace lento, lo raro es q esto no
ocurre si coloco = en vez de >

for i=0 to 5000
sfilter = "66 >=num_inicial AND '" & codigo & "'=area "
Dim foundRows As DataRow() = tablaCodigos.Select(sfilter)
next
Respuesta Responder a este mensaje
#2 Marcos Mellibovsky
02/01/2008 - 19:22 | Informe spam
Hola Pablo,
El dataset no es rapido para filtrar porque no dispone de indices (sobre
todo con muchos registros), cada vez que llamas a Select debe recorrer todo
el datatable para ver fila por fila cuales cumplen con el filtro. Si tenes
que usar el filtro muchas veces te conviene utilizar un DataView el cual te
permite mantener una condidicion de fitrado y ordenado.

Saludos
Marcos Mellibovsky
MCT MCTS MCSD.NET MCDBA MCSE...
Córdoba Argentina

"Pablo_Hack" wrote in message
news:
tengo q filtrar d esta tabla tablacodigos as datatable de uns 31000
records

el problema es q este filtro lo hago dentro de un for unas 5000 veces,
el problema es q en la condicion q coloco "66>=num_inicial" esto me
demora 1/2 segundo pero en 5000 se me hace lento, lo raro es q esto no
ocurre si coloco = en vez de >

for i=0 to 5000
sfilter = "66 >=num_inicial AND '" & codigo & "'=area "
Dim foundRows As DataRow() = tablaCodigos.Select(sfilter)
next
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida