# El beneficio de los hermanos contiguos

**URL:** <https://foros.velneo.com/t/el-beneficio-de-los-hermanos-contiguos/11000>\
**Category:** Velneo\
**Created:** [6 Abril, 2022 14:20 UTC](https://foros.velneo.com/t/el-beneficio-de-los-hermanos-contiguos/11000 "2022-04-06T14:20:49Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![carlosan](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/carlosan/32/5706_2.png) [@carlosan](https://foros.velneo.com/u/carlosan)\
**Post date:** [6 Abril, 2022 14:20 UTC](https://foros.velneo.com/t/el-beneficio-de-los-hermanos-contiguos/11000/1 "2022-04-06T14:20:49Z")

</div>

No tengo claro para qué sirven los hermanos contiguos.  
¿Para que un registro apunte al anterior o el siguiente?  
Nunca necesité hacer algo así excepto cuando programaba en QBasic5 tablas sin indexar y me inventé los índices.

Yo creía que el hermano anterior era el que tenía una clave anterior: numérica, alfabética o de fecha-hora, según un índice definido.  
¿Que quería leer el anterior? ReadPrevious. ¿Siguiente? ReadNext.

Ya. Que aquí no hay eso. Ni tener un registro con clave A, otro con clave D y leer “B” para poner el puntero en medio o donde sea y pasar después al siguiente o anterior. O me parece que esto si es posible en Velneo, pero da igual, no voy a eso.

Por periodo de pruebas tengo en vERP 11.451 apuntes contables en la tabla APU\_C relativos a 3162 asientos en la tabla ASI\_C.  
Borrar en 3P solo los apuntes desde un “Recorrer lista eliminando fichas” genera una transacción con 3.483.989 operaciones que tarda solo 43 minutos.  
 ![Captura](https://canada1.discourse-cdn.com/flex035/uploads/velneo/original/2X/c/c67f40c715c0a51588e60ba77e0d121b057af0cd.jpeg)  
¿?  
Solo hay asientos → apuntes, no más plurales con datos en otras tablas.  
Ya me dieron en soporte algunas explicaciones y opciones pero …  
¿Qué opinan ustedes de esto?

Bonus Info:  
A medida que se eliminan fichas, el proceso elimina un mayor número de registros por segundo. Representado en gráfico supongo que resultaría exponencial.  
Desde 8 registros en 5 segundos a más de 300 en 1 segundo así a ojo, por encima (en 3P).

Bonus Info2:  
He quitado los dos campos a hermano contiguo de la tabla APU\_C y la transacción devuelve en un minuto 12 segundos este resultado:  
 ![Captura](https://canada1.discourse-cdn.com/flex035/uploads/velneo/original/2X/1/13e227d696ac2418864e734006838b01539e68e9.jpeg)

---

<div class="post-metadata">

**Author:** ![pacosatu](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/pacosatu/32/5131_2.png) [@pacosatu](https://foros.velneo.com/u/pacosatu)\
**Post date:** [6 Abril, 2022 20:09 UTC](https://foros.velneo.com/t/el-beneficio-de-los-hermanos-contiguos/11000/2 "2022-04-06T20:09:15Z")

</div>

Hola carlosan.

Los enlaces [hermano contiguo](https://doc.velneo.com/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-datos/tabla/enlace#hermano-contiguo) es una funcionalidad muy versátil de la **Base de datos real** y con [aplicaciones muy interesantes](https://doc.velneo.com/velneo-vdevelop/analisis-de-bases-de-datos-para-aplicaciones-de-velneo/navegacion-por-facturas#conceptos-a-tratar).

Eso es la teoría, pero como hemos visto en muchas características de la Base de datos Real de Velneo, ponerlas en práctica y en arquitecturas cloud es otra cuestión.

Que ¿ qué me parece que la misma transacción pase de tardar 43 minutos a 1 minuto 12 segundos simplemente por eliminar 2 enlaces “virtuales” de la tabla, ya que las operaciones se reducen en un 98% ?

A mí, me parece muy mal, pero habría que consultar al diseñador o arquitecto de la Base de datos para que nos iluminara.

Saludos  
Paco Satué

---

<div class="post-metadata">

**Author:** ![carlosan](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/carlosan/32/5706_2.png) [@carlosan](https://foros.velneo.com/u/carlosan)\
**Post date:** [7 Abril, 2022 10:06 UTC](https://foros.velneo.com/t/el-beneficio-de-los-hermanos-contiguos/11000/3 "2022-04-07T10:06:31Z")

</div>

Exacto. Eso mismo pensaba yo.  
La casualidad de estar importando datos a la aplicación. Y son tan solo 11.500 apuntes generados en 3 meses por una PYME.  
Si el proceso de importación (también sin plurales) de 11.451 apuntes en 3P tarda 3 minutos 21 segundos, enganchando cada apunte a registro de asiento, a la cuenta de mayor y su auxiliar y buscando los NIF en la tabla ENT\_M de entidades …  
 ![image](https://canada1.discourse-cdn.com/flex035/uploads/velneo/original/2X/d/de948d9ae2af935cc4848e1daaed713e3c211181.png)  
… no se comprende que el borrado en 3P, mucho más sencillo, tarde muchísimo más tiempo.  
No me hago idea de si 3min 21s es mucho o poco para importar 11.451 apuntes contables en 3P, la verdad, pero puedo aceptarlo.

Bonus Info: Eliminación del primer apunte, mediante “seleccionar ficha por pos(1) / elim.ficha sel”  
 ![image](https://canada1.discourse-cdn.com/flex035/uploads/velneo/original/2X/0/013153d78b70091715f4a8da92a2ab9673c8c729.png)

Eliminación de un segundo apunte !! OMG !! esto es iluminación !! No me lo esperaba !!  
 ![image](https://canada1.discourse-cdn.com/flex035/uploads/velneo/original/2X/8/8a0e214dad0b491fa43170560b374bccdf2c0d78.png)

¿Y qué pasará en el tercero ? Tampoco me esperaba esto … ¿¿??  
 ![image](https://canada1.discourse-cdn.com/flex035/uploads/velneo/original/2X/2/245a8070aab6e61141ae2c6cd532318a81b7a763.png)

Cuarto, quinto y sexto seguidos pero de uno en uno:  
 ![image](https://canada1.discourse-cdn.com/flex035/uploads/velneo/original/2X/0/0bf2d9e4ff3c92837f93fc81db7898ffc3b0942d.png)

Y diez registros borrados en un “Recorrer lista eliminando fichas”:  
 ![image](https://canada1.discourse-cdn.com/flex035/uploads/velneo/original/2X/f/f62ea01ecf7a72e0450a2bc90d3edeb5d50e3c85.png)

Creo que eso escapa mi numerología 8127 op / 10 registros= 812ops por registro eliminado, peor que borrando de uno en uno …

¿Y cien?  
 ![image](https://canada1.discourse-cdn.com/flex035/uploads/velneo/original/2X/2/25fc6bcf36711bda36795c4060482b5f9cf3d314.png)

Pero si vacío la tabla de apuntes, importo solo 300 y luego los borro …  
 ![image](https://canada1.discourse-cdn.com/flex035/uploads/velneo/original/2X/a/a964f3cff49e0f1f7473c3f54efd7bb2476ae942.png)  
Son 939 operaciones al importar y 6153 al borrarlos, que no es lo mismo cuando hay 11000 apuntes más.

---

<div class="post-metadata">

**Author:** ![friberam](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/friberam/32/5148_2.png) [@friberam](https://foros.velneo.com/u/friberam)\
**Post date:** [7 Abril, 2022 15:44 UTC](https://foros.velneo.com/t/el-beneficio-de-los-hermanos-contiguos/11000/4 "2022-04-07T15:44:16Z")

</div>

Yo creo que el problema en ese caso no son los punteros es que por cada baja se realiza el recalculo de saldos y ahí es donde viene el problema (Creo)

---

<div class="post-metadata">

**Author:** ![friberam](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/friberam/32/5148_2.png) [@friberam](https://foros.velneo.com/u/friberam)\
**Post date:** [7 Abril, 2022 15:45 UTC](https://foros.velneo.com/t/el-beneficio-de-los-hermanos-contiguos/11000/5 "2022-04-07T15:45:31Z")

</div>

Si quitas los hermanos contiguos entiendo que no hace el recalculo de saldos por eso gana, no por el puntero en si.

---

<div class="post-metadata">

**Author:** ![friberam](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/friberam/32/5148_2.png) [@friberam](https://foros.velneo.com/u/friberam)\
**Post date:** [7 Abril, 2022 15:49 UTC](https://foros.velneo.com/t/el-beneficio-de-los-hermanos-contiguos/11000/6 "2022-04-07T15:49:48Z")

</div>

Si quieres puede probar a dejar los punteros y anular el recalculo de saldos, bien con el campo NO\_CAL\_SAL o bien con una variable que anule el recalculo.  
 ![image](https://canada1.discourse-cdn.com/flex035/uploads/velneo/original/2X/2/24f58ca50d93582e3df10c9a8c1837e753fa8a5c.png)  
El tema de recalculo de saldos, cuando hay volumen de apuntes a mi me lo hace bastante lento.

---

<div class="post-metadata">

**Author:** ![carlosan](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/carlosan/32/5706_2.png) [@carlosan](https://foros.velneo.com/u/carlosan)\
**Post date:** [7 Abril, 2022 16:39 UTC](https://foros.velneo.com/t/el-beneficio-de-los-hermanos-contiguos/11000/7 "2022-04-07T16:39:46Z")

</div>

Hola, Friberam.

Eso mismo me ha dicho soporte.  
Y, en efecto, tarda 1 minuto 10 seg. si los borro haciendo

Recorrer lista eliminando fichas  
…Modificar campo (NO\_CAL\_SAL, 1)  
 ![image](https://canada1.discourse-cdn.com/flex035/uploads/velneo/original/2X/0/0e3fc998e8e2e91342b4a3f58a2268eb558c595b.png)

Así que quitar los contiguos debía ocasionar que no se actualizasen los saldos … supongo.

---

<div class="post-metadata">

**Author:** ![friberam](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/friberam/32/5148_2.png) [@friberam](https://foros.velneo.com/u/friberam)\
**Post date:** [7 Abril, 2022 16:55 UTC](https://foros.velneo.com/t/el-beneficio-de-los-hermanos-contiguos/11000/8 "2022-04-07T16:55:35Z")

</div>

Si quitas los contiguos no recalcula el saldo ya que no evalua el if. El efecto viene a ser el mismo.  
Con cosas masivas, lo mejor es no calcular saldos y luego forzar un recalculo. Aunque creo que debería dársele una vueltecita al tema del recalculo y mejorarlo en la medida de lo posible.

---

<div class="post-metadata">

**Author:** ![pacosatu](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/pacosatu/32/5131_2.png) [@pacosatu](https://foros.velneo.com/u/pacosatu)\
**Post date:** [7 Abril, 2022 18:46 UTC](https://foros.velneo.com/t/el-beneficio-de-los-hermanos-contiguos/11000/9 "2022-04-07T18:46:48Z")

</div>

Hola carlosan.

O sea, que te pones a realizar pruebas de carga con las tablas de Velneo sin comprobar el código de los Triggers y además no compruebas el Inspector de errores cuando eliminas los campos Enlace a hermano contiguo.

Saludos  
Paco Satué

---

<div class="post-metadata">

**Author:** ![carlosan](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/carlosan/32/5706_2.png) [@carlosan](https://foros.velneo.com/u/carlosan)\
**Post date:** [7 Abril, 2022 19:47 UTC](https://foros.velneo.com/t/el-beneficio-de-los-hermanos-contiguos/11000/10 "2022-04-07T19:47:25Z")

</div>

En efecto, Paco Satué.  
Si necesitas un bocazas para hablar de algo sin conocimiento y que a la primera de cambio se pone a decir idioteces en el foro, quedo a tu disposición.  
Al menos tengo esa triste experiencia.  
Y como es una experiencia repetida, debo ser además más bruto que un arao.

Ruego disculpas y a ver si la próxima vez me machaco los dedos con un martillo antes de abrir temas sin sentido en el foro con el agravante de no haber atendido en primero lo que me explicó Antonio Vela en su respuesta de soporte …  
Perdón.🙏

---

<div class="post-metadata">

**Author:** ![pacosatu](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/pacosatu/32/5131_2.png) [@pacosatu](https://foros.velneo.com/u/pacosatu)\
**Post date:** [7 Abril, 2022 20:45 UTC](https://foros.velneo.com/t/el-beneficio-de-los-hermanos-contiguos/11000/11 "2022-04-07T20:45:17Z")

</div>

Hola carlosan.

Muchas gracias por reconocer los errores que por supuesto cometemos todos y de los que se **aprende siempre algo**.

No es necesario pedir disculpas porque seguramente habrá muchos que lean este hilo y se sentirán identificados por haber actuado de la misma forma ante un problema que se empeñan en achacar a Velneo.

Saludos  
Paco Satué
