texto:   A-   A+
eliax

Oracle anuncia que entra al mercado del hardware
eliax id: 5535 josé elías en sept 25, 2008 a las 06:03 AM ( 06:03 horas)
Oracle, la empresa líder en bases de datos empresariales (y la #2 empresa de software del mundo detrás de Microsoft) acaba de darle una gran sorpresa al mercado al anunciar que ha decidido entrar al mercado de hardware, con servidores diseñados exclusivamente para ejecutar sus bases de datos a velocidades hasta 10 veces mas rápido que en hardware genérico.

La empresa sin embargo ha aclarado que no piensa ella misma fabricar estos equipos, sino que se ha asociado con terceros que los fabricarán por ellos. El primero de estas empresas asociadas es HP, con quien Oracle dice haber forjado una fuerte alianza en este territorio.

Noten sin embargo que estos no serán servidores de bajo costo o para pequeñas empresas, al menos no por el momento, ya que el primer modelo que sacarán al mercado será el HP Oracle Exadata Storage Server, el cual costará cerca de US$650,000 dólares, mas unos adicionales US$840,000 dólares por el software, y almacenará hasta 148 TeraBytes de datos.

Algo me dice que aunque esto encontrará su nicho en grandes empresas (que de todas maneras es el fuerte de Oracle), que el no haber pensado en modelos mas asequibles (digamos en el rango de US$10,000 dólares) afectará adversamente a la empresa en su lucha contra su nuevo gran enemigo, la base de datos de Código Libre (Open Source) MySQL, que cada vez se torna mas poderosa, es gratuita, bastante rápida (mas rápida que Oracle en algunos escenarios), y tiene mucho soporte por lo usuarios de Linux.

Por ahora MySQL está formando su mercado en pequeñas y medianas empresas, pero vendrá el tiempo en donde muchas de estas grandes empresas se preguntarán porqué gastan millones de dólares al año en Oracle, cuando pueden obtener algo similar con MySQL a un costo insignificante.

Es cierto que hay escenarios para los cuales Oracle es mucho mas apropiado, pero también es cierto que cada año MySQL se torna mas potente, aprende nuevas funcionalidades, y se hace mas rápida, mas simple de administrar (con decenas de herramientas gráficas de todo tipo), mas ligera y menos demandante en los requerimientos de hardware que Oracle.

No lo duden que se avecina una guerra entre estas dos bases de datos, aunque en general, a corto plazo, creo que esta movida por parte de Oracle es acertada, ya que simplifica el proceso de compra, y entrega un producto preconfigurado, probado, listo para arrancar, de bajo riesgo y de alto rendimiento.

Nota relacionada: Una razón por la cual a muchas empresas se les hará difícil cambiar de Oracle a otra base de datos es el hecho de que Oracle ha hecho bastante fácil que los programadores cometan el grave error de programar mucha de la lógica de sus aplicaciones con el lenguaje de programación propietario de Oracle, que se ejecuta dentro de la base de datos.

Esto tiene como efecto que no sea tan sencillo como decir "cambiemos la base de datos y corrijamos las pequeñas diferencias de SQL entre las dos bases de datos y ya estamos listos." La realidad es que debido a la vagancia o ignorancia de los programadores que han utilizado estas herramientas de Oracle para crear millones de lineas de código de Procedimientos Almacenados, en vez de delegar muchas de esas funcionalidades a un servidor de aplicaciones, se hará bastante difícil migrar esas aplicaciones a otro entorno.

Es tan grave el asunto que muchas de estas aplicaciones tendrán que rehacerse casi desde cero, en vez de migrarse, esto al uso abusivo de Procedimientos Almacenados, los cuales tienen un uso útil (en acelerar funciones críticas de acceso a la base de datos), pero que los programadores han utilizado de manera ignorante para crear todo tipo de lógica de programación.

Así que un consejo (que no recibirán de ningún fabricante ni fanático de bases de datos, pero sí de cualquier arquitecto de aplicaciones con experiencia), es que traten de mantener el uso de Procedimientos Almacenados a lo mas mínimo, y de la manera mas atomizada y documentada posible, de modo que si en un futuro por cualquier motivo hay que cambiar de bases de datos, solo haya que hacer algunas modificaciones superficiales.

Otro consejo es que hoy día, con los precios de los servidores por el suelo, si tienes una operación de SQL que tome mucho tiempo, es mejor comprar un par de servidores y procesar los datos de manera distribuida en ellos a nivel de aplicación, que tener que escribir centenares o lineas de código en la base de datos, o de tener que comprar un motor nuevo (o nueva versión) de base de datos, que hoy día puede costar varias veces mas que un servidor físico con Linux o Windows.

Fuente de la noticia

Otra fuente

autor: josé elías

Comentarios

  • con todo respeto...

    "traten de mantener el uso de Procedimientos Almacenados a lo mas mínimo, y de la manera mas atomizada y documentada posible"
    esto es completamente erróneo, cómo vas a sugerir que se utilicen los menos SP posibles? esto es completamente erróneo, por dios!!!
    en qué te fundamentas???
    tienes la más remota idea sobre qué es T-SQL?

    "si tienes una operación de SQL que tome mucho tiempo, es mejor comprar un par de servidores y procesar los datos de manera distribuida en ellos a nivel de aplicación"
    esto no puedo creer que lo estoy leyendo...
    como funciona lento.. mejor compro más hardware...

    realmente increíble lo que has escrito.

    por favor ten más cuidado cuando posteas estas cosas, tal vez alguien sin ningún conocimiento tome tus consejos como válidos y le estarás creando un terrible problema.

    saludos,
    Diego

  • Jajajaja!! Creo es la primera vez que estoy en desacuerdo (en un alto grado, no del todo) con Eliax!! Me extraña que sugiera que no se usen procedimientos almacenados, claro está, tenias profesores en la U que hablaban de algunos peligros de los mismos, pero creo que me dormi ese dia en clase.......
    Hasta hace unos meses era chico oracle, pues trabajaba con forms, report y toad!! y debo decir que ese mundo es genial, pero me alegro que tecnologias como MySQL esten repuntando (nunca los he usado, por lo que no tengo una fuerte y convincente opinion de este motor), digo esto pues personalmente me entusiasman mucho las tecnologias gnu/linux y todo lo que involucre software libre segun el concepto Stallman, pero en lo que es tema de BD oracle se la chupa TODA, y bueno.... se que tengo que aprender MySQL y sacar mi rato para investigar pero Oracle es lo que medio me da de comer!! jajajaja!!

    Ahora volviendo a tu comentario, creo que debrias aclarar que en ciertos escenarios si seria bueno comprar equipo para mejorar el poder de procesamiento, pero decir que uses procedimientos almacenados en lo mas minimo me suena raro! o porfavor explicate mas en concreto, talvez halla algo que no sepa del todo, puesto que no soy un DBA como tal, pero como programador igual debo saber esas cosas!!

    Gracias y un saludo desde CR!

    Nota: no es mucho mi tiempo trabajando pues hace poco mas de un año que deje la U, por eso comentarios como esos son buenos pues creo qe puedo aprender algo positivo. Ya que segun el CV de Elias lo mejor es preguntar antes de apelar fuertemente, puesto que el CV del hombre es muy impresionante, mejor pregunto para ver que agarro!!

  • Bueno, dejando de lado el tema de los procedimientos almacenados y de la mejor forma de procesar una SQL pesada. A mi el movimiento que ha realizado Oracle me parece poco afortunado.

    Hace años Oracle iba de la mano de Sun Microsystems y todo el mundo montaba Oracle sobre Solaris. Yo viví esa época y me certifiqué como DBA Oracle y SCSA de Solaris. Al tiempo las relaciones entre Sun y Oracle se deterioraron y comenzaron a verse las instalaciones de Oracle sobre HP-UX en sus imponentes Superdome. Hace ya un par de años que las instalaciones grandes de Oracle que conozco funcionan sobre HP-UX.

    No hace mucho Sun "adquirió" MySQL... Dandole el respaldo y el presupuesto necesario para convertirse en una aplicación empresarial. Y con el soporte que es capaz de dar Sun. Y se empiezan a ver BD MySQL sobre sus impresionantes 20K y 25K.

    Ahora Oracle juega a que HP le fabrique SuperDomes con el logo cambiado. No se si eligiran el Kernel de Linux o el de HP-UX, pero seguramente será uno adaptado a optimizar los procesos de Oracle y listo. Eso si, a un precio astronómico. No veo una gran ventaja sobre comprar el hardware a HP y el software a Oracle... Pero seguro que a las operadoras de TelCo les va a encantar... Ellos se pirran por estas maquinas caras...

  • Al igual que "#2 Jeffry Rosales" llevo 1 año fuera de la universidad y formandome como desarrollador. No soy propiamente un DBA pero utilizo principalmente ambiente linux y Mysql y Postgresql (que me extraña que no sea mencionado en el artículo, puesto que en muchos casos es superior a mysql).
    En el trabajo utilizamos clases de conexion para afrontar el supuesto caso de cambio de motor de BD, asi en nuestros sistemas llamamos a la clase, y en caso de cambiar de motor pues se cambia unicamente el código de la clase a que se adapte al nuevo motor.
    A mi parecer es una buena técnica sobretodo si desarrollas para ambiente web.
    Nosotros tratamos de no utilizar demasiados procedimientos almacenados, antes se valor que es mas factible - si X lineas de código o 1 SP - y cual es mas facil adaptar a los cambios, a veces gana el código, a veces ganan los SP.
    En fin, yo tengo poca experiencia y que mejor que leer lo que dicen las personas que han vivido de cerca todos los pro y los contra de estas técnicas.

  • ja ja ja grave error "Arquitecto de Aplicaciones", como se nota que no sabes nada de SQL en fin que mas se puede esperar.......creo que deberias aprender un poco mas de BD antes de recomendar hacer "aplicaciones" que no tengan SP eso me parece alucinante, solo me pregunto si tienes alguna idea de lo que se podria tardar un proceso, en fin... y si hablas de migracion, hay tencnicas y formas de programar que te ayudan a migrar sin tener que hacer demasiados cambios una de esas es hacer SP con Sql standard...... bueno

    esperamos algun comentario tuyo al respecto ....o simplemnete borra nuestros comentarios como sueles hacerlo cuando no tienes fundamento


    saludos
    yo

    • tambien hay que aprender a leer bien. En ningun momento dice que no uses SP, (aunque habrá algunas aplicaciones que no necesiten), solamente dice que las mantengas al mínimo sobretodo cuando utilizas las herramientas de oracle, porque al abusar de ellas haces que te "ates" al su $oftware

  • @#5:
    con falta de respeto y una arrogancia infantiloide, nunca vas a lograr nada.
    podrás saber mucho de SQL y bla bla bla y tendrás (como este muchacho Elias) un CV de 9 pag. y serás EXPERTO (como este muchacho Elias) en no menos de 48 frameworks, lenguajes y tecnologías. (lo cual siempre me causa una risa extraordinaria... jajaja.. experto en más de 9mil lenguajes... jjjjajaja... en fin..).

    pero si todas las "discusiones" las empiezas con falta de respeto y arrogancia... entonces no eres más que un fracasado.

    intenta discutir, pero siempre con respeto.

    saludos,
    Diego

  • Veo aquí a personas alarmadas por lo que dice Elías, llamando poco menos que incultos profesionales a los que opinan como él.

    Yo desde luego puedo hablar desde mi experiencia (llevo aproximadamente 5 años como DBA):

    1- Si desarrollas aplicaciones para tu empresa para uso corporativo, utilizar con exceso procedimientos almacenados es casarte con el motor de base de datos, que hoy puede ser el mejor pero mañana, ¿seguirá siendolo?.

    2- Si desarrollas aplicaciones para vender a empresas, siempre te interesará estar lo menos ligado a un motor concreto de base de datos, ya que el ligarte totalmente a uno te cierra el mercado de todo el resto de empresas que por cualquier motivo no utilizan el mismo motor que tú.

    Desde luego el uso de procedimientos almacenados es muy aconsejable en algunos casos, pero desde luego, lo menos posible. Para cualquier otra cosa, intenta utilizar tecnologías de mapeo (hibernate, etc), que igualmente te independizan del motor de base de datos.

    Respecto a motores de base de datos, he decir que estoy encantado con Oracle, aunque me da un miedo terrible, y que me estoy dejando enamorar por Postgres.

    Un saludo.

    • "1- Si desarrollas aplicaciones para tu empresa para uso corporativo, utilizar con exceso procedimientos almacenados es casarte con el motor de base de datos, que hoy puede ser el mejor pero mañana, ¿seguirá siendolo?."
      esto es COMPLETAMENTE erróneo.
      un SP puede ser realizado integramente en SQL standar, que funcionará en MsSQL como en Oracle como en MySQL como en... cualquier otro engine que soporte SQL standar.
      obvio que cada engine tiene sus "cosas propietarias", pero mientras que NO se abuse de eso, entonces estarás OK.

      realmente no puedo creer que un DBA diga que recomienda no utilizar SPs...

      saludos,
      Diego

  • A los que se apresuraron a responder sin aparentemente leer todo lo que escribí: Nunca dije que no utilizaran SP, lo que dije fue (y copio textualmente):

    "traten de mantener el uso de Procedimientos Almacenados a lo mas mínimo".

    Eso con el propósito de no atarse ustedes a ninguna base de datos.

    De paso emito la opinión de que cualquiera que se ría de esto obviamente nunca ha tenido que migrar un aplicación de gran envergadura de una base de datos a otra.

    Así que aprender a leer por favor antes de emitir opiniones, y de paso, si son un poco mas respetuosos en sus comentarios creo que los otros lectores se los tomarán mas en serio.

  • Y si no se usan SPs, cual es la solución?
    Tirar todo el código de acceso a datos (consultas y demás) a la aplicación?
    Ésto es una aberración con todas las letras.

    Si Tenes SPs, en caso de cambio de tecnología de BD, sólo se deberían reescribir los SPs que no estén escritos en SQL estándar (ANSI), los cuales están EN UN SÓLO LUGAR (La propia BD).

    Ahora, si tenés que cambiar el SQL dentro de muchas aplicaciones... bueno, creo que no necesito decir lo que implica reescribir el código nuevamente, compilar, testear, poner en producción, etc.

    A veces hay que pensar un poco antes de escribir algunas opiniones.

    • Pablo,

      Repito otra vez, NADIE ha dicho que no utilices SP, sino que los utilices con cautela, al mínimo.

      Esto tal vez no lo notes con pequeñas aplicaciones, pero con aplicaciones para uso por Internet (como son casi todas las nuevas aplicaciones siendo escritas), existe un problema de escalar la aplicación que no siempre es mejor atacar al nivel de la base de datos con SPs.

      Uno podría tratar de escalar la aplicación a nivel de la base de datos, de paso pagádole a Oracle unos cuantos millones de dólares en licencias para crear un cluster, o sino, uno puede hacer lo que es mas factible, minimizar el acceso a la base de datos, que por lo general es el cuello de botella en aplicaciones empresariales, y distribuir la carga de la aplicación al nivel de servidores de aplicaciones.

      Este es un tema que es difícil de entender a quien nunca ha trabajado con grandes aplicaciones complejas, pero no solo es la forma mas eficiente y limpia de escalar una aplicación, pero sino que además la de menos costo.

      • Entendí bien que no has dicho NUNCA, aún así, mantengo mi opinion.

        Escalabilidad: cluster de servidores, cómo bien pones en el comentario (del tema del costo es aparte, aunque no son los valores que referís).

        Performance: Una misma tarea ejecutada mediante un SP es mucho más eficiente ejecutada en un SP que en el código de la aplicación.

        Cambio de tecnología: Lo argumenté en el mensaje anterior.

        Saludos.

        • Pablo,

          No te lleves del mito de los SPs. Es cierto que en un solo proceso, un SP será mucho mas rápido que procesar los datos fuera de la base de datos, pero en el momento que estás en un entorno multi-usuario llega un momento en donde los SPs van a estar haciendo tanto trabajo que trancarán los accesos a las tablas, así como disminuirá el rendimiento del motor de la base de datos en general.

          Es por eso que una mejor opción es utilizar la base de datos solo para obtener datos en crudo, y después procesarlos en paralelo en un cluster de servidores de aplicaciones.

          Sucede que con esta arquitectura, aunque cada nodo del cluster es posible que procese los datos mas lentos que una sola instancia de la base de datos, en el momento que distribuyes la carga para que cientos de usuarios potenciales accedan a la base de datos a la vez, la diferencia es totalmente notable.

          Nota que he realizado varios trabajos en donde me llaman de empresas que tienen sus bases de datos que no dan abasto, y por lo general casi siempre es por este abuso de uso de SPs, ya que a los estudiantes universitarios les dicen las ventajas de los SPs, pero por lo general nunca las desventajas.

          Y a propósito, llevo 15 años trabajando en esto y se de lo que hablo. Incluso hace un par de años implementé un sistema en los EEUU que acepta hasta 80,000 usuarios simultáneos, y la única manera de no matar una base de datos con esta magnitud de carga es interactuar con la base de datos lo menos posible, y diseñar la aplicación de modo que esta pueda escalar horizontalmente agregando mas servidores.

          Esta, a propósito, es la modalidad de casi todas las grandes empresas.

          Nota que esto no quita que uno pueda hacer clusters de bases de datos, en particular para distribuir las lecturas, aunque esto depende de la aplicación en un análisis que se debe hacer caso a caso, ya que algunas aplicaciones son mas propensas a lecturas, y otras a escrituras, y hay que diseñar acorde.

  • Estoy de acuerdo con Elías, los SP deben mantenerse al mínimo y ser utilizados con muchísima cautela.

  • Este link del WSJ esta completo...sin crear una cuenta
    enjoy it
    http://online.wsj.com/article/SB122229195216472683.html?mod=googlenews_wsj#articleTabs%3Darticle

  • Saludos Eliax,

    Muy interesante la noticia sobre la alianza corporativa de Oracle con empresas desarrolladoras de hardware para lograr una ventaja competitiva en los equipos orientados a motores de base de datos. No obstante, creo que estas un poco equivocado no solo con lo de lo Store procedure, ya que si no sabes sobre base de datos mejoran grandemente el desempeño de las base de datos ya que se encuentran precompilado en la misma.

    Por otro lado, cuando mencionas a MySql como competidor de Oracle, creo que debes orientarte mejor a que mercado te refieres, al pequeño??, porque solo ahi MySQL puede ser ventaja, y te puedo decir que otros motores de base de datos como DB2, PostgresSQL, MS SQLSERVER, siendo todos estos superior a MySQL y te lo dice una persona con mas de 8 años de trabajo como DBA.

    • Michael,

      OS X es superior a XP en muchos sentidos, y sin embargo Windows se vende 20 veces mas.

      Entiendo lo que dices de las otras bases de datos, pero la realidad es que en la industria la percepción a veces es mas importante que la realidad misma, y hoy día, la base de datos de Software Libre de mas crecimiento es sin duda MySQL.

      Y recuerda que en el artículo aclaré que MySQL es por el momento utilizado mas en pequeñas y medianas empresas.

      Nota además que he realizado pruebas objetivas de SQL contra varias de estas bases de datos, y no es cierto lo que dices de que MySQL es inferior a las otras. Es cierto que algunos motore de bases de datos son mejores que otros para determinados casos, pero como una base de datos generalizada, MySQL creo que es excelente, y al menos a mi no me ha fallado.

      Un buen ejemplo es instalar y utilizar la base de datos. Oracle requiere de equipos bastante potentes tan solo para arrancar, mientras que MySQL funciona en prácticamente cualquier hardware que le tires encima, lo que es un gran ventaja en empresas que no están dispuestas a comprar nuevos equipos.

  • Querido Diego (msj #7.1), de tus palabras veo que no has realizado cambios importantes de motor.

    Ya te he dicho que hay en ciertas ocasiones es conveniente usarlos, pero lo menos posible.

    Para hacer cosas banales no hay necesidad de utilizar procedimientos almacenados.

    "un SP puede ser realizado integramente en SQL standar, que funcionará en MsSQL como en Oracle como en MySQL como en... cualquier otro engine que soporte SQL standar."

    Precisamente la potencia de los procedimientos almacenados, radica generalmente en las particularidades que cada motor te ofrece (ya no es sql standard). En este caso, si no vas a utilizar estas particularidades, ¿para que usas procedimientos?.

    Por otra parte te digo lo de antes, lo más interesante es utilizar herramientas y tecnologías que abstraigan lo más posible (de forma adecuada) las capas inferiores, los cual pasa incluso, por no tener que utilizar ni siquiera sql, sino herramientas/frameworks de mapeo que hacen eso por ti.

    Un saludo Diego, que para esto, como para todo, hay un dicho muy bueno, y es que "para colores, el arco iris".

Añadir Comentario

tu nombre
tu email
(opcional)
web personal
(opcional)
en respuesta a...
comentario de caracteres máximo
1 + 3 = requerido (control anti-SPAM)
¿De qué color es el cielo?: requerido (control anti-SPAM)
 

"Eliax, no suelo escribir comentarios, aunque si he escrito unos cuantos aquí, pero hoy ni me lo he pensado, después de ver el vídeo. Te sigo desde hace unos 8 años, he leído todos y cada uno de los artículos, desde que abriste el blog. Y sinceramente te digo que has cambiado mi vida a mejor, mi manera de ver el mundo, de apreciar las cosas,de pensar. Gracias, te deseo que seas feliz y que sigas haciéndonos felices con tus aportaciones, ya sean vídeo,artículos, comentarios o de la forma que sea.

Un abrazo fuerte desde un amigo tuyo,siempre, de Bulgaria. ;)
"

por "Radosalv" en may 21, 2015


en camino a la singularidad...

©2005-2024 josé c. elías
todos los derechos reservados
como compartir los artículos de eliax