PDA

Ver la Versión Completa : [Noticia] Velocidad y rendimiento: BBDD/Ficheros Indexados


Kuk
31 de marzo de 2015, 16:56
Acabo de leer en internet por ahi en un foro, un topic donde un hombre que usaba cobol preguntaba por el rendimiento de Delphi y de las Bases de Datos.

Quiero manifestar mi opinion y a mi modo de ver una verdad muy simple respecto al tema de rapidez igual o superior de las BBDD en comparación con los ficheros indexados usados en COBOL.
Me extraña mucho que gente que haya estudiado y se dedique a la programación, defienda esa opinión de que una BBDD puede ser más rapida que un fichero. Es imposible por una simple razón:

Toda (!!!) base de datos, sea la que sea, es utilizada mediante una SGBD. Por si alguien no sabe lo que es - Sistema de Gestión de Bases de Datos. ¿Qué es esto? Básicamente, es una e incluso varias capas de software ente el dato fisico y tu programa. Por lo cual es facil de deducir: A -> Ñ es más rápido que A -> B-C-D-E-F-G-H...-> Ñ. Era, es y así será siempre, nos guste o no.

Otra cosa es que la BBDD tiene sus ventajas, facilidad de manejo de datos por SQL, seguridad y etc.

El unico caso en el que una BBDD puede ser más rápida que un fichero indexado es si los datos se guardan en una maquina diferente y potente, su formato de archivos es diferente etc. Pero aqui se añade el factor de conexion remota a otra maquina etc...

Total. En la misma maquina, una BBDD nunca sera más rapida que un fichero. Si alguien quiere aportar argumentos en contra, bienvenid@ a la discusion. ;)

Hrmcobol
31 de marzo de 2015, 17:50
Exacto Kuk, el tema es que son cosas totalmente diferentes para lograr un mismo fin, yo trabaje el indexados durante muchos años, ahora lo hago sobre ddbb, y creo que son mejores en un montón de cosas, pero nunca van a ser mas rápidos que un indexado/directo, siempre hablando de las mismas condiciones, hoy en día la diferencia la hace la potencia del ordenador, en una PC286 con 64k, el indexado era imbatible.

Saludos

Josber
31 de marzo de 2015, 19:35
El indexado sigue siendo el más rápido lo mires por donde lo mires, y más en COBOL que llevan desde mediado de los 60 depurándolos, yo estoy pasando los fichero más importantes a BBDD, (artículos, clientes, proveedores, ...), pero por razones de consultas y manejo de datos, más que nada por no crear unos índices enormes en los ficheros indexados mediante claves alternativas, pero los demás ficheros, siguen siendo mis queridos indexados de toda la vida. Si los ficheros COBOL, tuvieran estructuras del tipo LIKE, BETWEEN, etc, y además pudiereas buscar por cualquier campo, le iban a dar pomada a las BBDD.

Un saludo.-

Hrmcobol
31 de marzo de 2015, 19:42
Amigo Josber, si el indexado tuviera esas opciones se convertiría en una BBDD. Al final del camino, las BBDDs son indexados con un indice muuuuy grande, nada mas.

Saludos

Kuk
31 de marzo de 2015, 19:59
Que yo sepa, por ejemplo en MVS-z/OS, el IBM DB2 por debajo manejaba (y sigue manejando) los ficheros VSAM, que son los indexados precisamente. y que conste que DB2 se considera el mas potente para grandes cantidades de datos. Incluso mas potente que Oracle, y muchas otras.

Dasije
3 de marzo de 2016, 01:23
En base de datos, si tiene 250 campos no es lo mismo que 3, y eso se nota en el rendimiento cuando se hace una selección (se arregla haciendo una selección correcta de campos), y los ficheros indexados lo guarda todo en una sola columna, y el propio lenguaje interpreta cada campo que hay en el registro teniendo el conocimiento de cada uno.

Lo de IBM, es un mundo aparte, tiene un hardware potenciado en capacidad de cache, y eso se nota, en PC, los equipos han ido avanzando de tecnología, y cada día es más rápido, añadiendo también, que las redes, también han cambiado, no es lo mismo 10 mb que un 1 gb de velocidad.

Las base de datos y ficheros indexados estan muy igualados, antes era más rápido un indexado por las capas de red y software contra un hardware que no era lo suficiente rápido.

Nitzer
5 de abril de 2016, 11:29
No hay mucho mas que añadir, solo os puedo comentar mi experiencia.

Cuando empecé a programar la nueva aplicación en mi empresa, toda en PowerCobol, todo eran ficheros indexados, la costumbre me indicó que ese era el camino, por suerte pronto me dí cuenta que aunque son maravillosos tienen grandes desventajas con respecto a las bases de datos.
Además en la matriz de mi empresa ya se había comprado un ERP y teníamos licencias de SQL Server, así que decidí cambiarlo todo (casi todo) a SQL.

Hoy no me arrepiento en absoluto, tengo accesibilidad a los datos desde cualquier lenguaje, herramienta, etc....

Eso si, jamás voy a dejar los ficheros indexados.

Cuando extraigo información del ERP genero ficheros indexados y luego todos los datos se presenta de la información contenida en ellos, resultado: una velocidad de vértigo :)

Otra cosa, el utilizar bases de datos no nos obliga a cumplir con los estandares que imponen, es decir podemos seguir utilizando las ventajas de los ficheros cobol,
(Me encantaría poder enseñaros cosas que tengo desarrolladas).
a que me refiero con eso, a que puedo meter arrays dentro de un campo, en crear campos redefinidos, siempre que los campos no vayan a se indexados por sql, podemos hacer lo que nos de la gana y ganamos mucha rapidez.
Como bien decíais arriba la cantidad de campos importa, pues bueno me creo una tabla con 2 campos el clave y todo lo demás en otro con char(4000) y ahí meto todo del tirón, luego cuando lo leo con cobol lo "redefino" y listo.

En fín, otro punto de visto para el tema.
Soy Andrés Montes (http://www.escobol.com)

A ver si tengo tiempo y puedo hacer algún video de alguna de las aplicaciones que tengo.