I was doing Benchmarking on CosmosDB vs Azure SQL for a Performance Critical application. Our needs was fulfillable through Azure SQL but there was some CosmosDB use cases like Schemaless, Geo-replication etc.
So let us see the Performance Benchmark
Configurations
CosmosDB
- Default Configuration
- East US
- SQL API
Azure SQL
- Standard S1
- East US
Test 1 : Accessing from Laptop
The Test 1 was conducted from a Laptop within US region. The test was conducted with 100 continuous Inserts of 10KB data on each.
The observations are below.
100 Count | 1 Count (Average) | |
CosmosDB | 3 second | 30 millisecond |
Azure SQL | 3 second | 30 millisecond |
Test 2 : Accessing from Azure VM
The Test 2 was conducted from an Azure VM within East US region to ensure minimum latency. The test was conducted with 100 continuous Inserts of 10KB data on each.
100 Count | 1 Count (Average) | |
CosmosDB | 2 second | 20 millisecond |
Azure SQL | 1 second | 10 millisecond |
Inference
Cannot find much speed advantage on Cosmos DB
SLA
As per the SLA on CosmosDB there need to be following criterias to get the 1 digit millisecond response:
- Within same Region
- TCP configuration
- High Speed Internet
Summary
Azure SQL on Standard Configuration is providing better Speed than Cosmos DB. Choose Cosmos DB based on the right use case.
I can publish the Database Benchmark Application on demand.