In the past I wrote many posts and also done a lots of sessions at different conferences about how to create high-performance low code workflows by using Azure Logic Apps.
Azure Logic Apps traditionally rely on Azure Storage to manage workflow states and runtime data. Every time you drag an action in your workflow designer and this action relies on a connector, some stuffs on Azure Storage are automatically created. And all these hidden stuffs on Azure Storage usually can cause delays in actions (like in the for-each loop for example).
There are differen ways to optimize workflows performances (check my posts or my latest sessions on this topic) but now there’s also a nice new feature (currently in preview): you can now use Azure SQL as a storage provider instead of Azure Storage for your logic apps workflow related transactions.
This new possibility gives you the following benefits:
Setting an Azure SQL database as a storage provider for an Azure Logic Apps (Standard) instance is very easy.
First of all, check that your Azure SQL server is configured to allow connections from your Azure services. To do that, goto the Networking option and check that the following two options are enabled:
Then create a new Azure Logic Apps Standard instance:
and in the Storage tab, select SQL (Preview) and Azure Storage as Storage type. Then insert the connection string of your Azure SQL database (where tables to handle workflow-related artifacts and data will be saved):
Please note that the SQL (Preview) and Azure Storage option will use SQL as primary storage and Azure Storage as secondary storage. When deploying to an Azure Region, you still need an Azure storage account, which is used to complete the one-time hosting of the logic app’s configuration on the Azure Logic Apps platform. The workflow’s state, run history, and other runtime artifacts are stored in your SQL database.
Then click Review + Create to deploy your Azure Logic Apps instance.
When your Logic Apps is deployed, you can check the Environment Variables and here you will find a new variable called Workflows.Sql.ConnectionString that contains your Azure SQL database connection string:
A set of tables will be created into your Azure SQL database:
If you create a stateful workflow and execute it, you will see that these tables will be populated with all the workflow-related artifacts and data:
If you need high-performance workflows and using standard Azure Storage can cause you performance losses, using Azure SQL can help you fine-tune throughput and performance of your workflows. This is a new option that you have, I recommend to remember this…
Original Post https://demiliani.com/2025/06/16/high-performance-workflows-with-azure-logic-apps-using-azure-sql-as-storage-provider/