![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Acceso directo o Indirecto a la Base de Datos
En un Sistema de Información donde acceden muchos usuarios y además las consultas son muy pesadas en tiempo de ejecución, qué es mejor:
- Hacer las consultas a la Base de Datos y descargarlas en Tablas Locales del Cliente para acceso rápido y luego las modificaciones a los registros se hagan por separado refrescando tanto la Tabla Local como la de la Base de Datos. - Hacer las Consultas conectado directamente con la Base de Datos y a los componentes TDB. Lo digo porque estoy haciendo un nuevo diseño y siempre he optado por lo primero, aunque me dicen que ya no es necesario porque las velocidades de acceso directo a Base de Datos son muy buenas hoy día. Gracias. |
#2
|
||||
|
||||
Hola, deberías explicar con más detalle la problemática. Pero en principio lo normal es hacerlo directamente.
Habría que especificar qué es para ti "consultas muy pesadas".
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#3
|
||||
|
||||
Cita:
¿Qué componentes utilizas para ello? ¿De qué número de registros hablamos?
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#4
|
|||
|
|||
Consultas pesadas me refiero a que acceden a un buen número de Tablas y por lo general su respuesta son cientos de registros, lo que hace que tarden en ejecutarse un tiempo considerablemente grande para las necesidades de respuesta de los clientes.
|
#5
|
||||
|
||||
Bueno, sigues sin especificar nada, blaiselaborde, "un buen número de tablas" no nos dice nada. Y "cientos de registros" es algo minúsculo, realmente.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#6
|
|||
|
|||
Cita:
El procedimiento es simple: Abro un componente TQuery con la consulta que necesito y lo recorro en su totalidad, mientras lleno con los mismos registros un TClientDataSet utilizándolo como Tabla Local Temporal. Sé que me puedo ahorrar el paso a la Tabla Local TClientDataSet, y conectar directamente la TQuery al DBGrid, pero mi pregunta es si se consigue la misma velocidad de respuesta por ejemplo al avanzar las Páginas o al mostrar filtrado los datos en el DBGrid desde la TQuery que desde el TClientDataSet, ya que desde éste es inmediata la respuesta por estar en Memoria Local. Tengo Tablas con millones de registros, aunque no se descarga todo . . . Por ejemplo:
|
#7
|
||||
|
||||
El problema que le veo a esto es que siempre estás cargando más datos de la cuenta. Es decir al obligar a cargar toda la tabla o consulta en local (en el TClientDataset) obligar a traer TODOS los datos.
No comentas qué Base de Datos utilizas y qué componentes de conexión, pero muchos de ellos utilizan cursores dinámicos de servidor. Esto significa que si cargas en un DBGrid una tabla o consulta grande, no se cargan todos los registros, sólo los que vas necesitando de forma gradual (los que ves en cada momento y tal vez algunos más). A medida que avanzas por el DBGrid se van solicitando los demás. De esa forma no cargas todos los registros y evitas tráfico innecesario. Yo personalmente, salvo que sea un caso especial (alguno hay) no veo necesidad de traer los datos a local, como norma general.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#8
|
||||
|
||||
Bien, en tu caso, seguramente es más lento de la forma en que lo estás haciendo, ya que pones "una capa", totalmente innecesaria.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#9
|
||||
|
||||
Neftali,
Cita:
![]() Nelson. |
#10
|
|||
|
|||
Muchas gracias chicos . . . . Tomaré el consejo.
|
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Crear un acceso directo | _cero_ | C++ Builder | 2 | 24-06-2008 21:49:33 |
Acceso directo | jorgegetafe | Varios | 10 | 05-06-2007 21:35:00 |
aplicacion en red, con un acceso directo? | m8estrella83 | Conexión con bases de datos | 2 | 25-09-2006 22:48:01 |
Crear acceso directo? | mrmanuel | Varios | 1 | 13-09-2003 01:21:27 |
crear un acceso directo | tango01 | Varios | 7 | 20-06-2003 16:42:48 |
![]() |
|