 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Julian Ens

Registrado: 23 Jul 2004Mensajes: 47
|
Publicado: Mie 06 Sep, 2006 4:01 pm Asunto: Performance ADO |
|
|
Hola amigos,
cómo puedo mejorar el desempeño en mi aplicación que utiliza ADO para conectarse con una base de datos SQL Server 2000, es evidente que algunas consultas a tablas con muchos registros tardan demasiado, que debo configurar en mi TADOConnection o en mis TADOTable, TADOQuery, para mejorar el desempeño.
saludos, _________________ Julian Uribe Hernandez |
|
| Volver arriba |
|
 |
Buildero Master


Registrado: 23 Dic 2003Mensajes: 523Ubicación: Puebla, México
|
Publicado: Mie 06 Sep, 2006 5:20 pm Asunto: |
|
|
Influyen muchos factores...
El diseño de tu base de datos
El diseño de tus consultas
La configuración de tu red, etc.
Pero como sugerencia utiliza TADOQuery ya que con TADOTable regresas TODOS los registros de cierta tabla, mientras que con TADOQuery lo limitas a las condiciones de tus consultas.
Saludos _________________ Quien hace una pregunta teme parecer un ignorante durante cinco minutos, quien no pregunta se mantiene ignorante toda la vida. |
|
| Volver arriba |
|
 |
WaKo13 Ens

Registrado: 12 Mar 2004Mensajes: 34Ubicación: Campeche, Campeche, México
|
Publicado: Mie 06 Sep, 2006 6:46 pm Asunto: |
|
|
Como dice Buildero influyen varios factores como el diseño de la DB, el diseño de las consultas, etc, etc
Yo trabajo tambien en estos momentos en SQL Server 2000 con ADO, y una forma que a mi parecer, igual y estoy en un error, de acelerar las consultas, las insercciones, las actualizaciones han sido los procedimientos almacenados, la creación de vistas, triguers, etc etc |
|
| Volver arriba |
|
 |
Julian Ens

Registrado: 23 Jul 2004Mensajes: 47
|
Publicado: Jue 07 Sep, 2006 4:28 pm Asunto: |
|
|
Amigo Buildero, cuando diseño la base de datos en el SQL Server, es necesario definir las relaciones entre las tablas explicitamente?
o simplemente definirle las claves primarias y ya?, pregunto porque cuando cree mi base de datos no definí las relaciones entre las tablas, simplemente definí las claves primarias de las tablas que tiene clave
gracias, _________________ Julian Uribe Hernandez |
|
| Volver arriba |
|
 |
Buildero Master


Registrado: 23 Dic 2003Mensajes: 523Ubicación: Puebla, México
|
Publicado: Jue 07 Sep, 2006 6:15 pm Asunto: |
|
|
Que tal Julian,
Pues mira, el decir es "necesario" es algo muy aventurado de mi parte. Cada persona puede tener una perspectiva diferente de las cosas.
Lo que si te puedo decir es que "existen buenas prácticas y técnicas" de diseño de base de datos y claro lo que te recomiendan los libros. Pero al final de cuentas, serás tú el que decida cómo diseñar tus Bases de Datos.
El ejemplo más claro es tu situación, has decidido no crear las relaciones de manera explicita, lo cual en algunos escenarios te hará escribir más código. Eso sólo es algo que deberias tomar en cuenta.
Supongamos el siguiente caso. Imagina que tienes una tabla de CLIENTES y una tabla de PEDIDOS, existe una relación de uno a muchos entre clientes y pedidos (un cliente puede tener muchos pedidos). Y he aqui una de las preguntas :
¿que debó hacer si un usuario intenta eliminar un CLIENTE que tiene pedidos?... las posibles respuestas son: que el usuario pueda eliminar la información de un cliente eliminando también sus respectivos pedidos o denegar dicha acción.
Al momento de crear la relación de manera explicita en la base de datos, puedes hacer que el gestor se encargue de esto. Es decir, al configurar la relación pudes indicar que se impida eliminar un CLIENTE si es que tiene PEDIDOS o caso contrario que al eliminar un CLIENTE se eliminen en cascada todos sus PEDIDOS (sin haber escrito código).
Como en tu caso no has especificado la relación de manera explicita, pues tienes que agregar el código necesario para que al eliminar un CLIENTE se eliminen también sus PEDIDOS, claro, si es que la regla es permiitir eliminar un CLIENTE no importando si tiene PEDIDOS.
Esto sólo es algo que se debería de tomar en cuenta para el diseño de base de datos, existen muchas cosas más, como por ejemplo, la integridad referencial, validaciones de entrada de datos desde el gestor, disparadores, procedimientos almacenados, etc.
El aprender a diseñar se dá con la práctica, con las propias experiencias que cada quien va teniendo, pero si te apegas a las mejores téncicas te podrás evitar muchos dolores de cabeza.
Saludos!!! _________________ Quien hace una pregunta teme parecer un ignorante durante cinco minutos, quien no pregunta se mantiene ignorante toda la vida. |
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|