Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: .::IT::. en 9 Mayo 2011, 19:03 pm



Título: "SELECT en DataTable" vs "SELECT en SqlServer"
Publicado por: .::IT::. en 9 Mayo 2011, 19:03 pm
Holas a todos, quisiera saber sus opiniones en cuanto a velocidad de una consulta "select -like" en una base de datos (SQLServer) y un “DataTable” , Cual es más rápido? asumiendo que la base de datos estária en localhost y se piensa tener más de 200000 registros?? Espero sus respuestas y el porqué.

Nota: Actualmente uso un Select sobre un datatable(cargado en memoria a lo largo de mi programa) y con 5000 registros y va bien (no es tan rápido) pero no me lo imagino con 200000 registros, realizare las pruebas correspondientes más adelante pero antes quisiera saber sus opiniones.


Título: Re: "SELECT en DataTable" vs "SELECT en SqlServer"
Publicado por: neoncyber en 9 Mayo 2011, 20:47 pm
Bueno, para esa cantidad de registros se utilizan los indices en tu tabla, esto para mejorar la velocidad de busqueda. Ahora si todas las transacciones seran locales, es decir en una sola maquina, es mejor que utilices una consulta directa a sqlserver.

Por otro lado, no es recomendable mostrar todos los datos de golpe, deberias hacer que tu consulta tenga buenos parametros de filtrado, para de ese modo reducir la cantidad de registros devuletos en una determinada tranasaccion.

En pocas palabras para tu caso, me qudo con la opcion de hacer consultas directas a la base de datos.

Saludos


PD:
Indices en sqlserver
http://www.sqlteam.com/article/sql-server-indexes-the-basics


Título: Re: "SELECT en DataTable" vs "SELECT en SqlServer"
Publicado por: [D4N93R] en 10 Mayo 2011, 21:01 pm
Aparte de lo que te dice neon sobre los indices, yo te doy otro consejo:

Manten las consultas lo más cercano a los datos posible. Es decir, siempre y cuando puedas, trata de hacer los filtros y procesos de datos en lo más profundo de tus capas de acceso a datos.

Y sobre los índices, si hay un campo de alfanumérico al que sabes que le vas a hacer un like, tienes que hacerle un index..

Un saludo!