
Hace unas semanas leí sobre la activación de la preview privada de un nuevo servicio de Azure SQL, la base de datos Pass en el Cloud de Microsoft.
Ni corto y perezoso, me apunte a dicha preview, y hace unos pocos días en un curso estuvimos haciendo pruebas con la versión servless. La cual nos dejó boquiabiertos al ver su coste mensual.
Menos de un euro al mes!
Azure SQL Gen5 Serverless
Una vez apuntado a la preview, se me ha habilitado una nueva categoría de base de datos en la definición por vCpu.
La forma de trabajar es totalmente diferente al resto de las configuraciones. Puedo escoger un rango elástico de entre .5 a 4 vCpus; el cual escalará hacía arriba y hacía abajo de forma automática según las peticiones. También puedo decidir la capacidad de almacenamiento entre 1Gb y 1Tb.
Por último, le puedo indicar cuanto tiempo debe esperar a que no se le haga ningún tipo de petición antes de apagarse, y me dejen de cobrar por ella.
Si necesito arrancar el servicio, con hacer una conexión es suficiente; pero debo tener en cuenta que tengo un periodo de «despertar» de un minuto hasta que mi base de datos vuelve a estar plenamente disponible.
Lo más impresionante es que en la configuración de 1Gb de almacenamiento, el coste mensual es de 0,50€. No estoy seguro si es porque está aún en preview, pero nos dejó a todos boquiabiertos.
¿Tiene potencia?
La duda es si tiene suficiente potencia como para ser útil para algo más que para demos o pilotos pequeños, como pasa con las normales de 5 o 10 DTU’s.
Para comprobarlo he creado una Serveless de ,5-4 vCpus con 1Gb, y otra de también 1Gb pero con 200DTU’s; la he construido con la base de datos de ejemplo de ´SalesLT; y le he pasado el siguiente bucle construido con cursores.
DECLARE @id int DECLARE cursorT CURSOR --LOCAL STATIC --LOCAL FAST_FORWARD --LOCAL READ_ONLY FORWARD_ONLY FOR SELECT ProductId FROM SalesLT.Product OPEN cursorT FETCH NEXT FROM cursorT INTO @id WHILE @@FETCH_STATUS = 0 BEGIN SELECT * FROM SalesLT.SalesOrderDetail WHERE ProductID=@id FETCH NEXT FROM cursorT INTO @id END CLOSE cursorT DEALLOCATE cursorT
Los resultados son mucho mejor de los esperados. En la base de datos configurada de 200 DTU’s este bucle ha tardado unos 9 segundos en terminar, y en la serveless ha utilizado 14 segundos.
Teniendo en cuenta que la primera sale a unos 253€ al més, mientras (como yá lo dije) la serveless no llega al euro, además de detenerse sola a las seis horas de estar sin actividad.
Espero que sea de utilidad cuando lo puedas probar.