todavía somos bastante nuevos en Postgres y venimos de Microsoft Sql Server.Procedimientos almacenados en Python para PostgreSQL
Estamos queriendo escribir algunos procedimientos almacenados ahora. Bueno, después de luchar para obtener algo más complicado que hello world
para trabajar en pl/pgsql, decidimos que es mejor si vamos a aprender un nuevo idioma, también podríamos aprender Python porque tenemos la misma consulta trabajando en ello en aproximadamente 15 minutos (nota, ninguno de nosotros conoce realmente a Python).
Tengo algunas preguntas al respecto en comparación con pl/psql.
- ¿Está pl/Pythonu más lento que pl/pgsql?
- ¿Hay algún tipo de referencia "buena" sobre cómo escribir buenos procedimientos almacenados para usarla? Cinco páginas cortas en la documentación de Postgres realmente no nos dicen lo suficiente.
- ¿Qué ocurre con la preparación de consultas? ¿Debería siempre ser usado?
- Si usamos las matrices SD y GD para una gran cantidad de planes de consulta, ¿alguna vez se llenará demasiado o tendrá un impacto negativo en el servidor? ¿Eliminará automáticamente los valores antiguos si se llena demasiado?
- ¿Hay alguna esperanza de que se convierta en un lenguaje confiable?
Además, nuestro uso de procedimientos almacenados es extremadamente ligero. En este momento sólo tenemos 4, pero todavía estamos tratando de convertir pequeños trozos de código a través de la sintaxis específica de SQL Server (tales como variables, que no puede ser utilizado en Postgres fuera de los procedimientos almacenados)
¿Por qué se esfuerza tanto en escribir procedimientos almacenados? ¿Por qué no escribir aplicaciones comunes en Python y usar la base de datos como un almacén de datos común? –
Porque ya tenemos más de 10,000 líneas de código C# escritas. Y hay algunas cosas en las que si lo hiciéramos completamente en la aplicación requerirían 3 o más viajes redondos al servidor de base de datos, por lo que preferiríamos tener solo 1 viaje de ida y vuelta y el servidor de base de datos un poco más de procesamiento – Earlz
@earlz : Actualice su pregunta con hechos adicionales. Por favor, no comentes tu propia pregunta. Es tu pregunta Hazlo completo, por favor, para que otros también puedan aprender de él. –