2010-11-18

SQL Server y programación. Programming.

Durante todos estos años que trabajo como DBA, he tenido que hacer de todo, desde instalaciones de motores de bases de datos (Sql Server, Oracle, MySQL, DB2, Sybase), en diferentes entornos (Windows, Linux, Solaris, FBSD), gestión y administración diaria, entornos críticos 24 hs, programar procesos nocturnos, jobs, activar Service Broker, instalación de réplicas de varios tipos desde ONLINE puro y duro hasta log shipping en forma manual.

He tenido que buscar problemas de performance en estructuras existentes, definir estructuras de tablas para que soporten muchisima carga de transacciones en cada minuto, detectar excepciones, testing de codigo.

Poner en Producción un SQL Server 2000 en beta 2 en un banco, fue caso de prensa de Microsoft por hacerlo "primeros" en un Banco Internacional en América.... algo un poco loco. Una base SQL Beta en un Banco en PRO ?..... si, lo hicimos.

También durante 7 años mantener vivo y optimizado, estructuras de cubos de unos cuantos gigas, con información mundial, actualizaciones, consultas desde WEBs.

Ultimamente estoy volviendo a programación avanzada en SQL para cosas muy especiales, haciendo memoria recuerdo 4 temas muy grandes y complejos que tuve que resolver en los últimos 18 años.
Creo que las cosas que mas me han gustado hacer, fueron aquellas cosas que no estaban hechas, que tenían una altisima complejidad, que eran muy retorcidas, relacionadas con seguridad, procesos que "deben ser perfectos", como siempre "cosas raras con eso de la informática".....

En estos dias estoy entrando en una FASE D.

Creo que tuve la suerte de participar en muchas cosas nuevas, raras, distintas, cosas que la mayoría no hacía. Digamos que estuve en "en el peor sitio", "en el peor momento", "bailando con la mas fea" , "poca suerte" y "cosas nuevas" con esas cosas he aprendido mucho, me he equivocado y he tenido que volver a hacer. Por suerte....
Un poco de historia debajo, si necesitas cosas similares me avisas, tengo muchas cosas "extrañas" ya hechas que costaron cientos de horas en cada caso, y cientos de horas posteriores en mejoras.... Aprovechemos ese tiempo invertido en otro proyecto.



A. AUTOMATIC QUERY BUILDER, Armar un buscador inteligente para que dados campos, parámetros, valores, condiciones, ordenes, etc.etc..... tener que armar un query eficiente para resolver esa petición con toda la información resultante que piden. Parece algo normal, pero se transformó en código de la NASA.... por lo complejo.

B. INTRUSION DETECTION SYSTEM, preparar rutinas para controlar los accesos a diferentes motores SQL, distintas bases de datos, registro de las peticiones solicitadas por cada uno, en que sitio, todo en tiempo real, mantener un logs de actividades y generar listados luego, básicamente en un entorno que debía ser MAX-SECURITY, con eso nos enteramos de todas las "cositas" que hacían los usuarios debido a que los sistemas no lo hacían, cocina de la peor. En este caso una empresa acabó despidiendo a un empleado por "robo al sistema bancario"....

C. WEBLOGIC BUG, HORPHANS DETECTION. Cientos de horas invertidas en detectar problemas de comunicación entre Web Logics, JDBC (XA) de una empresa alemana y SQL Server 2000. Acabamos generando un demonio que buscaba inconsistencias en motores SQL, generadas por problemas de comunicaciones entre Web Logic y JDBC, resolviendo incidencias en tiempo real, matando hilos... El código fue enviado a Microsoft que "parece" que lo ha incluido en la versión 2008 del motor. Este tema lo descubrimos y no había referencias al respecto, parece que casi nadie en el mundo usaba WebLogic (viejas versiones) con JDBC y con SQL Server 2000.

D. ASYNCRONIC QUERY EXECUTION, ahora estoy en pleno código de módulos en SQL Server para resolver necesidades de un aplicativo, donde los servicios de Service Broker de Microsoft no resuelven, el requerimiento es :
"enviar tareas a un SQL, que las haga a medida de tenga tiempo y CPU, algunas de ellas SOLO en horario nocturno, registro de actividades, seguimiento de cada tarea mediante logs sobre que está haciendo, posibilidad de reenvío posterior, identificación del usuario originante, gestión de errores, y un largo etc...."

No encuentro nada en GOOGLE y estoy desarroláandolo desde cero.

No hay comentarios:

Por el mundo