SQL servless, una revolución en los costes de nuestras bases de datos en Azure

Sitio dedicado a Microsoft Azure y otras tecnologías Cloud

Azure SQL serveless billing

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

Azure SQL Gen5 Serveless

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.

 

 

 

 

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.