FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Hola
No puedo hablar por los demas. En mi caso: Tengo 7 ordenadores conectados a la BD simultaneamente sin problemas. Eso si, Tratamos de no atacarla......... Saludos PD: Firebird se comporta muy bien, no le tengas miedo, duro con ella...
__________________
Siempre Novato |
#2
|
||||
|
||||
Para el amigo mcs, tienes razón es más sencillo, intuitivo y legible atacar las tablas tal como tu lo mencionas, al final cuando haces por ejemplo:
El componente que usas en realidad convierte todo eso en un insert (aunque tú no lo veas), lo mismo sucede cuando haces tabla.edit; el componente hará un "update table". En ambos casos no hay ninguna ventaja apreciable en velocidad haciéndolo mediante la forma que mencionas o la que dice caral. Eso sí, hay que cuidarse de nunca de los nuncas hacer un "select * from tabla" sin ponernle un filtro para editar un solo registro pues entonce sí que tendras problemas de lentitud, pues te traeras todo de un jalón. La gran ventaja de hacerlo como dices es que no tienes que revolver SQL directamente con tu código, lo que lo hace más legible. Yo utilizo ese esquema para hacer CRUD (que es lo que más ocupa uno en entornos administrativos) y me ha funcionado sin ningún problema. También uso el esquema de caral cuando se trata de procesos tipo batch que no son interactivos. Al final de cuentas cualquiera de los 2 métodos es correcto siempre y cuando estén bien aplicados y soportados, cualquiera va a ser lento si se basa en un mál concepto o diseño.
__________________
AKA "El animalito" ||Cordobés a mucha honra|| |
#3
|
||||
|
||||
Hola
A mi escaso entender: Esto: Es exactamente lo mismo que esto:
En otras palabras, te traes todo el contenido de la tabla, te guste o no. Por lo tanto; Es mas simple, SI?, tal vez, pero no es mejor que hacer el edit, insert, ect directamente al campo sin traer nada extra. Repito: a Mi pequeño, muy pequeño entender. Saludos
__________________
Siempre Novato |
#4
|
||||
|
||||
Cita:
y luego hago las modificaciones en ese registro...
igual trabaja para las inserciones. Otra opinión no sobra...
__________________
Buena caza y buen remar... http://mivaler.blogspot.com |
#5
|
||||
|
||||
Cita:
|
#6
|
||||
|
||||
Hola
Bueno, como diria mi amigo Egostar: Depende, depende.... Si hablamos de los componentes (y por eso mencione que SI depende de ellos) en el caso de los IBQuery esto no se puede hacer, envia un hermoso error ya que no permiten hacer ediciones, inserciones etc.... Para esto se usarian los IBDataset, que en tal caso lo hacen algo diferente. Por otro lado: Me extraña que un programador con la esperiencia de AzidRain diga abiertamente que es lo mismo y que no afecta en la velocidad traer todos los registros con un Table.Open para hacer un edit, inser u otro y que ademas es mas simple. No se, pero la idea es darle a las personas la solucion optima, la mas apropiada y no la mas simple que dara problemas a la larga. Saludos
__________________
Siempre Novato |
#7
|
||||
|
||||
Ya que se admiten consejos, si me lo permiten... aquí va otro:
Jamás de los jamases se debe emplear asterisco. ¡Es una práctica tediosa e ineficiente! Es algo que hay que erradicar... ¡DI NO a *! El uso del asterisco obliga al motor realizar dos consultas previas sobre las tablas del sistema: la primera para extraer los campos de dicha tabla, la segunda para pre armar la consulta definitiva. Luego recién se lanza la consulta que se ha elaborado. Es mucho más liviano y práctico indicar los campos EXTRICTAMENTE NECESARIOS que lanzar un select *. Si admito que es muy molesto e incómodo cuando la tabla tiene demasiados campos, pero en definitiva lo que habría que preguntarse es: ¿Es necesario suministrar todos los campos? Si es un si pues ni modo, a enlistarlos. Si la funcionalidad a la que estamos por brindar soporte no requiere devolver todos los campos... ¿Qué sentido tiene el *? Otra posibilidad que cabría poner en discusión cuando la cantidad de campos es alta es la de preguntarse si estará bien normalizada. Encontrar un adecuado equilibrio entre la normalización y desnormalización es tanto un arte como una ciencia. Saludos, |
#8
|
||||
|
||||
El uso de tablas sólo puede ser factible usarlo con las que tienen pocos registros, por ejemplo:
tbTiposIVA que va a tener menos de 5 registros.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código Únete al grupo Teaming clubdelphi | Colabora mediante Paypal Última edición por Casimiro Notevi fecha: 10-07-2010 a las 19:13:08. |
#9
|
|||
|
|||
Cita:
Esto es lo que me refería! Por otra parte, diría que en las IBDAC un table.open no equivale a un SELECT * FROM loquesea;. Lo tendría que mirar con detalle (las IBDAC traen un monitor para ver exactamente que comandos SQL se ejecutan)... |
#10
|
|||
|
|||
Cita:
, puedes limitar el número de registros a través de un filtro. Eso es lo que Caral está comentando desde un inicio, con el Query puedes seleccionar los campos que realmente necesitas ahorrando tiempo y recursos. Saludos |
#11
|
||||
|
||||
Cita:
El sistema de tablas está bien cuando son relativamente pocos registros, pero según vayan aumentando cada vez será más lento abrir la pantalla donde está esa tabla y cada vez tardará más en insertar un registro. Ni que decir tiene que si hay muchísimos registros en la tabla entonces ya ni siquiera será operativo y se tendrá que hacer el cambio y olvidar el uso de ttable. El uso de ttable es el típico de los mensajes "mi programa iba muy bien pero últimamente tarda mucho en acceder y en grabar los datos, formateé el disco y reinstalé el windows, pero sigue igual de lento, cada vez más, ¿será un fallo del firebird?" |
#12
|
||||
|
||||
Para muestra un botón, el siguiente código corresponde a la propiedad tablename del componente tztable de los componentes zeoslib:
|
#13
|
||||
|
||||
Hola
Por eso digo, no hay que ser un maestro para saber algo tan básico. Seguir insistiendo en que un table.open es eficiente o que es lo mismo que hacerlo por SQL, es perder el tiempo. Me sigue extrañando que AzidRain defienda lo indefendible y que ademas mcs insista en esto sin conocimiento alguno, notable. Soy novato, pero hay mas principiantes. Saludos
__________________
Siempre Novato |
#14
|
||||||
|
||||||
Cita:
Cita:
Cita:
Igual que está preparada para trabajar con grandes cantidades de datos sin que baje de rendimiento Cita:
Las bases de datos de casi todos mis clientes están por encima de 500 Megas y las conexiones están alrededor de 50 (de media). Cita:
Cita:
Además debes recordar que con Firebird puedes usar servidores con una amplia variedad de sistemas operativos, puedes instalarlo desde los más pequeños equipos hasta los superordenadores más grandes que existen, ya que funciona en linux (es su entorno natural). Además es libre y gratis. Por cierto, aunque me gusta mucho Firebird, yo tampoco descartaba PostgreSQL de la lista. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Delphi 6 y Firebird 2.1 | Pedro-Juan | Conexión con bases de datos | 7 | 21-09-2008 00:22:51 |
Firebird y Delphi 7 | miguel_e | Conexión con bases de datos | 2 | 16-11-2007 18:11:23 |
firebird y delphi.net | julyus | Firebird e Interbase | 2 | 25-10-2006 15:48:51 |
Delphi 5 y Firebird | alexcabo | Firebird e Interbase | 3 | 18-07-2006 01:40:24 |
Firebird en Delphi | JXJ | Firebird e Interbase | 3 | 04-11-2005 20:19:48 |
|