Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Ordenar datos del Lado del Cliente (https://www.clubdelphi.com/foros/showthread.php?t=56680)

Efren2006 23-05-2008 18:07:33

Ordenar datos del Lado del Cliente
 
Señores

Estoy programando un aplicacion en Delphi 2006 con Interbase 7,1, y estoy utilizando para la conexion los componentes Nativos del Interbase, TIBQUery, TIBDataset, TIBdatabase, etc,etc

Me gustaria saber si existe la posibilidad de ordenar las consultas del lado del cliente, es decir no utlizar el "Order BY Campo??", esto es para ganar velocidad de respuesta en consultas de alto volumen.

Gracias por cualquier sugerencia..

roman 23-05-2008 18:14:23

¿Has notado una diferencia importante entre usar order by y no usarlo? Porque de ser así, quizá es que no tengas los índices adecuados. Con los índices requeridos, un motor estará en condiciones de ordenar los datos muy posiblemente más rápido de lo que lo haga el cliente así que no creo que se gane por ese lado.

De todas formas, no sé si directamente con los componentes IB se pueda hacer lo que quieres, pero siempre queda la posibilidad de factorizar con un ClientDataSet:

IB -> DataSetProvider -> ClientDataSet -> Controles DB Aware

y con el ClientDataSet seguro que puees ordenar como deseas.

// Saludos

Efren2006 29-05-2008 19:34:54

La Verdad fue una sugerencia de un Compañero que trabaja con Bases de Datos SQL Server de grandes volumenes de informacion, y queria hacer una Pruebas con Interbase a ver que tal hiba..

De todas maneras Gracias por tu ayuda y lo probare a ver q tal..

Andreano 30-05-2008 08:30:24

Si la query es un simples SQL: select * from tabla, recomiendo ordenar en el SQL

En querys muy complejas y si tienes los índices adecuados, la respuesta de InterBase será rapida.

O que puede pasar es que muchas veces los usuarios después de ejecutar un query, necesitan del mismo resultado ordenado por otro campo, en este caso si tienes todos en un ClientDataSet basta ordenar lo mismo, que será hecho en memoria y así no tienes que ejecutar de nuevo la query.

Saludos,
Andreano

Efren2006 30-05-2008 17:01:48

Gracias por su Tiempo y sus oportunas Respuestas, hare mis pruebas para verificar lo comentado

Saludos a Todos


La franja horaria es GMT +2. Ahora son las 07:01:14.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi