From 29060ae854f28a6309958bacfdb629c95c750cf4 Mon Sep 17 00:00:00 2001 From: Jaxel Rojas Date: Sun, 24 Nov 2024 21:25:41 -0400 Subject: [PATCH 1/8] chore: upgrade to dotnet 9 --- .editorconfig | 1 + .github/workflows/ci.yml | 2 +- .../Insight.Database.Benchmarks.Models.csproj | 4 ++-- .../Insight.Database.Benchmarks.MySql.csproj | 8 ++++---- .../Insight.Database.Benchmarks.Postgres.csproj | 8 ++++---- .../Insight.Database.Benchmarks.SqlServer.csproj | 10 +++++----- .../InsightBenchmark.cs | 3 ++- .../InsightBenchmarkJson.cs | 3 ++- .../InsightBenchmarkXml.cs | 3 ++- .../Insight.Database.Benchmarks.Sqlite.csproj | 10 +++++----- .../InsightBenchmark.cs | 1 + .../Insight.Database.Benchmarks.csproj | 4 ++-- 12 files changed, 31 insertions(+), 26 deletions(-) diff --git a/.editorconfig b/.editorconfig index 9849804..8740c2c 100644 --- a/.editorconfig +++ b/.editorconfig @@ -133,6 +133,7 @@ csharp_style_prefer_utf8_string_literals = true:suggestion csharp_style_deconstructed_variable_declaration = true:suggestion csharp_style_unused_value_assignment_preference = discard_variable:suggestion csharp_style_unused_value_expression_statement_preference = discard_variable:silent +csharp_prefer_system_threading_lock = true:suggestion # .NET Naming conventions diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e28fbef..6b3f213 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,7 +15,7 @@ jobs: - name: Setup .NET uses: actions/setup-dotnet@v3 with: - dotnet-version: 8.0.x + dotnet-version: 9.0.x - name: Build Reason run: echo ${{github.ref}} and ${{github.event_name}} - name: Install dependencies diff --git a/benchmarks/Insight.Database.Benchmarks.Models/Insight.Database.Benchmarks.Models.csproj b/benchmarks/Insight.Database.Benchmarks.Models/Insight.Database.Benchmarks.Models.csproj index 7edec73..26e612f 100644 --- a/benchmarks/Insight.Database.Benchmarks.Models/Insight.Database.Benchmarks.Models.csproj +++ b/benchmarks/Insight.Database.Benchmarks.Models/Insight.Database.Benchmarks.Models.csproj @@ -1,12 +1,12 @@ - netstandard2.0 + net9.0 Latest - + diff --git a/benchmarks/Insight.Database.Benchmarks.MySql/Insight.Database.Benchmarks.MySql.csproj b/benchmarks/Insight.Database.Benchmarks.MySql/Insight.Database.Benchmarks.MySql.csproj index 9443111..d616a59 100644 --- a/benchmarks/Insight.Database.Benchmarks.MySql/Insight.Database.Benchmarks.MySql.csproj +++ b/benchmarks/Insight.Database.Benchmarks.MySql/Insight.Database.Benchmarks.MySql.csproj @@ -2,15 +2,15 @@ Exe - net8.0 + net9.0 Insight.Database.Benchmarks.MySql Insight.Database.Benchmarks.MySql - - - + + + diff --git a/benchmarks/Insight.Database.Benchmarks.Postgres/Insight.Database.Benchmarks.Postgres.csproj b/benchmarks/Insight.Database.Benchmarks.Postgres/Insight.Database.Benchmarks.Postgres.csproj index 7a27824..2171fc1 100644 --- a/benchmarks/Insight.Database.Benchmarks.Postgres/Insight.Database.Benchmarks.Postgres.csproj +++ b/benchmarks/Insight.Database.Benchmarks.Postgres/Insight.Database.Benchmarks.Postgres.csproj @@ -2,13 +2,13 @@ Exe - net8.0 + net9.0 - - - + + + diff --git a/benchmarks/Insight.Database.Benchmarks.SqlServer/Insight.Database.Benchmarks.SqlServer.csproj b/benchmarks/Insight.Database.Benchmarks.SqlServer/Insight.Database.Benchmarks.SqlServer.csproj index 91e97e6..d459f11 100644 --- a/benchmarks/Insight.Database.Benchmarks.SqlServer/Insight.Database.Benchmarks.SqlServer.csproj +++ b/benchmarks/Insight.Database.Benchmarks.SqlServer/Insight.Database.Benchmarks.SqlServer.csproj @@ -2,16 +2,16 @@ Exe - net8.0 + net9.0 Insight.Database.Benchmarks.SqlServer Insight.Database.Benchmarks.SqlServer - - - - + + + + diff --git a/benchmarks/Insight.Database.Benchmarks.SqlServer/InsightBenchmark.cs b/benchmarks/Insight.Database.Benchmarks.SqlServer/InsightBenchmark.cs index 5b52376..b7325c5 100644 --- a/benchmarks/Insight.Database.Benchmarks.SqlServer/InsightBenchmark.cs +++ b/benchmarks/Insight.Database.Benchmarks.SqlServer/InsightBenchmark.cs @@ -1,9 +1,10 @@ using System; -using System.Data.SqlClient; +using Microsoft.Data.SqlClient; using System.Linq; using System.Threading.Tasks; using BenchmarkDotNet.Attributes; using Insight.Database.Benchmarks.Models; +using Insight.Database.Providers.MsSqlClient; using Insight.Database.Structure; namespace Insight.Database.Benchmarks.SqlServer; diff --git a/benchmarks/Insight.Database.Benchmarks.SqlServer/InsightBenchmarkJson.cs b/benchmarks/Insight.Database.Benchmarks.SqlServer/InsightBenchmarkJson.cs index 8b2c6db..1d91096 100644 --- a/benchmarks/Insight.Database.Benchmarks.SqlServer/InsightBenchmarkJson.cs +++ b/benchmarks/Insight.Database.Benchmarks.SqlServer/InsightBenchmarkJson.cs @@ -1,10 +1,11 @@ using System; using System.Collections.Generic; -using System.Data.SqlClient; +using Microsoft.Data.SqlClient; using System.Linq; using System.Threading.Tasks; using BenchmarkDotNet.Attributes; using Insight.Database.Benchmarks.Models; +using Insight.Database.Providers.MsSqlClient; namespace Insight.Database.Benchmarks.SqlServer; diff --git a/benchmarks/Insight.Database.Benchmarks.SqlServer/InsightBenchmarkXml.cs b/benchmarks/Insight.Database.Benchmarks.SqlServer/InsightBenchmarkXml.cs index 161ffbf..be72adb 100644 --- a/benchmarks/Insight.Database.Benchmarks.SqlServer/InsightBenchmarkXml.cs +++ b/benchmarks/Insight.Database.Benchmarks.SqlServer/InsightBenchmarkXml.cs @@ -1,10 +1,11 @@ using System; using System.Collections.Generic; -using System.Data.SqlClient; +using Microsoft.Data.SqlClient; using System.Linq; using System.Threading.Tasks; using BenchmarkDotNet.Attributes; using Insight.Database.Benchmarks.Models; +using Insight.Database.Providers.MsSqlClient; namespace Insight.Database.Benchmarks.SqlServer; diff --git a/benchmarks/Insight.Database.Benchmarks.Sqlite/Insight.Database.Benchmarks.Sqlite.csproj b/benchmarks/Insight.Database.Benchmarks.Sqlite/Insight.Database.Benchmarks.Sqlite.csproj index 56d84ec..a3a4f14 100644 --- a/benchmarks/Insight.Database.Benchmarks.Sqlite/Insight.Database.Benchmarks.Sqlite.csproj +++ b/benchmarks/Insight.Database.Benchmarks.Sqlite/Insight.Database.Benchmarks.Sqlite.csproj @@ -2,16 +2,16 @@ Exe - net8.0 + net9.0 Insight.Database.Benchmarks.Sqlite Insight.Database.Benchmarks.Sqlite - - - - + + + + diff --git a/benchmarks/Insight.Database.Benchmarks.Sqlite/InsightBenchmark.cs b/benchmarks/Insight.Database.Benchmarks.Sqlite/InsightBenchmark.cs index e582296..37471ed 100644 --- a/benchmarks/Insight.Database.Benchmarks.Sqlite/InsightBenchmark.cs +++ b/benchmarks/Insight.Database.Benchmarks.Sqlite/InsightBenchmark.cs @@ -4,6 +4,7 @@ using System.Threading.Tasks; using BenchmarkDotNet.Attributes; using Insight.Database.Benchmarks.Models; +using Insight.Database.Providers.MsSqlClient; using Insight.Database.Structure; namespace Insight.Database.Benchmarks.Sqlite; diff --git a/benchmarks/Insight.Database.Benchmarks/Insight.Database.Benchmarks.csproj b/benchmarks/Insight.Database.Benchmarks/Insight.Database.Benchmarks.csproj index 5a12d2a..28599f3 100644 --- a/benchmarks/Insight.Database.Benchmarks/Insight.Database.Benchmarks.csproj +++ b/benchmarks/Insight.Database.Benchmarks/Insight.Database.Benchmarks.csproj @@ -6,8 +6,8 @@ - - + + From dc0ad4e1493d6254b31f6c7a1ae2582c528d267f Mon Sep 17 00:00:00 2001 From: Jaxel Rojas Date: Mon, 25 Nov 2024 00:17:29 -0400 Subject: [PATCH 2/8] chore: minor fix per docker warning --- .docker/docker-compose.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.docker/docker-compose.yml b/.docker/docker-compose.yml index 1bfba97..a48f69b 100644 --- a/.docker/docker-compose.yml +++ b/.docker/docker-compose.yml @@ -1,4 +1,3 @@ -version: '3' services: postgres: From 904439a3291a8947f1e10b013e7abcb9b9be388e Mon Sep 17 00:00:00 2001 From: Jaxel Rojas Date: Mon, 25 Nov 2024 00:35:59 -0400 Subject: [PATCH 3/8] benchmark: sqlite --- .../README.md | 110 +++++++++--------- 1 file changed, 55 insertions(+), 55 deletions(-) diff --git a/benchmarks/Insight.Database.Benchmarks.Sqlite/README.md b/benchmarks/Insight.Database.Benchmarks.Sqlite/README.md index 9c9defb..1b57fce 100644 --- a/benchmarks/Insight.Database.Benchmarks.Sqlite/README.md +++ b/benchmarks/Insight.Database.Benchmarks.Sqlite/README.md @@ -4,62 +4,62 @@ These are benchmark scenarios for the Default Provider of [Insight.Database](htt ``` -BenchmarkDotNet v0.13.12, Windows 11 (10.0.22631.3235/23H2/2023Update/SunValley3) +BenchmarkDotNet v0.14.0, Windows 11 (10.0.26100.2314) 11th Gen Intel Core i5-1135G7 2.40GHz, 1 CPU, 8 logical and 4 physical cores -.NET SDK 8.0.201 - [Host] : .NET 8.0.2 (8.0.224.6711), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI - ShortRun : .NET 8.0.2 (8.0.224.6711), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI +.NET SDK 9.0.100 + [Host] : .NET 9.0.0 (9.0.24.52809), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI + ShortRun : .NET 9.0.0 (9.0.24.52809), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI ``` -| Method | Type | Mean | StdDev | Error | Median | Min | Max | Op/s | Allocated | -|---------------------------------- |---------------------- |-----------:|----------:|----------:|-----------:|------------:|-----------:|--------:|----------:| -| 'Single (dynamic)' | InsightBenchmarkWrite | 110.4 μs | 11.37 μs | 5.98 μs | 105.5 μs | 99.70 μs | 145.0 μs | 9,057.4 | 9.53 KB | -| 'Auto Interface Query (dynamic)' | InsightBenchmark | 111.6 μs | 9.31 μs | 4.96 μs | 108.0 μs | 101.40 μs | 144.6 μs | 8,963.3 | 10.16 KB | -| 'Auto Interface Single (dynamic)' | InsightBenchmark | 114.9 μs | 12.33 μs | 6.48 μs | 110.1 μs | 101.70 μs | 155.2 μs | 8,705.4 | 9.88 KB | -| 'Single (Fast Expando)' | InsightBenchmarkWrite | 115.3 μs | 14.25 μs | 7.59 μs | 109.0 μs | 100.30 μs | 149.9 μs | 8,669.6 | 9.53 KB | -| Query<T> | InsightBenchmark | 117.2 μs | 10.03 μs | 5.34 μs | 114.1 μs | 104.40 μs | 148.2 μs | 8,535.5 | 9.7 KB | -| Query<T> | InsightBenchmarkWrite | 117.9 μs | 12.43 μs | 6.45 μs | 114.8 μs | 102.95 μs | 159.6 μs | 8,481.0 | 9.7 KB | -| 'Single Async (dynamic)' | InsightBenchmarkWrite | 118.8 μs | 10.33 μs | 5.57 μs | 114.8 μs | 105.60 μs | 141.9 μs | 8,418.5 | 9.96 KB | -| 'Query<T> (Fast Expando)' | InsightBenchmarkWrite | 120.9 μs | 18.47 μs | 9.71 μs | 113.8 μs | 100.00 μs | 175.3 μs | 8,273.0 | 9.52 KB | -| 'Auto Interface Query' | InsightBenchmark | 121.6 μs | 17.09 μs | 9.10 μs | 121.4 μs | 98.00 μs | 182.0 μs | 8,224.3 | 10.35 KB | -| 'Single Async (Fast Expando)' | InsightBenchmarkWrite | 121.9 μs | 11.86 μs | 6.01 μs | 118.2 μs | 106.15 μs | 159.2 μs | 8,200.9 | 9.96 KB | -| 'Query<T> Async' | InsightBenchmarkWrite | 122.4 μs | 9.46 μs | 4.91 μs | 121.1 μs | 111.25 μs | 144.0 μs | 8,168.2 | 10.15 KB | -| 'Single Async' | InsightBenchmarkWrite | 122.7 μs | 13.11 μs | 6.89 μs | 120.1 μs | 107.90 μs | 167.1 μs | 8,151.1 | 10.15 KB | -| 'Auto Interface Query (dynamic)' | InsightBenchmarkWrite | 123.3 μs | 17.57 μs | 9.12 μs | 121.3 μs | 102.50 μs | 189.2 μs | 8,109.7 | 10.16 KB | -| 'Single (dynamic)' | InsightBenchmark | 124.2 μs | 17.20 μs | 8.93 μs | 122.2 μs | 98.80 μs | 169.9 μs | 8,049.0 | 9.53 KB | -| 'Single Async (dynamic)' | InsightBenchmark | 124.3 μs | 15.38 μs | 7.89 μs | 120.9 μs | 108.15 μs | 188.7 μs | 8,044.3 | 9.96 KB | -| 'Auto Interface Single' | InsightBenchmark | 125.8 μs | 17.73 μs | 9.09 μs | 124.4 μs | 106.70 μs | 190.1 μs | 7,947.0 | 10.35 KB | -| Single | InsightBenchmarkWrite | 127.4 μs | 22.26 μs | 11.56 μs | 122.1 μs | 102.25 μs | 194.9 μs | 7,850.5 | 9.72 KB | -| 'Single Async' | InsightBenchmark | 128.4 μs | 14.27 μs | 7.23 μs | 125.0 μs | 109.80 μs | 169.1 μs | 7,786.6 | 10.15 KB | -| 'Query<T> (dynamic)' | InsightBenchmarkWrite | 128.9 μs | 30.77 μs | 15.59 μs | 114.2 μs | 100.65 μs | 201.9 μs | 7,756.4 | 9.52 KB | -| 'Query<T> Async (Fast Expando)' | InsightBenchmark | 129.0 μs | 14.22 μs | 7.47 μs | 129.6 μs | 109.30 μs | 160.1 μs | 7,750.6 | 9.96 KB | -| Single | InsightBenchmark | 129.9 μs | 24.53 μs | 12.73 μs | 125.1 μs | 104.30 μs | 215.7 μs | 7,700.3 | 9.72 KB | -| 'Single Async (Fast Expando)' | InsightBenchmark | 130.3 μs | 24.53 μs | 12.73 μs | 126.7 μs | 108.65 μs | 223.1 μs | 7,673.8 | 9.96 KB | -| Query<(Tuple)> | InsightBenchmark | 131.9 μs | 16.82 μs | 8.62 μs | 130.8 μs | 111.50 μs | 182.4 μs | 7,580.3 | 10.72 KB | -| 'Single (Fast Expando)' | InsightBenchmark | 132.6 μs | 30.90 μs | 15.65 μs | 123.0 μs | 102.80 μs | 263.2 μs | 7,543.8 | 9.53 KB | -| 'Query<T> Async (dynamic)' | InsightBenchmark | 132.9 μs | 24.82 μs | 12.73 μs | 124.6 μs | 110.90 μs | 241.2 μs | 7,522.2 | 9.96 KB | -| 'Single (Tuple)' | InsightBenchmarkWrite | 134.5 μs | 16.62 μs | 8.42 μs | 134.0 μs | 110.90 μs | 174.4 μs | 7,435.1 | 10.66 KB | -| 'Single (Tuple)' | InsightBenchmark | 135.7 μs | 20.10 μs | 10.31 μs | 132.8 μs | 111.65 μs | 201.8 μs | 7,367.2 | 10.66 KB | -| 'Query<T> (dynamic)' | InsightBenchmark | 135.8 μs | 23.89 μs | 12.25 μs | 132.0 μs | 105.25 μs | 219.4 μs | 7,361.8 | 9.52 KB | -| 'Query<T> (Fast Expando)' | InsightBenchmark | 143.0 μs | 26.07 μs | 13.53 μs | 141.8 μs | 106.90 μs | 217.4 μs | 6,993.3 | 9.52 KB | -| 'Single Async (Tuple)' | InsightBenchmarkWrite | 143.0 μs | 18.95 μs | 9.96 μs | 140.1 μs | 119.80 μs | 183.5 μs | 6,990.9 | 11.21 KB | -| 'Single Async (Tuple)' | InsightBenchmark | 147.9 μs | 31.29 μs | 16.24 μs | 133.8 μs | 121.50 μs | 243.7 μs | 6,762.9 | 11.21 KB | -| 'Query<T> Async' | InsightBenchmark | 149.6 μs | 33.49 μs | 17.38 μs | 137.2 μs | 114.50 μs | 238.4 μs | 6,683.8 | 10.15 KB | -| 'Auto Interface Single (dynamic)' | InsightBenchmarkWrite | 156.6 μs | 62.76 μs | 32.18 μs | 128.7 μs | 101.10 μs | 394.5 μs | 6,384.1 | 10.16 KB | -| 'Single Async (Tuple)' | InsightBenchmark | 161.4 μs | 36.10 μs | 19.22 μs | 147.5 μs | 123.70 μs | 279.9 μs | 6,196.6 | 11.16 KB | -| 'Single Async (Tuple)' | InsightBenchmarkWrite | 162.4 μs | 56.85 μs | 29.88 μs | 130.8 μs | 120.00 μs | 314.6 μs | 6,158.6 | 11.16 KB | -| 'Auto Interface Query' | InsightBenchmarkWrite | 164.0 μs | 31.96 μs | 16.80 μs | 153.1 μs | 121.05 μs | 244.2 μs | 6,096.7 | 10.35 KB | -| 'Query<T> Async (Fast Expando)' | InsightBenchmarkWrite | 170.9 μs | 41.97 μs | 22.06 μs | 167.3 μs | 108.70 μs | 284.0 μs | 5,851.0 | 9.96 KB | -| 'Auto Interface Single' | InsightBenchmarkWrite | 176.2 μs | 38.50 μs | 19.28 μs | 176.7 μs | 121.65 μs | 269.1 μs | 5,677.0 | 10.35 KB | -| 'Query<T> Async (dynamic)' | InsightBenchmarkWrite | 183.5 μs | 85.30 μs | 43.22 μs | 137.4 μs | 106.65 μs | 395.4 μs | 5,450.3 | 9.96 KB | -| Query<(Tuple)> | InsightBenchmarkWrite | 188.6 μs | 46.62 μs | 23.90 μs | 173.8 μs | 136.15 μs | 315.4 μs | 5,302.1 | 10.72 KB | -| 'Query<T> Parent/Child Together' | InsightBenchmark | 2,733.0 μs | 237.96 μs | 128.38 μs | 2,663.3 μs | 2,448.40 μs | 3,559.2 μs | 365.9 | 23.85 KB | -| 'Query<T> Parent/Child Together' | InsightBenchmarkWrite | 2,822.5 μs | 218.24 μs | 113.27 μs | 2,758.4 μs | 2,526.10 μs | 3,583.9 μs | 354.3 | 23.85 KB | -| 'Query<T> Parent/Child' | InsightBenchmarkWrite | 3,007.2 μs | 195.84 μs | 104.27 μs | 2,942.4 μs | 2,704.20 μs | 3,568.2 μs | 332.5 | 25.05 KB | -| 'Query<T> Parent/Child' | InsightBenchmark | 3,042.2 μs | 244.23 μs | 122.29 μs | 2,954.3 μs | 2,686.10 μs | 3,716.6 μs | 328.7 | 25.05 KB | -| | | | | | | | | | | -| Update<T> | InsightBenchmarkWrite | 4,471.1 μs | 120.09 μs | 63.94 μs | 4,475.4 μs | 4,224.30 μs | 4,714.7 μs | 223.7 | 8.43 KB | -| 'Update<T> Async' | InsightBenchmarkWrite | 4,670.7 μs | 409.94 μs | 205.27 μs | 4,563.1 μs | 4,220.80 μs | 6,222.6 μs | 214.1 | 9.7 KB | -| Insert<T> | InsightBenchmarkWrite | 4,730.9 μs | 410.86 μs | 210.65 μs | 4,719.4 μs | 4,134.70 μs | 5,648.6 μs | 211.4 | 8.17 KB | -| 'Insert<T> Async' | InsightBenchmarkWrite | 5,246.5 μs | 468.35 μs | 240.13 μs | 5,214.5 μs | 4,354.00 μs | 6,246.5 μs | 190.6 | 9.47 KB | +| Method | Type | Mean | StdDev | Error | Median | Min | Max | Op/s | Allocated | +|---------------------------------- |---------------------- |-----------:|----------:|----------:|-----------:|-----------:|-----------:|--------:|----------:| +| 'Query<T> (dynamic)' | InsightBenchmarkWrite | 113.2 μs | 6.54 μs | 3.57 μs | 111.5 μs | 105.1 μs | 131.1 μs | 8,833.7 | 8.66 KB | +| 'Auto Interface Single (dynamic)' | InsightBenchmarkWrite | 118.5 μs | 10.01 μs | 5.26 μs | 115.4 μs | 106.7 μs | 146.6 μs | 8,436.8 | 9.31 KB | +| Query<T> | InsightBenchmarkWrite | 118.6 μs | 7.83 μs | 4.01 μs | 117.2 μs | 107.8 μs | 135.9 μs | 8,431.3 | 8.84 KB | +| 'Query<T> (Fast Expando)' | InsightBenchmarkWrite | 121.5 μs | 14.45 μs | 7.70 μs | 118.2 μs | 102.7 μs | 171.5 μs | 8,230.0 | 8.66 KB | +| 'Auto Interface Query (dynamic)' | InsightBenchmarkWrite | 122.6 μs | 14.97 μs | 7.87 μs | 118.0 μs | 107.9 μs | 166.7 μs | 8,157.5 | 9.31 KB | +| 'Auto Interface Single (dynamic)' | InsightBenchmark | 122.8 μs | 14.42 μs | 7.49 μs | 118.8 μs | 105.7 μs | 164.2 μs | 8,144.7 | 9.31 KB | +| 'Auto Interface Single' | InsightBenchmark | 124.5 μs | 11.45 μs | 6.10 μs | 120.7 μs | 112.8 μs | 165.5 μs | 8,031.2 | 9.49 KB | +| 'Auto Interface Query' | InsightBenchmark | 124.7 μs | 15.39 μs | 8.09 μs | 120.9 μs | 108.7 μs | 170.0 μs | 8,017.1 | 9.49 KB | +| 'Single (dynamic)' | InsightBenchmarkWrite | 125.4 μs | 14.59 μs | 7.67 μs | 126.8 μs | 104.0 μs | 152.9 μs | 7,974.8 | 8.68 KB | +| 'Single Async (Fast Expando)' | InsightBenchmark | 126.5 μs | 15.10 μs | 7.74 μs | 120.5 μs | 108.7 μs | 174.2 μs | 7,906.5 | 9.11 KB | +| 'Auto Interface Query' | InsightBenchmarkWrite | 126.6 μs | 13.10 μs | 6.72 μs | 121.2 μs | 109.8 μs | 156.3 μs | 7,900.6 | 9.21 KB | +| 'Auto Interface Single' | InsightBenchmarkWrite | 127.2 μs | 13.69 μs | 7.20 μs | 124.7 μs | 108.4 μs | 161.4 μs | 7,859.4 | 9.49 KB | +| 'Query<T> (dynamic)' | InsightBenchmark | 129.5 μs | 18.25 μs | 9.36 μs | 126.8 μs | 108.1 μs | 182.9 μs | 7,721.2 | 8.66 KB | +| 'Single Async (dynamic)' | InsightBenchmarkWrite | 130.8 μs | 22.07 μs | 11.31 μs | 122.4 μs | 109.3 μs | 214.4 μs | 7,646.9 | 9.11 KB | +| 'Single Async (Fast Expando)' | InsightBenchmarkWrite | 131.0 μs | 23.33 μs | 12.11 μs | 123.3 μs | 109.4 μs | 222.2 μs | 7,633.9 | 9.11 KB | +| 'Query<T> Async (Fast Expando)' | InsightBenchmark | 131.5 μs | 15.04 μs | 7.80 μs | 126.9 μs | 110.3 μs | 166.3 μs | 7,606.4 | 9.11 KB | +| 'Query<T> Async (dynamic)' | InsightBenchmarkWrite | 131.5 μs | 16.28 μs | 8.15 μs | 126.7 μs | 113.0 μs | 190.2 μs | 7,602.6 | 9.11 KB | +| 'Query<T> Async' | InsightBenchmarkWrite | 131.6 μs | 20.15 μs | 10.33 μs | 126.5 μs | 111.8 μs | 214.8 μs | 7,601.4 | 9.29 KB | +| 'Single (dynamic)' | InsightBenchmark | 131.6 μs | 25.13 μs | 13.04 μs | 122.3 μs | 105.9 μs | 224.2 μs | 7,597.0 | 8.68 KB | +| 'Query<T> Async (dynamic)' | InsightBenchmark | 132.1 μs | 18.95 μs | 9.71 μs | 124.7 μs | 112.8 μs | 184.1 μs | 7,567.3 | 9.11 KB | +| 'Single (Tuple)' | InsightBenchmark | 134.7 μs | 14.91 μs | 7.55 μs | 131.9 μs | 114.0 μs | 169.8 μs | 7,425.4 | 9.77 KB | +| 'Auto Interface Query (dynamic)' | InsightBenchmark | 134.9 μs | 21.62 μs | 11.22 μs | 130.8 μs | 110.2 μs | 195.3 μs | 7,411.6 | 9.31 KB | +| 'Single (Tuple)' | InsightBenchmarkWrite | 135.6 μs | 18.40 μs | 9.55 μs | 132.0 μs | 114.5 μs | 198.1 μs | 7,373.7 | 9.77 KB | +| 'Single Async (Tuple)' | InsightBenchmarkWrite | 136.6 μs | 13.09 μs | 6.79 μs | 131.7 μs | 121.8 μs | 174.3 μs | 7,320.3 | 10.32 KB | +| 'Query<T> Async' | InsightBenchmark | 136.9 μs | 24.65 μs | 12.34 μs | 130.6 μs | 113.7 μs | 231.5 μs | 7,306.8 | 9.29 KB | +| Query<T> | InsightBenchmark | 137.0 μs | 25.65 μs | 12.70 μs | 128.3 μs | 109.3 μs | 233.0 μs | 7,301.8 | 8.84 KB | +| 'Single Async (Tuple)' | InsightBenchmarkWrite | 138.6 μs | 13.95 μs | 7.24 μs | 133.9 μs | 124.3 μs | 190.3 μs | 7,216.7 | 10.27 KB | +| Query<(Tuple)> | InsightBenchmark | 138.6 μs | 18.67 μs | 9.24 μs | 132.7 μs | 116.2 μs | 191.0 μs | 7,213.1 | 9.55 KB | +| Query<(Tuple)> | InsightBenchmarkWrite | 138.7 μs | 18.90 μs | 9.81 μs | 133.2 μs | 118.0 μs | 184.8 μs | 7,207.6 | 9.83 KB | +| 'Single (Fast Expando)' | InsightBenchmarkWrite | 146.4 μs | 58.65 μs | 30.07 μs | 117.9 μs | 106.3 μs | 311.8 μs | 6,829.4 | 8.68 KB | +| 'Query<T> (Fast Expando)' | InsightBenchmark | 146.8 μs | 65.71 μs | 34.10 μs | 115.5 μs | 105.2 μs | 316.4 μs | 6,810.2 | 8.66 KB | +| Single | InsightBenchmarkWrite | 147.0 μs | 24.45 μs | 12.10 μs | 144.0 μs | 105.7 μs | 215.4 μs | 6,801.0 | 8.86 KB | +| 'Single Async (dynamic)' | InsightBenchmark | 148.0 μs | 45.19 μs | 23.75 μs | 132.8 μs | 109.6 μs | 307.7 μs | 6,758.5 | 9.11 KB | +| 'Single Async (Tuple)' | InsightBenchmark | 149.5 μs | 21.51 μs | 11.31 μs | 143.0 μs | 125.1 μs | 240.7 μs | 6,688.4 | 10.32 KB | +| 'Single Async (Tuple)' | InsightBenchmark | 150.8 μs | 21.24 μs | 10.76 μs | 144.1 μs | 125.1 μs | 213.2 μs | 6,632.8 | 10.27 KB | +| Single | InsightBenchmark | 151.9 μs | 51.63 μs | 26.16 μs | 126.8 μs | 106.9 μs | 313.1 μs | 6,585.3 | 8.86 KB | +| 'Query<T> Async (Fast Expando)' | InsightBenchmarkWrite | 152.8 μs | 57.94 μs | 30.85 μs | 131.0 μs | 113.0 μs | 338.6 μs | 6,545.9 | 9.11 KB | +| 'Single Async' | InsightBenchmarkWrite | 163.3 μs | 62.80 μs | 32.60 μs | 134.1 μs | 113.7 μs | 369.8 μs | 6,125.0 | 9.29 KB | +| 'Single Async' | InsightBenchmark | 173.8 μs | 69.63 μs | 36.14 μs | 146.6 μs | 113.9 μs | 401.8 μs | 5,752.2 | 9.29 KB | +| 'Single (Fast Expando)' | InsightBenchmark | 193.6 μs | 83.35 μs | 44.38 μs | 161.2 μs | 107.3 μs | 355.4 μs | 5,165.3 | 8.68 KB | +| 'Query<T> Parent/Child Together' | InsightBenchmarkWrite | 3,008.0 μs | 150.38 μs | 78.05 μs | 2,988.4 μs | 2,787.7 μs | 3,535.8 μs | 332.4 | 22.99 KB | +| 'Query<T> Parent/Child Together' | InsightBenchmark | 3,017.2 μs | 209.69 μs | 108.84 μs | 2,974.1 μs | 2,709.9 μs | 3,536.6 μs | 331.4 | 22.99 KB | +| 'Query<T> Parent/Child' | InsightBenchmarkWrite | 3,221.5 μs | 213.47 μs | 110.80 μs | 3,212.8 μs | 2,924.2 μs | 3,725.7 μs | 310.4 | 23.95 KB | +| 'Query<T> Parent/Child' | InsightBenchmark | 3,333.2 μs | 198.55 μs | 103.05 μs | 3,308.8 μs | 2,947.7 μs | 3,808.0 μs | 300.0 | 23.95 KB | +| | | | | | | | | | | +| 'Insert<T> Async' | InsightBenchmarkWrite | 4,116.0 μs | 182.34 μs | 93.49 μs | 4,093.2 μs | 3,768.2 μs | 4,528.3 μs | 243.0 | 7.73 KB | +| 'Update<T> Async' | InsightBenchmarkWrite | 4,217.4 μs | 182.01 μs | 90.10 μs | 4,212.9 μs | 3,910.7 μs | 4,920.9 μs | 237.1 | 7.95 KB | +| Update<T> | InsightBenchmarkWrite | 4,329.0 μs | 365.12 μs | 184.97 μs | 4,223.2 μs | 3,854.1 μs | 5,450.7 μs | 231.0 | 7.41 KB | +| Insert<T> | InsightBenchmarkWrite | 4,367.5 μs | 429.51 μs | 212.62 μs | 4,220.2 μs | 3,928.3 μs | 5,600.4 μs | 229.0 | 7.15 KB | From 181489f2670cedcad6c26ec2faa668fbe527de41 Mon Sep 17 00:00:00 2001 From: Jaxel Rojas Date: Mon, 25 Nov 2024 09:33:22 -0400 Subject: [PATCH 4/8] fix: added trust server certificate since this is a container --- .../Insight.Database.Benchmarks.SqlServer/appsettings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmarks/Insight.Database.Benchmarks.SqlServer/appsettings.json b/benchmarks/Insight.Database.Benchmarks.SqlServer/appsettings.json index 9ac92b2..fe654d7 100644 --- a/benchmarks/Insight.Database.Benchmarks.SqlServer/appsettings.json +++ b/benchmarks/Insight.Database.Benchmarks.SqlServer/appsettings.json @@ -1,6 +1,6 @@ { "ConnectionStrings": { - "Default": "Server=127.0.0.1,1434;Database=master;User Id=sa;Password=P@ssword123;Connect Timeout=120;" + "Default": "Server=127.0.0.1,1434;Database=master;User Id=sa;Password=P@ssword123;Connect Timeout=120;TrustServerCertificate=True" }, "Records" : 1000 } From 13f59b2bb98fe97b9429a61be43961345b9a5026 Mon Sep 17 00:00:00 2001 From: Jaxel Rojas Date: Mon, 25 Nov 2024 09:34:04 -0400 Subject: [PATCH 5/8] docs: added benchmark results from mysql --- .../README.md | 170 +++++++++--------- 1 file changed, 85 insertions(+), 85 deletions(-) diff --git a/benchmarks/Insight.Database.Benchmarks.MySql/README.md b/benchmarks/Insight.Database.Benchmarks.MySql/README.md index e837635..9397027 100644 --- a/benchmarks/Insight.Database.Benchmarks.MySql/README.md +++ b/benchmarks/Insight.Database.Benchmarks.MySql/README.md @@ -4,92 +4,92 @@ These are benchmark scenarios for the MySql Provider of [Insight.Database](https ``` -BenchmarkDotNet v0.13.12, Windows 11 (10.0.22631.3235/23H2/2023Update/SunValley3) +BenchmarkDotNet v0.14.0, Windows 11 (10.0.26100.2314) 11th Gen Intel Core i5-1135G7 2.40GHz, 1 CPU, 8 logical and 4 physical cores -.NET SDK 8.0.201 - [Host] : .NET 8.0.2 (8.0.224.6711), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI - ShortRun : .NET 8.0.2 (8.0.224.6711), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI +.NET SDK 9.0.100 + [Host] : .NET 9.0.0 (9.0.24.52809), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI + ShortRun : .NET 9.0.0 (9.0.24.52809), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI ``` -| Method | Type | Mean | StdDev | Error | Median | Min | Max | Op/s | Allocated | -|------------------------------------------ |---------------------- |----------:|----------:|----------:|----------:|----------:|----------:|-------:|----------:| -| 'Single (Tuple)' | InsightBenchmarkWrite | 1.089 ms | 0.0831 ms | 0.0442 ms | 1.087 ms | 0.9701 ms | 1.281 ms | 918.46 | 50.21 KB | -| 'Query<T> (Fast Expando)' | InsightBenchmarkWrite | 1.099 ms | 0.0824 ms | 0.0428 ms | 1.087 ms | 0.9724 ms | 1.289 ms | 910.26 | 18.28 KB | -| 'Single (Fast Expando)' | InsightBenchmarkWrite | 1.099 ms | 0.0722 ms | 0.0380 ms | 1.096 ms | 0.9742 ms | 1.271 ms | 910.00 | 50.47 KB | -| 'Auto Interface Single (dynamic)' | InsightBenchmark | 1.102 ms | 0.1280 ms | 0.0682 ms | 1.067 ms | 0.9294 ms | 1.472 ms | 907.28 | 18.93 KB | -| 'Query<T> Async' | InsightBenchmarkWrite | 1.118 ms | 0.0876 ms | 0.0467 ms | 1.118 ms | 0.9581 ms | 1.470 ms | 894.23 | 18.76 KB | -| 'Single Async (Fast Expando)' | InsightBenchmark | 1.122 ms | 0.0697 ms | 0.0367 ms | 1.113 ms | 0.9874 ms | 1.339 ms | 891.31 | 50.9 KB | -| 'Single (dynamic)' | InsightBenchmark | 1.126 ms | 0.1179 ms | 0.0620 ms | 1.101 ms | 0.9667 ms | 1.493 ms | 887.80 | 50.47 KB | -| 'Single Async' | InsightBenchmarkWrite | 1.127 ms | 0.0782 ms | 0.0416 ms | 1.110 ms | 1.0001 ms | 1.316 ms | 887.45 | 18.76 KB | -| 'Single (dynamic)' | InsightBenchmarkWrite | 1.127 ms | 0.1308 ms | 0.0679 ms | 1.089 ms | 0.9514 ms | 1.687 ms | 887.20 | 50.47 KB | -| 'Single Procedure (dynamic)' | InsightBenchmarkWrite | 1.130 ms | 0.0782 ms | 0.0416 ms | 1.127 ms | 1.0048 ms | 1.316 ms | 884.73 | 20.55 KB | -| Query<T> | InsightBenchmarkWrite | 1.133 ms | 0.1251 ms | 0.0658 ms | 1.096 ms | 0.9619 ms | 1.584 ms | 882.56 | 18.31 KB | -| 'Query<T> Async' | InsightBenchmark | 1.138 ms | 0.1024 ms | 0.0545 ms | 1.131 ms | 0.9629 ms | 1.527 ms | 879.00 | 50.93 KB | -| 'Single Procedure (Fast Expando)' | InsightBenchmark | 1.138 ms | 0.0719 ms | 0.0388 ms | 1.133 ms | 1.0311 ms | 1.339 ms | 878.92 | 52.73 KB | -| 'Query<T> (dynamic)' | InsightBenchmarkWrite | 1.139 ms | 0.1288 ms | 0.0686 ms | 1.098 ms | 0.9499 ms | 1.397 ms | 878.35 | 18.28 KB | -| 'Query<T> Async (dynamic)' | InsightBenchmarkWrite | 1.139 ms | 0.1031 ms | 0.0535 ms | 1.126 ms | 0.9986 ms | 1.432 ms | 877.90 | 18.73 KB | -| 'Query<T> Async (dynamic)' | InsightBenchmark | 1.140 ms | 0.0965 ms | 0.0501 ms | 1.126 ms | 0.9960 ms | 1.454 ms | 877.56 | 50.9 KB | -| Query<T> | InsightBenchmark | 1.141 ms | 0.0885 ms | 0.0471 ms | 1.119 ms | 1.0110 ms | 1.355 ms | 876.64 | 50.48 KB | -| 'Single (Fast Expando)' | InsightBenchmark | 1.145 ms | 0.1791 ms | 0.0930 ms | 1.101 ms | 0.9618 ms | 1.770 ms | 873.72 | 50.47 KB | -| Query<(Tuple)> | InsightBenchmark | 1.145 ms | 0.1168 ms | 0.0614 ms | 1.116 ms | 1.0095 ms | 1.475 ms | 873.54 | 50.27 KB | -| 'Single Procedure (dynamic)' | InsightBenchmark | 1.145 ms | 0.0853 ms | 0.0448 ms | 1.121 ms | 0.9942 ms | 1.439 ms | 873.10 | 52.73 KB | -| 'Single Async (dynamic)' | InsightBenchmarkWrite | 1.146 ms | 0.1000 ms | 0.0532 ms | 1.121 ms | 0.9910 ms | 1.403 ms | 872.86 | 18.73 KB | -| 'Query<T> Procedure (Fast Expando)' | InsightBenchmark | 1.146 ms | 0.0774 ms | 0.0418 ms | 1.141 ms | 1.0358 ms | 1.409 ms | 872.28 | 20.54 KB | -| 'Single Async (dynamic)' | InsightBenchmark | 1.151 ms | 0.1196 ms | 0.0628 ms | 1.130 ms | 0.9768 ms | 1.450 ms | 868.99 | 50.9 KB | -| 'Query<T> Async (Fast Expando)' | InsightBenchmark | 1.152 ms | 0.0976 ms | 0.0513 ms | 1.153 ms | 0.9881 ms | 1.478 ms | 868.15 | 50.9 KB | -| 'Auto Interface Query' | InsightBenchmark | 1.154 ms | 0.1043 ms | 0.0548 ms | 1.144 ms | 1.0145 ms | 1.455 ms | 866.71 | 18.96 KB | -| 'Query<T> Procedure Async (Fast Expando)' | InsightBenchmark | 1.160 ms | 0.0859 ms | 0.0457 ms | 1.142 ms | 1.0352 ms | 1.412 ms | 861.81 | 20.98 KB | -| 'Single (Tuple)' | InsightBenchmark | 1.166 ms | 0.1640 ms | 0.0851 ms | 1.120 ms | 0.9764 ms | 1.708 ms | 857.32 | 50.21 KB | -| 'Single Procedure Async (dynamic)' | InsightBenchmark | 1.171 ms | 0.0915 ms | 0.0481 ms | 1.168 ms | 1.0099 ms | 1.405 ms | 853.84 | 53.16 KB | -| Single | InsightBenchmarkWrite | 1.172 ms | 0.1055 ms | 0.0562 ms | 1.160 ms | 1.0105 ms | 1.445 ms | 853.45 | 18.33 KB | -| 'Query<T> Procedure Async' | InsightBenchmarkWrite | 1.172 ms | 0.0881 ms | 0.0457 ms | 1.160 ms | 0.9889 ms | 1.352 ms | 853.03 | 21.02 KB | -| Single | InsightBenchmark | 1.173 ms | 0.1255 ms | 0.0643 ms | 1.147 ms | 0.9758 ms | 1.416 ms | 852.75 | 50.5 KB | -| 'Single Async (Tuple)' | InsightBenchmarkWrite | 1.174 ms | 0.1006 ms | 0.0516 ms | 1.155 ms | 1.0180 ms | 1.427 ms | 851.44 | 18.46 KB | -| 'Query<T> Procedure (dynamic)' | InsightBenchmarkWrite | 1.184 ms | 0.1327 ms | 0.0689 ms | 1.155 ms | 0.9415 ms | 1.667 ms | 844.80 | 20.54 KB | -| 'Single Procedure' | InsightBenchmark | 1.187 ms | 0.0952 ms | 0.0501 ms | 1.186 ms | 1.0232 ms | 1.430 ms | 842.34 | 52.76 KB | -| 'Auto Interface Query (dynamic)' | InsightBenchmark | 1.191 ms | 0.2086 ms | 0.1057 ms | 1.108 ms | 0.9730 ms | 2.045 ms | 839.69 | 18.93 KB | -| 'Single Async (Tuple)' | InsightBenchmarkWrite | 1.192 ms | 0.1157 ms | 0.0601 ms | 1.152 ms | 1.0280 ms | 1.462 ms | 838.79 | 18.41 KB | -| 'Query<T> Procedure Async (dynamic)' | InsightBenchmark | 1.195 ms | 0.1420 ms | 0.0728 ms | 1.157 ms | 1.0010 ms | 1.570 ms | 836.51 | 20.98 KB | -| 'Query<T> (Fast Expando)' | InsightBenchmark | 1.197 ms | 0.1936 ms | 0.0981 ms | 1.121 ms | 1.0279 ms | 1.937 ms | 835.15 | 50.45 KB | -| 'Single json' | InsightBenchmarkJson | 1.201 ms | 0.0937 ms | 0.0520 ms | 1.200 ms | 0.9839 ms | 1.458 ms | 832.32 | 44.52 KB | -| 'Query<T> Procedure Async' | InsightBenchmark | 1.207 ms | 0.1145 ms | 0.0618 ms | 1.179 ms | 1.0632 ms | 1.622 ms | 828.73 | 53.19 KB | -| 'Single Procedure Async (Fast Expando)' | InsightBenchmark | 1.207 ms | 0.1324 ms | 0.0696 ms | 1.147 ms | 1.0100 ms | 1.525 ms | 828.39 | 53.16 KB | -| 'Query<T> Procedure' | InsightBenchmark | 1.209 ms | 0.1135 ms | 0.0612 ms | 1.186 ms | 1.0487 ms | 1.632 ms | 827.46 | 52.74 KB | -| 'Single Async (Fast Expando)' | InsightBenchmarkWrite | 1.212 ms | 0.2302 ms | 0.1166 ms | 1.149 ms | 0.9742 ms | 2.060 ms | 824.76 | 18.73 KB | -| 'Query<T> (dynamic)' | InsightBenchmark | 1.216 ms | 0.2852 ms | 0.1499 ms | 1.105 ms | 1.0159 ms | 2.159 ms | 822.64 | 50.45 KB | -| 'Single Procedure' | InsightBenchmarkWrite | 1.218 ms | 0.1255 ms | 0.0660 ms | 1.170 ms | 0.9865 ms | 1.495 ms | 820.75 | 20.59 KB | -| 'Single Procedure Async' | InsightBenchmarkWrite | 1.244 ms | 0.1414 ms | 0.0716 ms | 1.202 ms | 0.9960 ms | 1.560 ms | 804.14 | 21.02 KB | -| 'Single Procedure Async (Fast Expando)' | InsightBenchmarkWrite | 1.246 ms | 0.1756 ms | 0.0961 ms | 1.193 ms | 1.0444 ms | 1.686 ms | 802.79 | 20.98 KB | -| 'Query<T> Procedure (dynamic)' | InsightBenchmark | 1.256 ms | 0.2095 ms | 0.1101 ms | 1.198 ms | 1.0281 ms | 1.819 ms | 796.05 | 20.54 KB | -| 'Single Async json' | InsightBenchmarkJson | 1.259 ms | 0.0857 ms | 0.0468 ms | 1.236 ms | 1.1251 ms | 1.485 ms | 794.55 | 44.95 KB | -| 'Single Async' | InsightBenchmark | 1.265 ms | 0.1716 ms | 0.0902 ms | 1.209 ms | 1.0307 ms | 1.733 ms | 790.71 | 50.93 KB | -| 'Single Procedure (Fast Expando)' | InsightBenchmarkWrite | 1.267 ms | 0.2820 ms | 0.1482 ms | 1.170 ms | 0.9946 ms | 2.037 ms | 789.29 | 20.55 KB | -| 'Single Procedure Async' | InsightBenchmark | 1.268 ms | 0.1405 ms | 0.0720 ms | 1.227 ms | 1.0824 ms | 1.580 ms | 788.62 | 53.19 KB | -| 'Query<T> json' | InsightBenchmarkJson | 1.280 ms | 0.1884 ms | 0.0966 ms | 1.233 ms | 1.0227 ms | 1.901 ms | 781.39 | 44.51 KB | -| 'Query<T> Async (Fast Expando)' | InsightBenchmarkWrite | 1.282 ms | 0.3163 ms | 0.1684 ms | 1.136 ms | 0.9947 ms | 2.285 ms | 780.02 | 18.73 KB | -| 'Single Procedure Async (dynamic)' | InsightBenchmarkWrite | 1.285 ms | 0.2142 ms | 0.1085 ms | 1.245 ms | 0.9500 ms | 1.838 ms | 778.02 | 20.98 KB | -| 'Query<T> Async json' | InsightBenchmarkJson | 1.294 ms | 0.1481 ms | 0.0759 ms | 1.237 ms | 1.1149 ms | 1.725 ms | 772.97 | 44.95 KB | -| 'Single Async (Tuple)' | InsightBenchmark | 1.339 ms | 0.3424 ms | 0.1734 ms | 1.196 ms | 1.0019 ms | 2.381 ms | 746.65 | 50.71 KB | -| 'Auto Interface Single' | InsightBenchmark | 1.351 ms | 0.4007 ms | 0.2106 ms | 1.174 ms | 1.0243 ms | 2.204 ms | 740.13 | 51.13 KB | -| 'Query<T> Procedure Async (dynamic)' | InsightBenchmarkWrite | 1.363 ms | 0.3473 ms | 0.1849 ms | 1.227 ms | 1.0005 ms | 2.289 ms | 733.54 | 20.98 KB | -| 'Query<T> Procedure' | InsightBenchmarkWrite | 1.372 ms | 0.3382 ms | 0.1756 ms | 1.226 ms | 1.0247 ms | 2.342 ms | 728.92 | 20.57 KB | -| 'Auto Interface Query (dynamic)' | InsightBenchmarkWrite | 1.373 ms | 0.2606 ms | 0.1388 ms | 1.467 ms | 0.9902 ms | 1.826 ms | 728.43 | 18.93 KB | -| 'Auto Interface Single (dynamic)' | InsightBenchmarkWrite | 1.379 ms | 0.3750 ms | 0.1971 ms | 1.209 ms | 0.9730 ms | 2.162 ms | 725.34 | 18.93 KB | -| 'Single Async (Tuple)' | InsightBenchmark | 1.403 ms | 0.2163 ms | 0.1096 ms | 1.432 ms | 1.0731 ms | 1.884 ms | 713.00 | 50.76 KB | -| 'Auto Interface Single' | InsightBenchmarkWrite | 1.470 ms | 0.3291 ms | 0.1752 ms | 1.493 ms | 1.0419 ms | 2.123 ms | 680.14 | 18.96 KB | -| 'Auto Interface Query' | InsightBenchmarkWrite | 1.568 ms | 0.1636 ms | 0.0849 ms | 1.560 ms | 1.2526 ms | 2.168 ms | 637.73 | 18.96 KB | -| 'Query<T> Procedure Async (Fast Expando)' | InsightBenchmarkWrite | 1.579 ms | 0.3302 ms | 0.1781 ms | 1.572 ms | 1.0555 ms | 2.335 ms | 633.23 | 20.98 KB | -| 'Query<T> Procedure (Fast Expando)' | InsightBenchmarkWrite | 1.711 ms | 0.3696 ms | 0.1895 ms | 1.636 ms | 1.1287 ms | 2.473 ms | 584.57 | 20.54 KB | -| Query<(Tuple)> | InsightBenchmarkWrite | 1.870 ms | 0.4405 ms | 0.2231 ms | 2.019 ms | 1.0674 ms | 2.545 ms | 534.72 | 17.97 KB | -| 'Query<T> Parent/Child' | InsightBenchmark | 2.820 ms | 0.1369 ms | 0.0729 ms | 2.793 ms | 2.6390 ms | 3.292 ms | 354.62 | 72.65 KB | -| 'Query<T> Parent/Child Together' | InsightBenchmark | 3.038 ms | 0.5392 ms | 0.2798 ms | 2.798 ms | 2.5348 ms | 5.023 ms | 329.11 | 39.63 KB | -| 'Query<T> Parent/Child Together' | InsightBenchmarkWrite | 3.113 ms | 0.3175 ms | 0.1628 ms | 3.103 ms | 2.6052 ms | 3.784 ms | 321.19 | 38.7 KB | -| 'Query<T> Parent/Child' | InsightBenchmarkWrite | 3.262 ms | 0.3899 ms | 0.2049 ms | 3.351 ms | 2.7005 ms | 4.123 ms | 306.57 | 40.35 KB | -| | | | | | | | | | | -| Update<T> | InsightBenchmarkWrite | 3.434 ms | 0.7728 ms | 0.3825 ms | 3.449 ms | 2.3553 ms | 4.816 ms | 291.17 | 21.84 KB | -| 'Update<T> Async' | InsightBenchmarkWrite | 3.462 ms | 0.7528 ms | 0.3727 ms | 3.721 ms | 2.3125 ms | 4.890 ms | 288.84 | 22.39 KB | -| 'Insert<T> Async' | InsightBenchmarkWrite | 3.572 ms | 0.8383 ms | 0.4150 ms | 3.643 ms | 2.3529 ms | 5.027 ms | 279.97 | 21.3 KB | -| Insert<T> | InsightBenchmarkWrite | 3.812 ms | 0.8477 ms | 0.4196 ms | 3.836 ms | 2.3426 ms | 5.376 ms | 262.33 | 20.97 KB | -| 'Update<T> json' | InsightBenchmarkJson | 10.334 ms | 1.2036 ms | 0.6171 ms | 10.528 ms | 5.8813 ms | 11.569 ms | 96.77 | 32.48 KB | -| 'Insert<T> json' | InsightBenchmarkJson | 10.395 ms | 0.4455 ms | 0.2284 ms | 10.421 ms | 8.9982 ms | 11.060 ms | 96.20 | 67.41 KB | +| Method | Type | Mean | StdDev | Error | Median | Min | Max | Op/s | Allocated | +|------------------------------------------ |---------------------- |------------:|------------:|----------:|------------:|-----------:|------------:|---------:|----------:| +| 'Query<T> (Fast Expando)' | InsightBenchmarkWrite | 996.1 μs | 90.37 μs | 46.33 μs | 989.3 μs | 832.8 μs | 1,299.2 μs | 1,003.94 | 21.92 KB | +| 'Auto Interface Query (dynamic)' | InsightBenchmarkWrite | 1,000.8 μs | 113.48 μs | 58.90 μs | 960.7 μs | 863.2 μs | 1,404.1 μs | 999.18 | 22.57 KB | +| 'Single Procedure (dynamic)' | InsightBenchmarkWrite | 1,004.8 μs | 63.53 μs | 33.83 μs | 989.4 μs | 915.1 μs | 1,175.8 μs | 995.19 | 24.98 KB | +| 'Auto Interface Single (dynamic)' | InsightBenchmarkWrite | 1,019.1 μs | 141.65 μs | 73.52 μs | 992.4 μs | 852.8 μs | 1,495.8 μs | 981.25 | 22.57 KB | +| 'Auto Interface Query (dynamic)' | InsightBenchmark | 1,026.1 μs | 157.90 μs | 80.96 μs | 995.6 μs | 837.7 μs | 1,676.7 μs | 974.60 | 22.57 KB | +| 'Auto Interface Single' | InsightBenchmarkWrite | 1,033.1 μs | 104.18 μs | 52.16 μs | 1,015.5 μs | 867.8 μs | 1,246.8 μs | 967.94 | 22.59 KB | +| 'Query<T> (dynamic)' | InsightBenchmark | 1,039.9 μs | 107.73 μs | 56.62 μs | 1,014.9 μs | 876.6 μs | 1,344.7 μs | 961.63 | 21.92 KB | +| 'Query<T> Procedure' | InsightBenchmarkWrite | 1,042.6 μs | 101.94 μs | 52.91 μs | 1,021.8 μs | 879.6 μs | 1,355.6 μs | 959.18 | 24.99 KB | +| Query<T> | InsightBenchmarkWrite | 1,051.1 μs | 117.59 μs | 58.88 μs | 1,032.1 μs | 852.8 μs | 1,350.5 μs | 951.37 | 21.95 KB | +| 'Single (Fast Expando)' | InsightBenchmarkWrite | 1,052.4 μs | 148.42 μs | 77.03 μs | 1,023.0 μs | 884.2 μs | 1,511.0 μs | 950.24 | 21.94 KB | +| 'Single Async' | InsightBenchmarkWrite | 1,057.5 μs | 100.45 μs | 51.50 μs | 1,040.1 μs | 918.4 μs | 1,342.5 μs | 945.61 | 24.23 KB | +| Query<T> | InsightBenchmark | 1,058.3 μs | 141.92 μs | 73.66 μs | 1,028.8 μs | 910.8 μs | 1,552.8 μs | 944.93 | 21.95 KB | +| 'Single (Tuple)' | InsightBenchmarkWrite | 1,068.5 μs | 129.83 μs | 65.01 μs | 1,027.5 μs | 867.1 μs | 1,360.5 μs | 935.88 | 21.02 KB | +| 'Query<T> Procedure (Fast Expando)' | InsightBenchmarkWrite | 1,068.8 μs | 112.75 μs | 58.52 μs | 1,046.0 μs | 920.7 μs | 1,496.5 μs | 935.60 | 24.97 KB | +| 'Single Procedure (dynamic)' | InsightBenchmark | 1,069.4 μs | 120.31 μs | 62.44 μs | 1,042.6 μs | 842.0 μs | 1,423.2 μs | 935.10 | 24.98 KB | +| 'Single Procedure' | InsightBenchmarkWrite | 1,079.2 μs | 90.81 μs | 47.73 μs | 1,049.1 μs | 942.6 μs | 1,354.1 μs | 926.64 | 25.01 KB | +| Query<(Tuple)> | InsightBenchmarkWrite | 1,081.9 μs | 116.33 μs | 59.65 μs | 1,053.6 μs | 923.1 μs | 1,528.4 μs | 924.34 | 21.07 KB | +| 'Query<T> Procedure (dynamic)' | InsightBenchmarkWrite | 1,098.6 μs | 131.01 μs | 69.75 μs | 1,084.7 μs | 937.4 μs | 1,470.8 μs | 910.21 | 24.97 KB | +| 'Single Async (dynamic)' | InsightBenchmarkWrite | 1,099.3 μs | 116.39 μs | 58.96 μs | 1,075.4 μs | 853.1 μs | 1,402.4 μs | 909.70 | 24.48 KB | +| 'Single Procedure (Fast Expando)' | InsightBenchmarkWrite | 1,111.9 μs | 165.86 μs | 85.04 μs | 1,053.0 μs | 919.0 μs | 1,701.7 μs | 899.34 | 24.98 KB | +| 'Query<T> Procedure (Fast Expando)' | InsightBenchmark | 1,112.3 μs | 118.58 μs | 60.07 μs | 1,124.3 μs | 886.6 μs | 1,422.1 μs | 899.00 | 24.97 KB | +| 'Single Async (Tuple)' | InsightBenchmarkWrite | 1,118.9 μs | 117.03 μs | 62.31 μs | 1,102.7 μs | 950.5 μs | 1,557.5 μs | 893.77 | 23.54 KB | +| 'Query<T> Async (dynamic)' | InsightBenchmarkWrite | 1,119.9 μs | 120.50 μs | 62.54 μs | 1,088.5 μs | 939.6 μs | 1,472.0 μs | 892.95 | 24.62 KB | +| Query<(Tuple)> | InsightBenchmark | 1,120.0 μs | 147.24 μs | 74.59 μs | 1,116.8 μs | 899.1 μs | 1,564.6 μs | 892.88 | 20.79 KB | +| 'Query<T> (dynamic)' | InsightBenchmarkWrite | 1,121.1 μs | 246.60 μs | 127.99 μs | 1,020.6 μs | 875.7 μs | 2,110.9 μs | 891.99 | 21.92 KB | +| 'Auto Interface Query' | InsightBenchmark | 1,135.8 μs | 196.47 μs | 103.27 μs | 1,066.8 μs | 899.8 μs | 1,673.1 μs | 880.47 | 22.59 KB | +| 'Single Async (Tuple)' | InsightBenchmarkWrite | 1,135.8 μs | 123.77 μs | 62.71 μs | 1,112.6 μs | 980.7 μs | 1,668.5 μs | 880.45 | 23.49 KB | +| 'Single Procedure' | InsightBenchmark | 1,148.0 μs | 166.37 μs | 85.30 μs | 1,095.8 μs | 938.5 μs | 1,589.8 μs | 871.10 | 24.73 KB | +| 'Query<T> Procedure' | InsightBenchmark | 1,150.9 μs | 194.83 μs | 101.12 μs | 1,116.5 μs | 880.1 μs | 1,665.5 μs | 868.88 | 24.71 KB | +| 'Query<T> Async (Fast Expando)' | InsightBenchmark | 1,155.7 μs | 175.92 μs | 91.31 μs | 1,123.2 μs | 931.6 μs | 1,717.7 μs | 865.27 | 24.48 KB | +| 'Single Procedure (Fast Expando)' | InsightBenchmark | 1,155.7 μs | 174.11 μs | 92.70 μs | 1,115.1 μs | 938.4 μs | 1,652.3 μs | 865.25 | 24.98 KB | +| 'Query<T> Async' | InsightBenchmark | 1,156.8 μs | 176.48 μs | 91.60 μs | 1,101.3 μs | 981.1 μs | 1,726.0 μs | 864.44 | 24.51 KB | +| 'Single Procedure Async (dynamic)' | InsightBenchmarkWrite | 1,158.0 μs | 91.99 μs | 48.35 μs | 1,126.3 μs | 1,017.3 μs | 1,391.2 μs | 863.54 | 27.24 KB | +| 'Query<T> Async (Fast Expando)' | InsightBenchmarkWrite | 1,165.3 μs | 176.57 μs | 92.80 μs | 1,116.2 μs | 919.3 μs | 1,619.5 μs | 858.16 | 24.2 KB | +| Single | InsightBenchmarkWrite | 1,168.5 μs | 305.53 μs | 156.65 μs | 1,034.7 μs | 830.0 μs | 1,956.1 μs | 855.77 | 21.96 KB | +| 'Query<T> Procedure Async (Fast Expando)' | InsightBenchmark | 1,178.7 μs | 102.66 μs | 53.96 μs | 1,149.4 μs | 988.5 μs | 1,430.8 μs | 848.39 | 27.24 KB | +| 'Query<T> Procedure Async (dynamic)' | InsightBenchmarkWrite | 1,181.4 μs | 98.77 μs | 50.04 μs | 1,158.7 μs | 1,035.8 μs | 1,414.5 μs | 846.42 | 27.53 KB | +| 'Query<T> (Fast Expando)' | InsightBenchmark | 1,181.6 μs | 354.24 μs | 179.46 μs | 1,087.7 μs | 847.5 μs | 2,472.1 μs | 846.29 | 21.92 KB | +| 'Single Procedure Async (Fast Expando)' | InsightBenchmarkWrite | 1,185.6 μs | 146.13 μs | 74.92 μs | 1,156.5 μs | 967.0 μs | 1,688.2 μs | 843.45 | 27.53 KB | +| 'Auto Interface Query' | InsightBenchmarkWrite | 1,185.8 μs | 280.18 μs | 140.29 μs | 1,084.0 μs | 835.3 μs | 1,912.2 μs | 843.30 | 22.59 KB | +| 'Query<T> Procedure (dynamic)' | InsightBenchmark | 1,186.3 μs | 232.56 μs | 123.82 μs | 1,106.0 μs | 929.1 μs | 2,023.3 μs | 842.95 | 24.69 KB | +| 'Single json' | InsightBenchmarkJson | 1,189.0 μs | 156.61 μs | 84.49 μs | 1,164.7 μs | 947.8 μs | 1,608.5 μs | 841.02 | 48.1 KB | +| 'Query<T> Procedure Async' | InsightBenchmarkWrite | 1,189.5 μs | 119.36 μs | 60.47 μs | 1,151.4 μs | 1,026.3 μs | 1,534.8 μs | 840.70 | 27.55 KB | +| 'Query<T> Procedure Async (Fast Expando)' | InsightBenchmarkWrite | 1,197.8 μs | 109.84 μs | 57.73 μs | 1,187.9 μs | 1,054.2 μs | 1,489.9 μs | 834.89 | 27.24 KB | +| 'Single Procedure Async (dynamic)' | InsightBenchmark | 1,199.0 μs | 131.88 μs | 71.15 μs | 1,184.6 μs | 1,007.0 μs | 1,598.9 μs | 834.03 | 27.53 KB | +| 'Query<T> json' | InsightBenchmarkJson | 1,200.8 μs | 215.70 μs | 110.59 μs | 1,125.6 μs | 951.2 μs | 1,763.6 μs | 832.79 | 48.37 KB | +| 'Auto Interface Single' | InsightBenchmark | 1,203.3 μs | 268.41 μs | 137.62 μs | 1,109.1 μs | 890.3 μs | 1,997.0 μs | 831.03 | 22.31 KB | +| 'Single Async json' | InsightBenchmarkJson | 1,205.2 μs | 121.99 μs | 64.95 μs | 1,174.8 μs | 1,030.6 μs | 1,622.8 μs | 829.75 | 50.65 KB | +| 'Query<T> Procedure Async' | InsightBenchmark | 1,231.3 μs | 116.08 μs | 61.01 μs | 1,201.2 μs | 1,045.1 μs | 1,487.8 μs | 812.14 | 26.98 KB | +| 'Single Procedure Async' | InsightBenchmark | 1,234.7 μs | 140.48 μs | 72.02 μs | 1,206.9 μs | 1,025.2 μs | 1,640.8 μs | 809.88 | 27.55 KB | +| 'Query<T> Async' | InsightBenchmarkWrite | 1,235.7 μs | 233.54 μs | 119.74 μs | 1,149.7 μs | 950.4 μs | 1,890.2 μs | 809.27 | 25.05 KB | +| 'Single (dynamic)' | InsightBenchmarkWrite | 1,241.4 μs | 362.86 μs | 190.72 μs | 1,089.7 μs | 861.7 μs | 2,150.6 μs | 805.54 | 21.66 KB | +| 'Single Procedure Async (Fast Expando)' | InsightBenchmark | 1,245.0 μs | 181.37 μs | 92.99 μs | 1,191.2 μs | 1,029.3 μs | 1,761.4 μs | 803.21 | 27.53 KB | +| 'Query<T> Procedure Async (dynamic)' | InsightBenchmark | 1,253.3 μs | 156.34 μs | 84.35 μs | 1,181.5 μs | 1,026.9 μs | 1,652.6 μs | 797.91 | 27.53 KB | +| 'Single Async (Fast Expando)' | InsightBenchmark | 1,255.2 μs | 204.53 μs | 104.87 μs | 1,285.9 μs | 946.0 μs | 2,026.0 μs | 796.68 | 23.91 KB | +| 'Single Procedure Async' | InsightBenchmarkWrite | 1,272.4 μs | 235.93 μs | 120.96 μs | 1,188.4 μs | 996.0 μs | 1,862.3 μs | 785.94 | 27.55 KB | +| 'Query<T> Async (dynamic)' | InsightBenchmark | 1,273.2 μs | 215.39 μs | 111.79 μs | 1,228.6 μs | 949.1 μs | 1,909.5 μs | 785.43 | 24.2 KB | +| 'Single Async (Fast Expando)' | InsightBenchmarkWrite | 1,275.0 μs | 418.44 μs | 214.54 μs | 1,092.2 μs | 913.4 μs | 2,432.9 μs | 784.32 | 24.9 KB | +| 'Auto Interface Single (dynamic)' | InsightBenchmark | 1,276.3 μs | 356.22 μs | 184.89 μs | 1,152.0 μs | 898.4 μs | 2,406.3 μs | 783.53 | 22.29 KB | +| 'Single Async (Tuple)' | InsightBenchmark | 1,290.6 μs | 195.49 μs | 101.47 μs | 1,236.2 μs | 1,013.5 μs | 1,839.7 μs | 774.84 | 23.49 KB | +| 'Single Async' | InsightBenchmark | 1,316.5 μs | 249.17 μs | 130.96 μs | 1,203.8 μs | 997.1 μs | 1,793.7 μs | 759.61 | 24.22 KB | +| 'Single (Tuple)' | InsightBenchmark | 1,347.9 μs | 405.02 μs | 205.19 μs | 1,257.2 μs | 888.4 μs | 2,357.8 μs | 741.91 | 21.02 KB | +| 'Single Async (dynamic)' | InsightBenchmark | 1,356.9 μs | 285.11 μs | 142.76 μs | 1,291.4 μs | 958.3 μs | 2,011.6 μs | 736.99 | 24.48 KB | +| 'Single (dynamic)' | InsightBenchmark | 1,388.2 μs | 404.04 μs | 204.69 μs | 1,252.0 μs | 855.4 μs | 2,310.4 μs | 720.38 | 21.94 KB | +| 'Single Async (Tuple)' | InsightBenchmark | 1,423.4 μs | 321.24 μs | 162.74 μs | 1,418.0 μs | 1,002.1 μs | 2,171.9 μs | 702.54 | 23.25 KB | +| 'Single (Fast Expando)' | InsightBenchmark | 1,460.5 μs | 289.84 μs | 145.13 μs | 1,455.9 μs | 912.3 μs | 2,195.2 μs | 684.68 | 21.94 KB | +| Single | InsightBenchmark | 1,733.1 μs | 309.04 μs | 164.54 μs | 1,655.0 μs | 1,204.7 μs | 2,474.2 μs | 577.01 | 21.68 KB | +| 'Query<T> Async json' | InsightBenchmarkJson | 1,758.9 μs | 403.02 μs | 204.17 μs | 1,828.5 μs | 1,158.8 μs | 2,493.2 μs | 568.53 | 50.93 KB | +| 'Query<T> Parent/Child Together' | InsightBenchmarkWrite | 2,635.8 μs | 181.63 μs | 96.70 μs | 2,589.1 μs | 2,402.3 μs | 3,234.0 μs | 379.39 | 47.49 KB | +| 'Query<T> Parent/Child Together' | InsightBenchmark | 2,724.1 μs | 259.33 μs | 134.60 μs | 2,659.1 μs | 2,370.4 μs | 3,473.5 μs | 367.10 | 47.49 KB | +| 'Query<T> Parent/Child' | InsightBenchmarkWrite | 2,750.1 μs | 148.50 μs | 79.07 μs | 2,713.2 μs | 2,530.2 μs | 3,186.9 μs | 363.62 | 46.95 KB | +| 'Query<T> Parent/Child' | InsightBenchmark | 2,766.1 μs | 360.60 μs | 184.88 μs | 2,657.6 μs | 2,428.3 μs | 4,281.6 μs | 361.52 | 46.95 KB | +| | | | | | | | | | | +| 'Insert<T> json' | InsightBenchmarkJson | 10,267.7 μs | 1,344.73 μs | 689.45 μs | 10,442.9 μs | 5,307.7 μs | 11,938.3 μs | 97.39 | 35.7 KB | +| Insert<T> | InsightBenchmarkWrite | 10,280.9 μs | 800.54 μs | 396.30 μs | 10,364.9 μs | 5,709.9 μs | 11,403.9 μs | 97.27 | 23.45 KB | +| 'Update<T> json' | InsightBenchmarkJson | 10,615.1 μs | 546.99 μs | 280.45 μs | 10,590.8 μs | 9,471.8 μs | 11,715.4 μs | 94.21 | 36.06 KB | +| 'Insert<T> Async' | InsightBenchmarkWrite | 10,649.2 μs | 581.77 μs | 294.73 μs | 10,632.1 μs | 8,989.6 μs | 12,039.8 μs | 93.90 | 25.48 KB | +| 'Update<T> Async' | InsightBenchmarkWrite | 10,702.5 μs | 935.79 μs | 485.71 μs | 10,766.1 μs | 5,888.2 μs | 11,844.2 μs | 93.44 | 26.11 KB | +| Update<T> | InsightBenchmarkWrite | 10,882.0 μs | 631.52 μs | 331.93 μs | 10,925.7 μs | 8,772.0 μs | 12,091.0 μs | 91.89 | 23.52 KB | From d72cad5cb13038f68064753102b1d7f2489e2696 Mon Sep 17 00:00:00 2001 From: Jaxel Rojas Date: Mon, 25 Nov 2024 20:50:19 -0400 Subject: [PATCH 6/8] fix: update postgres to use utc --- .../InsightBenchmark.cs | 15 ++++++--------- .../InsightBenchmarkJson.cs | 8 ++++---- .../InsightBenchmarkWrite.cs | 2 +- 3 files changed, 11 insertions(+), 14 deletions(-) diff --git a/benchmarks/Insight.Database.Benchmarks.Postgres/InsightBenchmark.cs b/benchmarks/Insight.Database.Benchmarks.Postgres/InsightBenchmark.cs index 592545d..1ba74a1 100644 --- a/benchmarks/Insight.Database.Benchmarks.Postgres/InsightBenchmark.cs +++ b/benchmarks/Insight.Database.Benchmarks.Postgres/InsightBenchmark.cs @@ -136,22 +136,19 @@ public void DbSetup() var cmd = connection.CreateCommand(); cmd.CommandText = $@" - DROP TABLE IF EXISTS Comment; - DROP TABLE IF EXISTS Post; - CREATE TABLE IF NOT EXISTS Post ( Id INT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, ""Text"" Text NOT NULL, - CreationDate DATE NOT NULL, - LastChangeDate DATE NOT NULL + CreationDate TIMESTAMP WITH TIME ZONE NOT NULL, + LastChangeDate TIMESTAMP WITH TIME ZONE NOT NULL ); CREATE TABLE IF NOT EXISTS Comment ( Id INT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, PostId INT NOT NULL, CommentText Text NOT NULL, - CreationDate DATE NOT NULL + CreationDate TIMESTAMP WITH TIME ZONE NOT NULL ); DO $$ @@ -161,11 +158,11 @@ CreationDate DATE NOT NULL iter := 0; WHILE iter< {iterations} LOOP INSERT INTO Post(""Text"", CreationDate, LastChangeDate) - SELECT REPEAT('x', 2000), NOW(), NOW(); + SELECT REPEAT('x', 2000), timezone('UTC', now()), timezone('UTC', now()); INSERT INTO Comment(CommentText, CreationDate, PostId) - SELECT REPEAT('x', 2000), NOW(), currval(pg_get_serial_sequence('post', 'id')) UNION ALL - SELECT REPEAT('x', 2000), NOW(), currval(pg_get_serial_sequence('post', 'id')); + SELECT REPEAT('x', 2000), timezone('UTC', now()), currval(pg_get_serial_sequence('post', 'id')) UNION ALL + SELECT REPEAT('x', 2000), timezone('UTC', now()), currval(pg_get_serial_sequence('post', 'id')); iter:= iter + 1; END LOOP; diff --git a/benchmarks/Insight.Database.Benchmarks.Postgres/InsightBenchmarkJson.cs b/benchmarks/Insight.Database.Benchmarks.Postgres/InsightBenchmarkJson.cs index 3b7ed21..00da097 100644 --- a/benchmarks/Insight.Database.Benchmarks.Postgres/InsightBenchmarkJson.cs +++ b/benchmarks/Insight.Database.Benchmarks.Postgres/InsightBenchmarkJson.cs @@ -17,7 +17,7 @@ public class InsightBenchmarkJson : BaseBenchmark public static IEnumerable PostsJson() { - yield return new Post() { Text = Text, CreationDate = DateTime.Now, LastChangeDate = DateTime.Now }; + yield return new Post() { Text = Text, CreationDate = DateTime.UtcNow, LastChangeDate = DateTime.UtcNow }; } [Benchmark(Description = "Insert json")] @@ -71,8 +71,8 @@ CREATE TABLE IF NOT EXISTS PostJson ( Id INT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, Child JSON NOT NULL, - CreationDate DATE NOT NULL, - LastChangeDate DATE NOT NULL + CreationDate TIMESTAMP WITH TIME ZONE NOT NULL, + LastChangeDate TIMESTAMP WITH TIME ZONE NOT NULL ); DO $$ @@ -86,7 +86,7 @@ WHILE iter< {iterations} LOOP INSERT INTO PostJson(Child, CreationDate, LastChangeDate) - SELECT ChildField, NOW(), NOW(); + SELECT ChildField, timezone('UTC', now()), timezone('UTC', now()); iter:= iter + 1; END LOOP; diff --git a/benchmarks/Insight.Database.Benchmarks.Postgres/InsightBenchmarkWrite.cs b/benchmarks/Insight.Database.Benchmarks.Postgres/InsightBenchmarkWrite.cs index fd54e4b..46f5f2b 100644 --- a/benchmarks/Insight.Database.Benchmarks.Postgres/InsightBenchmarkWrite.cs +++ b/benchmarks/Insight.Database.Benchmarks.Postgres/InsightBenchmarkWrite.cs @@ -10,7 +10,7 @@ public class InsightBenchmarkWrite : InsightBenchmark { public static IEnumerable Posts() { - yield return new Post() { Text = new string('x', 2000), CreationDate = DateTime.Now, LastChangeDate = DateTime.Now }; + yield return new Post() { Text = new string('x', 2000), CreationDate = DateTime.UtcNow, LastChangeDate = DateTime.UtcNow }; } [Benchmark(Description = "Insert")] From 566deec723832cd19fdbb845df19a1061a64d9bd Mon Sep 17 00:00:00 2001 From: Jaxel Rojas Date: Mon, 25 Nov 2024 21:25:06 -0400 Subject: [PATCH 7/8] docs: added benchmark results from sql server --- .../README.md | 182 +++++++++--------- 1 file changed, 91 insertions(+), 91 deletions(-) diff --git a/benchmarks/Insight.Database.Benchmarks.SqlServer/README.md b/benchmarks/Insight.Database.Benchmarks.SqlServer/README.md index 5675003..5b8efff 100644 --- a/benchmarks/Insight.Database.Benchmarks.SqlServer/README.md +++ b/benchmarks/Insight.Database.Benchmarks.SqlServer/README.md @@ -4,98 +4,98 @@ These are benchmark scenarios for the Default Provider of [Insight.Database](htt ``` -BenchmarkDotNet v0.13.12, Windows 11 (10.0.22631.3235/23H2/2023Update/SunValley3) +BenchmarkDotNet v0.14.0, Windows 11 (10.0.26100.2314) 11th Gen Intel Core i5-1135G7 2.40GHz, 1 CPU, 8 logical and 4 physical cores -.NET SDK 8.0.201 - [Host] : .NET 8.0.2 (8.0.224.6711), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI - ShortRun : .NET 8.0.2 (8.0.224.6711), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI +.NET SDK 9.0.100 + [Host] : .NET 9.0.0 (9.0.24.52809), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI + ShortRun : .NET 9.0.0 (9.0.24.52809), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI ``` -| Method | Type | Mean | StdDev | Error | Median | Min | Max | Op/s | Allocated | -|------------------------------------------ |---------------------- |-----------:|----------:|----------:|-----------:|-----------:|-----------:|--------:|----------:| -| 'Query<T> Procedure (Fast Expando)' | InsightBenchmarkWrite | 150.2 μs | 33.81 μs | 17.34 μs | 144.2 μs | 105.7 μs | 256.4 μs | 6,657.6 | 12.09 KB | -| 'Query<T> Procedure (dynamic)' | InsightBenchmarkWrite | 164.7 μs | 16.44 μs | 8.87 μs | 165.0 μs | 108.8 μs | 200.0 μs | 6,071.1 | 12.09 KB | -| 'Single (Fast Expando)' | InsightBenchmark | 168.4 μs | 31.62 μs | 16.83 μs | 172.8 μs | 113.5 μs | 233.5 μs | 5,938.9 | 12.76 KB | -| 'Query<T> Procedure (dynamic)' | InsightBenchmark | 174.5 μs | 41.23 μs | 21.40 μs | 163.4 μs | 117.9 μs | 306.4 μs | 5,731.2 | 12.09 KB | -| 'Single Procedure (Fast Expando)' | InsightBenchmarkWrite | 178.4 μs | 39.52 μs | 20.26 μs | 176.3 μs | 111.0 μs | 303.2 μs | 5,604.5 | 12.1 KB | -| 'Query<T> (Fast Expando)' | InsightBenchmark | 179.8 μs | 32.76 μs | 17.00 μs | 181.4 μs | 117.7 μs | 245.7 μs | 5,563.1 | 12.74 KB | -| 'Single (Fast Expando)' | InsightBenchmarkWrite | 180.0 μs | 51.69 μs | 27.52 μs | 164.2 μs | 109.5 μs | 323.6 μs | 5,554.6 | 12.76 KB | -| 'Auto Interface Single (dynamic)' | InsightBenchmarkWrite | 182.0 μs | 55.15 μs | 28.63 μs | 164.9 μs | 120.7 μs | 421.0 μs | 5,495.5 | 13.39 KB | -| 'Auto Interface Single' | InsightBenchmark | 182.8 μs | 33.28 μs | 17.28 μs | 170.7 μs | 137.1 μs | 279.9 μs | 5,470.2 | 14.9 KB | -| 'Query<T> Procedure (Fast Expando)' | InsightBenchmark | 183.6 μs | 31.12 μs | 15.96 μs | 184.1 μs | 116.1 μs | 252.0 μs | 5,447.9 | 12.09 KB | -| 'Single (dynamic)' | InsightBenchmarkWrite | 183.7 μs | 37.78 μs | 19.61 μs | 181.1 μs | 111.0 μs | 274.4 μs | 5,443.3 | 12.76 KB | -| 'Single Procedure (Fast Expando)' | InsightBenchmark | 189.7 μs | 38.03 μs | 19.99 μs | 187.5 μs | 132.6 μs | 303.6 μs | 5,271.2 | 12.1 KB | -| 'Auto Interface Query (dynamic)' | InsightBenchmark | 190.0 μs | 39.56 μs | 20.79 μs | 181.9 μs | 117.3 μs | 297.7 μs | 5,263.0 | 13.39 KB | -| 'Single (dynamic)' | InsightBenchmark | 190.2 μs | 55.52 μs | 27.80 μs | 181.6 μs | 113.5 μs | 317.2 μs | 5,257.6 | 12.76 KB | -| 'Single Procedure' | InsightBenchmark | 191.2 μs | 35.99 μs | 17.81 μs | 182.8 μs | 121.4 μs | 274.5 μs | 5,229.5 | 13.61 KB | -| 'Query<T> Procedure Async (Fast Expando)' | InsightBenchmark | 191.5 μs | 17.41 μs | 9.66 μs | 195.6 μs | 162.6 μs | 222.4 μs | 5,221.3 | 15.7 KB | -| 'Auto Interface Single (dynamic)' | InsightBenchmark | 192.1 μs | 32.45 μs | 17.51 μs | 183.3 μs | 139.2 μs | 266.8 μs | 5,206.8 | 13.39 KB | -| 'Single Procedure (dynamic)' | InsightBenchmark | 196.2 μs | 53.07 μs | 27.21 μs | 186.9 μs | 113.8 μs | 334.0 μs | 5,097.7 | 12.1 KB | -| Query<T> | InsightBenchmark | 199.5 μs | 40.25 μs | 21.16 μs | 193.2 μs | 138.1 μs | 349.1 μs | 5,012.3 | 14.25 KB | -| 'Query<T> (dynamic)' | InsightBenchmark | 200.4 μs | 35.76 μs | 18.79 μs | 197.7 μs | 138.3 μs | 285.1 μs | 4,989.0 | 12.74 KB | -| 'Query<T> (Fast Expando)' | InsightBenchmarkWrite | 201.9 μs | 50.05 μs | 26.31 μs | 200.9 μs | 115.1 μs | 311.0 μs | 4,952.1 | 12.74 KB | -| 'Auto Interface Query (dynamic)' | InsightBenchmarkWrite | 203.2 μs | 33.98 μs | 17.42 μs | 210.5 μs | 140.4 μs | 267.6 μs | 4,921.1 | 13.39 KB | -| 'Query<T> Procedure' | InsightBenchmarkWrite | 209.2 μs | 43.30 μs | 22.48 μs | 210.7 μs | 142.4 μs | 374.1 μs | 4,781.3 | 13.59 KB | -| 'Auto Interface Query' | InsightBenchmark | 212.1 μs | 36.27 μs | 18.60 μs | 219.3 μs | 154.4 μs | 301.1 μs | 4,715.3 | 14.9 KB | -| 'Query<T> Procedure' | InsightBenchmark | 212.4 μs | 41.38 μs | 20.96 μs | 202.7 μs | 155.1 μs | 314.3 μs | 4,707.0 | 13.59 KB | -| 'Single (Tuple)' | InsightBenchmarkWrite | 214.5 μs | 44.41 μs | 23.34 μs | 215.2 μs | 134.5 μs | 345.1 μs | 4,661.1 | 14.67 KB | -| 'Single Procedure (dynamic)' | InsightBenchmarkWrite | 216.4 μs | 48.24 μs | 25.35 μs | 210.1 μs | 131.5 μs | 342.9 μs | 4,621.9 | 12.1 KB | -| 'Single Procedure' | InsightBenchmarkWrite | 218.6 μs | 48.71 μs | 24.97 μs | 220.2 μs | 115.0 μs | 350.7 μs | 4,575.3 | 13.61 KB | -| Single | InsightBenchmarkWrite | 218.9 μs | 41.30 μs | 21.71 μs | 213.9 μs | 151.7 μs | 310.1 μs | 4,568.1 | 14.27 KB | -| Single | InsightBenchmark | 219.1 μs | 75.47 μs | 39.67 μs | 209.6 μs | 132.4 μs | 453.9 μs | 4,563.8 | 13.98 KB | -| 'Auto Interface Single' | InsightBenchmarkWrite | 220.6 μs | 42.34 μs | 22.54 μs | 223.2 μs | 127.5 μs | 320.0 μs | 4,533.9 | 14.9 KB | -| 'Single Async (dynamic)' | InsightBenchmarkWrite | 223.8 μs | 40.52 μs | 20.78 μs | 213.9 μs | 163.8 μs | 316.0 μs | 4,468.3 | 15.8 KB | -| Query<(Tuple)> | InsightBenchmarkWrite | 224.4 μs | 44.19 μs | 22.66 μs | 214.7 μs | 155.2 μs | 353.7 μs | 4,456.1 | 14.73 KB | -| Query<(Tuple)> | InsightBenchmark | 225.3 μs | 49.39 μs | 25.63 μs | 216.6 μs | 153.8 μs | 355.2 μs | 4,437.6 | 14.73 KB | -| 'Query<T> Procedure Async (dynamic)' | InsightBenchmarkWrite | 225.4 μs | 53.18 μs | 27.95 μs | 203.3 μs | 163.4 μs | 376.0 μs | 4,436.9 | 15.7 KB | -| 'Single (Tuple)' | InsightBenchmark | 227.7 μs | 44.02 μs | 23.14 μs | 228.6 μs | 169.1 μs | 404.9 μs | 4,392.2 | 14.67 KB | -| 'Single Async (Fast Expando)' | InsightBenchmark | 228.4 μs | 42.98 μs | 22.04 μs | 213.1 μs | 162.3 μs | 333.4 μs | 4,378.3 | 15.8 KB | -| 'Single json' | InsightBenchmarkJson | 230.4 μs | 43.09 μs | 22.37 μs | 227.6 μs | 166.9 μs | 316.2 μs | 4,339.5 | 45.63 KB | -| Query<T> | InsightBenchmarkWrite | 232.7 μs | 47.83 μs | 24.83 μs | 229.6 μs | 124.8 μs | 354.4 μs | 4,297.8 | 14.25 KB | -| 'Single Procedure Async (dynamic)' | InsightBenchmarkWrite | 236.7 μs | 42.09 μs | 22.12 μs | 235.8 μs | 162.6 μs | 343.6 μs | 4,225.1 | 15.15 KB | -| 'Auto Interface Query' | InsightBenchmarkWrite | 237.7 μs | 59.75 μs | 29.58 μs | 231.8 μs | 157.4 μs | 413.5 μs | 4,206.8 | 14.9 KB | -| 'Query<T> Async (Fast Expando)' | InsightBenchmark | 244.6 μs | 82.56 μs | 41.83 μs | 203.8 μs | 145.2 μs | 467.0 μs | 4,089.0 | 16.35 KB | -| 'Query<T> Procedure Async (dynamic)' | InsightBenchmark | 246.6 μs | 58.05 μs | 29.41 μs | 233.1 μs | 162.9 μs | 407.0 μs | 4,056.0 | 15.7 KB | -| 'Query<T> Async (dynamic)' | InsightBenchmark | 248.6 μs | 51.53 μs | 26.75 μs | 243.2 μs | 165.2 μs | 363.6 μs | 4,022.5 | 16.35 KB | -| 'Single Procedure Async (dynamic)' | InsightBenchmark | 250.0 μs | 71.92 μs | 37.33 μs | 216.9 μs | 166.7 μs | 462.7 μs | 3,999.7 | 15.15 KB | -| 'Query<T> Async (Fast Expando)' | InsightBenchmarkWrite | 254.2 μs | 71.39 μs | 37.06 μs | 245.1 μs | 161.8 μs | 489.8 μs | 3,934.7 | 16.35 KB | -| 'Single Procedure Async (Fast Expando)' | InsightBenchmarkWrite | 256.3 μs | 70.00 μs | 35.89 μs | 233.8 μs | 172.9 μs | 438.0 μs | 3,901.0 | 15.15 KB | -| 'Single Procedure Async (Fast Expando)' | InsightBenchmark | 257.3 μs | 66.65 μs | 34.17 μs | 243.4 μs | 173.2 μs | 436.9 μs | 3,887.1 | 15.45 KB | -| 'Query<T> Async' | InsightBenchmarkWrite | 259.3 μs | 52.11 μs | 27.39 μs | 244.4 μs | 170.4 μs | 397.9 μs | 3,856.9 | 17.86 KB | -| 'Single Procedure Async' | InsightBenchmarkWrite | 259.4 μs | 66.03 μs | 34.27 μs | 236.3 μs | 185.2 μs | 434.1 μs | 3,855.1 | 16.66 KB | -| 'Query<T> Procedure Async' | InsightBenchmarkWrite | 262.7 μs | 64.82 μs | 33.65 μs | 240.4 μs | 179.7 μs | 413.5 μs | 3,807.2 | 17.2 KB | -| 'Single Procedure Async' | InsightBenchmark | 267.4 μs | 73.25 μs | 38.50 μs | 254.2 μs | 176.8 μs | 480.1 μs | 3,739.9 | 16.66 KB | -| 'Query<T> Procedure Async (Fast Expando)' | InsightBenchmarkWrite | 269.1 μs | 57.56 μs | 29.51 μs | 270.8 μs | 186.9 μs | 384.5 μs | 3,715.7 | 15.7 KB | -| 'Single Async (Fast Expando)' | InsightBenchmarkWrite | 274.0 μs | 75.81 μs | 38.41 μs | 266.1 μs | 169.0 μs | 525.1 μs | 3,650.2 | 15.8 KB | -| 'Query<T> Async' | InsightBenchmark | 275.4 μs | 80.96 μs | 41.51 μs | 247.0 μs | 177.4 μs | 531.5 μs | 3,631.4 | 17.86 KB | -| 'Single Async' | InsightBenchmarkWrite | 277.3 μs | 72.04 μs | 36.50 μs | 245.1 μs | 179.3 μs | 445.7 μs | 3,605.9 | 17.31 KB | -| 'Single Async (dynamic)' | InsightBenchmark | 282.2 μs | 83.70 μs | 45.16 μs | 256.2 μs | 158.4 μs | 480.3 μs | 3,543.6 | 15.8 KB | -| 'Single Async (Tuple)' | InsightBenchmark | 285.7 μs | 76.40 μs | 39.17 μs | 261.6 μs | 192.0 μs | 514.5 μs | 3,500.3 | 17.84 KB | -| 'Query<T> Procedure Async' | InsightBenchmark | 286.0 μs | 83.80 μs | 43.50 μs | 262.8 μs | 162.7 μs | 497.6 μs | 3,496.1 | 17.2 KB | -| 'Single Async' | InsightBenchmark | 301.6 μs | 99.46 μs | 51.62 μs | 260.3 μs | 193.7 μs | 601.1 μs | 3,315.8 | 17.31 KB | -| 'Query<T> (dynamic)' | InsightBenchmarkWrite | 301.7 μs | 286.14 μs | 150.39 μs | 167.8 μs | 110.5 μs | 951.4 μs | 3,314.5 | 12.74 KB | -| 'Single Async (Tuple)' | InsightBenchmarkWrite | 311.9 μs | 95.18 μs | 48.22 μs | 295.2 μs | 189.9 μs | 552.4 μs | 3,205.7 | 17.84 KB | -| 'Single Async (Tuple)' | InsightBenchmarkWrite | 317.1 μs | 90.68 μs | 48.92 μs | 298.6 μs | 212.1 μs | 560.5 μs | 3,153.6 | 18.34 KB | -| 'Query<T> xml' | InsightBenchmarkXml | 324.3 μs | 48.33 μs | 25.08 μs | 321.8 μs | 243.7 μs | 445.4 μs | 3,083.3 | 67.28 KB | -| 'Single Async (Tuple)' | InsightBenchmark | 353.0 μs | 256.93 μs | 133.36 μs | 263.1 μs | 194.1 μs | 1,250.5 μs | 2,832.5 | 18.34 KB | -| 'Query<T> Async json' | InsightBenchmarkJson | 379.9 μs | 71.54 μs | 37.60 μs | 377.8 μs | 253.4 μs | 554.6 μs | 2,632.4 | 49.23 KB | -| 'Query<T> Async (dynamic)' | InsightBenchmarkWrite | 428.6 μs | 290.99 μs | 147.42 μs | 325.1 μs | 192.3 μs | 1,196.6 μs | 2,333.1 | 16.35 KB | -| 'Query<T> Async xml' | InsightBenchmarkXml | 440.6 μs | 73.51 μs | 38.15 μs | 452.2 μs | 310.7 μs | 598.2 μs | 2,269.7 | 70.89 KB | -| 'Query<T> json' | InsightBenchmarkJson | 447.2 μs | 369.96 μs | 189.68 μs | 271.3 μs | 160.2 μs | 1,607.6 μs | 2,236.1 | 45.62 KB | -| 'Single Async json' | InsightBenchmarkJson | 496.6 μs | 316.18 μs | 168.34 μs | 378.3 μs | 213.7 μs | 1,190.9 μs | 2,013.7 | 48.68 KB | -| 'Single Async xml' | InsightBenchmarkXml | 580.3 μs | 352.03 μs | 180.49 μs | 465.7 μs | 324.1 μs | 1,929.5 μs | 1,723.1 | 70.34 KB | -| 'Single xml' | InsightBenchmarkXml | 759.3 μs | 357.87 μs | 188.10 μs | 951.8 μs | 279.3 μs | 1,258.4 μs | 1,317.0 | 67.3 KB | -| 'Query<T> Parent/Child Together' | InsightBenchmark | 1,236.7 μs | 154.05 μs | 78.04 μs | 1,202.0 μs | 1,064.3 μs | 1,758.4 μs | 808.6 | 36.33 KB | -| 'Query<T> Parent/Child Together' | InsightBenchmarkWrite | 1,294.2 μs | 165.19 μs | 85.74 μs | 1,243.9 μs | 1,140.5 μs | 1,946.6 μs | 772.7 | 36.33 KB | -| 'Query<T> Parent/Child' | InsightBenchmark | 1,408.7 μs | 101.92 μs | 54.26 μs | 1,416.5 μs | 1,265.0 μs | 1,727.3 μs | 709.9 | 34.84 KB | -| 'Query<T> Parent/Child' | InsightBenchmarkWrite | 1,461.3 μs | 107.89 μs | 56.71 μs | 1,440.2 μs | 1,292.2 μs | 1,705.0 μs | 684.3 | 34.84 KB | -| | | | | | | | | | | -| 'Insert<T> xml' | InsightBenchmarkXml | 375.4 μs | 67.04 μs | 34.80 μs | 361.3 μs | 279.4 μs | 582.2 μs | 2,664.1 | 7.23 KB | -| Insert<T> | InsightBenchmarkWrite | 392.3 μs | 92.51 μs | 48.01 μs | 370.8 μs | 261.0 μs | 629.8 μs | 2,549.3 | 7.23 KB | -| 'Insert<T> Async' | InsightBenchmarkWrite | 392.3 μs | 77.01 μs | 39.49 μs | 364.1 μs | 294.9 μs | 590.0 μs | 2,548.8 | 10.92 KB | -| Update<T> | InsightBenchmarkWrite | 414.8 μs | 92.05 μs | 47.78 μs | 404.9 μs | 257.4 μs | 616.7 μs | 2,411.0 | 17.31 KB | -| 'Update<T> Async' | InsightBenchmarkWrite | 433.4 μs | 113.43 μs | 56.80 μs | 391.8 μs | 315.5 μs | 858.9 μs | 2,307.5 | 20.49 KB | -| 'Insert<T> json' | InsightBenchmarkJson | 440.1 μs | 90.62 μs | 45.91 μs | 444.3 μs | 291.4 μs | 683.2 μs | 2,272.0 | 7.23 KB | -| 'Update<T> xml' | InsightBenchmarkXml | 489.5 μs | 84.46 μs | 42.79 μs | 460.1 μs | 353.9 μs | 696.8 μs | 2,042.9 | 11.38 KB | -| 'Update<T> json' | InsightBenchmarkJson | 518.6 μs | 200.76 μs | 102.93 μs | 480.3 μs | 269.4 μs | 1,078.2 μs | 1,928.4 | 11.41 KB | +| Method | Type | Mean | StdDev | Error | Median | Min | Max | Op/s | Allocated | +|------------------------------------------ |---------------------- |------------:|----------:|----------:|------------:|------------:|------------:|---------:|----------:| +| 'Query<T> Procedure (dynamic)' | InsightBenchmarkWrite | 986.1 μs | 101.46 μs | 55.49 μs | 979.2 μs | 845.1 μs | 1,218.1 μs | 1,014.10 | 12.44 KB | +| 'Query<T> (Fast Expando)' | InsightBenchmarkWrite | 1,002.7 μs | 122.50 μs | 65.22 μs | 987.9 μs | 828.0 μs | 1,307.2 μs | 997.32 | 12.45 KB | +| 'Single (dynamic)' | InsightBenchmarkWrite | 1,010.2 μs | 84.12 μs | 45.38 μs | 1,004.1 μs | 879.1 μs | 1,210.3 μs | 989.94 | 12.47 KB | +| 'Single Procedure (Fast Expando)' | InsightBenchmarkWrite | 1,019.9 μs | 160.98 μs | 85.71 μs | 977.1 μs | 846.3 μs | 1,715.6 μs | 980.47 | 12.45 KB | +| 'Single Procedure (dynamic)' | InsightBenchmarkWrite | 1,026.4 μs | 104.30 μs | 55.53 μs | 1,004.7 μs | 881.3 μs | 1,367.3 μs | 974.31 | 12.45 KB | +| 'Query<T> Procedure (Fast Expando)' | InsightBenchmark | 1,028.0 μs | 130.57 μs | 70.44 μs | 998.6 μs | 841.8 μs | 1,469.7 μs | 972.81 | 12.44 KB | +| 'Query<T> Procedure (Fast Expando)' | InsightBenchmarkWrite | 1,029.4 μs | 133.15 μs | 97.27 μs | 993.6 μs | 864.4 μs | 1,422.2 μs | 971.49 | NA | +| 'Query<T> Procedure' | InsightBenchmark | 1,030.7 μs | 96.78 μs | 51.53 μs | 1,011.6 μs | 901.2 μs | 1,344.5 μs | 970.21 | 13.19 KB | +| 'Single (dynamic)' | InsightBenchmark | 1,032.3 μs | 129.93 μs | 66.62 μs | 1,006.9 μs | 855.3 μs | 1,410.3 μs | 968.71 | 12.19 KB | +| 'Single Procedure (Fast Expando)' | InsightBenchmark | 1,040.1 μs | 175.98 μs | 92.49 μs | 983.4 μs | 853.0 μs | 1,681.8 μs | 961.46 | 12.45 KB | +| 'Auto Interface Query (dynamic)' | InsightBenchmark | 1,042.8 μs | 188.34 μs | 101.61 μs | 989.7 μs | 847.6 μs | 1,950.3 μs | 958.96 | 13.1 KB | +| 'Single (Fast Expando)' | InsightBenchmarkWrite | 1,051.6 μs | 152.00 μs | 82.00 μs | 1,022.1 μs | 847.0 μs | 1,676.5 μs | 950.90 | 12.47 KB | +| 'Single Procedure' | InsightBenchmark | 1,059.4 μs | 149.10 μs | 78.37 μs | 1,027.1 μs | 867.9 μs | 1,683.7 μs | 943.96 | 13.2 KB | +| 'Query<T> (dynamic)' | InsightBenchmark | 1,064.9 μs | 146.12 μs | 77.80 μs | 1,008.8 μs | 872.8 μs | 1,521.9 μs | 939.04 | 12.45 KB | +| 'Query<T> (Fast Expando)' | InsightBenchmark | 1,070.9 μs | 163.97 μs | 85.10 μs | 1,015.0 μs | 877.9 μs | 1,669.2 μs | 933.77 | 12.17 KB | +| Query<(Tuple)> | InsightBenchmark | 1,072.9 μs | 108.47 μs | 58.52 μs | 1,058.3 μs | 920.7 μs | 1,347.0 μs | 932.06 | 13.91 KB | +| Query<T> | InsightBenchmark | 1,075.7 μs | 125.20 μs | 63.43 μs | 1,054.8 μs | 876.5 μs | 1,374.8 μs | 929.59 | 13.53 KB | +| 'Single (Tuple)' | InsightBenchmarkWrite | 1,078.5 μs | 97.46 μs | 51.22 μs | 1,062.0 μs | 931.7 μs | 1,360.4 μs | 927.18 | 13.86 KB | +| 'Single Async (Fast Expando)' | InsightBenchmark | 1,085.9 μs | 109.50 μs | 58.30 μs | 1,065.1 μs | 901.0 μs | 1,386.2 μs | 920.87 | 14.74 KB | +| 'Query<T> Procedure (dynamic)' | InsightBenchmark | 1,086.3 μs | 162.81 μs | 83.47 μs | 1,038.1 μs | 875.5 μs | 1,591.0 μs | 920.59 | 12.44 KB | +| 'Auto Interface Single' | InsightBenchmark | 1,087.0 μs | 152.45 μs | 81.16 μs | 1,046.0 μs | 866.9 μs | 1,469.4 μs | 920.00 | 13.57 KB | +| Query<T> | InsightBenchmarkWrite | 1,090.8 μs | 208.10 μs | 108.01 μs | 1,032.4 μs | 869.6 μs | 1,836.5 μs | 916.79 | 12.92 KB | +| 'Single Procedure Async' | InsightBenchmark | 1,097.3 μs | 90.13 μs | 47.37 μs | 1,070.0 μs | 973.7 μs | 1,366.3 μs | 911.36 | 15.48 KB | +| 'Query<T> Async (Fast Expando)' | InsightBenchmarkWrite | 1,103.2 μs | 102.39 μs | 53.81 μs | 1,081.6 μs | 934.7 μs | 1,400.9 μs | 906.45 | 15.98 KB | +| 'Single json' | InsightBenchmarkJson | 1,104.8 μs | 123.02 μs | 64.66 μs | 1,064.0 μs | 954.5 μs | 1,517.1 μs | 905.13 | 36.7 KB | +| 'Single Procedure (dynamic)' | InsightBenchmark | 1,105.2 μs | 243.75 μs | 126.51 μs | 1,014.5 μs | 871.5 μs | 1,978.3 μs | 904.83 | 12.45 KB | +| 'Query<T> Procedure Async' | InsightBenchmark | 1,107.9 μs | 107.60 μs | 58.84 μs | 1,103.5 μs | 964.4 μs | 1,426.0 μs | 902.62 | 15.57 KB | +| 'Query<T> Procedure' | InsightBenchmarkWrite | 1,109.3 μs | 161.81 μs | 83.99 μs | 1,060.1 μs | 892.2 μs | 1,539.3 μs | 901.49 | 13.19 KB | +| 'Query<T> Async (Fast Expando)' | InsightBenchmark | 1,110.4 μs | 121.54 μs | 63.88 μs | 1,097.2 μs | 929.5 μs | 1,487.5 μs | 900.59 | 14.84 KB | +| 'Single (Tuple)' | InsightBenchmark | 1,111.4 μs | 210.32 μs | 109.16 μs | 1,049.5 μs | 898.0 μs | 2,072.0 μs | 899.78 | 13.86 KB | +| 'Single Procedure Async (Fast Expando)' | InsightBenchmark | 1,114.2 μs | 147.93 μs | 76.78 μs | 1,068.2 μs | 947.6 μs | 1,514.8 μs | 897.49 | 14.73 KB | +| 'Query<T> Async' | InsightBenchmark | 1,115.0 μs | 138.83 μs | 72.06 μs | 1,071.5 μs | 921.2 μs | 1,491.5 μs | 896.86 | 15.59 KB | +| 'Single (Fast Expando)' | InsightBenchmark | 1,115.6 μs | 243.54 μs | 124.87 μs | 1,034.8 μs | 854.5 μs | 1,822.0 μs | 896.40 | 12.47 KB | +| 'Single Async' | InsightBenchmarkWrite | 1,118.2 μs | 114.42 μs | 60.92 μs | 1,081.8 μs | 965.0 μs | 1,495.5 μs | 894.26 | 15.49 KB | +| 'Query<T> Procedure Async (dynamic)' | InsightBenchmarkWrite | 1,125.4 μs | 151.45 μs | 80.63 μs | 1,078.1 μs | 896.4 μs | 1,627.7 μs | 888.58 | 14.82 KB | +| 'Single Procedure Async (dynamic)' | InsightBenchmarkWrite | 1,128.0 μs | 109.23 μs | 57.41 μs | 1,107.0 μs | 971.1 μs | 1,416.6 μs | 886.52 | 14.73 KB | +| 'Query<T> (dynamic)' | InsightBenchmarkWrite | 1,128.4 μs | 282.28 μs | 152.29 μs | 1,026.9 μs | 865.8 μs | 2,094.4 μs | 886.19 | 12.45 KB | +| 'Single Procedure Async (Fast Expando)' | InsightBenchmarkWrite | 1,135.8 μs | 146.38 μs | 77.94 μs | 1,107.0 μs | 976.3 μs | 1,709.3 μs | 880.41 | 14.73 KB | +| 'Single Async (dynamic)' | InsightBenchmarkWrite | 1,140.3 μs | 117.20 μs | 63.23 μs | 1,113.7 μs | 972.4 μs | 1,439.3 μs | 876.97 | 14.74 KB | +| 'Single Procedure Async' | InsightBenchmarkWrite | 1,142.7 μs | 111.75 μs | 60.29 μs | 1,125.4 μs | 979.1 μs | 1,470.0 μs | 875.16 | 15.2 KB | +| Single | InsightBenchmarkWrite | 1,147.0 μs | 234.38 μs | 124.79 μs | 1,052.0 μs | 899.2 μs | 1,877.3 μs | 871.87 | 13.22 KB | +| 'Query<T> Async' | InsightBenchmarkWrite | 1,155.1 μs | 141.17 μs | 74.20 μs | 1,122.8 μs | 981.9 μs | 1,549.6 μs | 865.70 | 15.3 KB | +| 'Auto Interface Single' | InsightBenchmarkWrite | 1,157.2 μs | 355.82 μs | 187.02 μs | 1,027.2 μs | 855.3 μs | 2,640.8 μs | 864.18 | 13.85 KB | +| 'Auto Interface Query' | InsightBenchmark | 1,157.8 μs | 220.93 μs | 116.12 μs | 1,076.6 μs | 946.5 μs | 1,745.2 μs | 863.74 | 13.57 KB | +| 'Single Procedure' | InsightBenchmarkWrite | 1,164.5 μs | 257.85 μs | 135.53 μs | 1,087.7 μs | 916.4 μs | 2,242.2 μs | 858.73 | 13.2 KB | +| Single | InsightBenchmark | 1,175.7 μs | 271.96 μs | 139.44 μs | 1,061.5 μs | 850.9 μs | 1,831.3 μs | 850.58 | 13.22 KB | +| 'Single Async (Tuple)' | InsightBenchmarkWrite | 1,181.8 μs | 160.53 μs | 87.79 μs | 1,140.6 μs | 1,017.0 μs | 1,794.0 μs | 846.20 | 16.3 KB | +| 'Single Async (Fast Expando)' | InsightBenchmarkWrite | 1,192.6 μs | 180.93 μs | 95.10 μs | 1,148.7 μs | 960.7 μs | 1,917.6 μs | 838.52 | 14.74 KB | +| 'Single Async (dynamic)' | InsightBenchmark | 1,195.9 μs | 176.12 μs | 88.19 μs | 1,138.4 μs | 986.8 μs | 1,650.2 μs | 836.20 | 14.74 KB | +| 'Query<T> Async (dynamic)' | InsightBenchmarkWrite | 1,201.0 μs | 283.62 μs | 151.00 μs | 1,085.7 μs | 961.6 μs | 2,243.4 μs | 832.64 | 14.84 KB | +| 'Query<T> Procedure Async (Fast Expando)' | InsightBenchmarkWrite | 1,204.4 μs | 233.20 μs | 122.57 μs | 1,123.5 μs | 915.2 μs | 1,702.4 μs | 830.31 | 14.82 KB | +| 'Single Async (Tuple)' | InsightBenchmarkWrite | 1,205.8 μs | 141.58 μs | 73.48 μs | 1,177.2 μs | 1,007.0 μs | 1,628.5 μs | 829.32 | 15.97 KB | +| 'Auto Interface Single (dynamic)' | InsightBenchmark | 1,206.6 μs | 292.03 μs | 153.49 μs | 1,099.4 μs | 873.1 μs | 2,004.3 μs | 828.75 | 13.1 KB | +| 'Single Procedure Async (dynamic)' | InsightBenchmark | 1,207.2 μs | 251.60 μs | 129.00 μs | 1,151.4 μs | 928.6 μs | 2,165.1 μs | 828.35 | 14.73 KB | +| 'Single Async json' | InsightBenchmarkJson | 1,216.5 μs | 121.48 μs | 65.54 μs | 1,177.5 μs | 1,058.8 μs | 1,714.5 μs | 822.03 | 38.98 KB | +| 'Single Async (Tuple)' | InsightBenchmark | 1,221.8 μs | 182.13 μs | 98.26 μs | 1,185.8 μs | 995.0 μs | 1,743.5 μs | 818.44 | 15.97 KB | +| 'Single Async' | InsightBenchmark | 1,223.4 μs | 189.63 μs | 94.95 μs | 1,192.2 μs | 976.3 μs | 1,929.3 μs | 817.38 | 16.91 KB | +| 'Auto Interface Query' | InsightBenchmarkWrite | 1,225.4 μs | 327.92 μs | 170.20 μs | 1,107.0 μs | 886.3 μs | 2,013.8 μs | 816.07 | 13.85 KB | +| 'Query<T> Procedure Async' | InsightBenchmarkWrite | 1,225.6 μs | 224.32 μs | 115.01 μs | 1,171.3 μs | 961.1 μs | 2,064.8 μs | 815.91 | 15.57 KB | +| Query<(Tuple)> | InsightBenchmarkWrite | 1,237.7 μs | 232.73 μs | 120.79 μs | 1,161.8 μs | 921.6 μs | 1,708.0 μs | 807.97 | 13.91 KB | +| 'Query<T> Procedure Async (Fast Expando)' | InsightBenchmark | 1,244.7 μs | 219.73 μs | 116.99 μs | 1,174.2 μs | 964.0 μs | 1,864.1 μs | 803.41 | 13.23 KB | +| 'Query<T> Procedure Async (dynamic)' | InsightBenchmark | 1,254.4 μs | 240.25 μs | 121.71 μs | 1,179.6 μs | 961.9 μs | 2,005.2 μs | 797.17 | 14.82 KB | +| 'Query<T> xml' | InsightBenchmarkXml | 1,262.3 μs | 94.73 μs | 50.43 μs | 1,246.8 μs | 1,087.2 μs | 1,495.5 μs | 792.22 | 66.26 KB | +| 'Single Async (Tuple)' | InsightBenchmark | 1,312.2 μs | 368.47 μs | 188.92 μs | 1,133.9 μs | 979.4 μs | 2,286.1 μs | 762.10 | 15.31 KB | +| 'Single xml' | InsightBenchmarkXml | 1,324.7 μs | 191.79 μs | 99.54 μs | 1,243.5 μs | 1,121.1 μs | 1,957.8 μs | 754.87 | 66.27 KB | +| 'Auto Interface Query (dynamic)' | InsightBenchmarkWrite | 1,359.1 μs | 278.77 μs | 144.69 μs | 1,417.4 μs | 881.0 μs | 1,819.4 μs | 735.77 | 13.1 KB | +| 'Query<T> Async xml' | InsightBenchmarkXml | 1,419.1 μs | 188.91 μs | 98.05 μs | 1,360.9 μs | 1,196.7 μs | 2,115.1 μs | 704.67 | 74.56 KB | +| 'Query<T> json' | InsightBenchmarkJson | 1,426.4 μs | 372.86 μs | 195.97 μs | 1,314.7 μs | 979.2 μs | 2,330.0 μs | 701.09 | 36.69 KB | +| 'Auto Interface Single (dynamic)' | InsightBenchmarkWrite | 1,446.8 μs | 376.94 μs | 190.96 μs | 1,448.5 μs | 888.7 μs | 2,642.7 μs | 691.16 | 13.1 KB | +| 'Query<T> Async (dynamic)' | InsightBenchmark | 1,496.1 μs | 450.84 μs | 225.75 μs | 1,358.2 μs | 956.4 μs | 2,392.5 μs | 668.41 | 14.84 KB | +| 'Single Async xml' | InsightBenchmarkXml | 1,544.5 μs | 235.38 μs | 122.17 μs | 1,515.5 μs | 1,230.4 μs | 2,288.9 μs | 647.44 | 68.55 KB | +| 'Query<T> Async json' | InsightBenchmarkJson | 1,577.1 μs | 314.44 μs | 161.21 μs | 1,548.7 μs | 1,136.8 μs | 2,399.8 μs | 634.08 | 39.07 KB | +| 'Query<T> Parent/Child Together' | InsightBenchmark | 2,601.3 μs | 307.56 μs | 161.65 μs | 2,519.6 μs | 2,290.4 μs | 3,793.2 μs | 384.43 | 33.85 KB | +| 'Query<T> Parent/Child Together' | InsightBenchmarkWrite | 2,841.5 μs | 247.97 μs | 132.02 μs | 2,914.8 μs | 2,358.7 μs | 3,286.4 μs | 351.92 | 34.18 KB | +| 'Query<T> Parent/Child' | InsightBenchmark | 2,864.6 μs | 137.69 μs | 76.36 μs | 2,836.8 μs | 2,639.5 μs | 3,240.3 μs | 349.09 | 32.59 KB | +| 'Query<T> Parent/Child' | InsightBenchmarkWrite | 3,140.8 μs | 571.84 μs | 300.56 μs | 2,875.9 μs | 2,652.2 μs | 5,276.9 μs | 318.39 | 32.31 KB | +| | | | | | | | | | | +| 'Insert<T> xml' | InsightBenchmarkXml | 11,102.2 μs | 487.50 μs | 246.97 μs | 11,114.7 μs | 10,143.3 μs | 12,057.9 μs | 90.07 | 5.68 KB | +| 'Insert<T> json' | InsightBenchmarkJson | 11,121.4 μs | 449.54 μs | 227.74 μs | 11,157.4 μs | 10,039.5 μs | 12,195.5 μs | 89.92 | 5.68 KB | +| Update<T> | InsightBenchmarkWrite | 11,128.4 μs | 388.75 μs | 194.66 μs | 11,050.4 μs | 10,330.6 μs | 11,913.0 μs | 89.86 | 14.12 KB | +| 'Update<T> xml' | InsightBenchmarkXml | 11,216.3 μs | 431.26 μs | 221.11 μs | 11,241.4 μs | 10,165.1 μs | 12,613.6 μs | 89.16 | 7.93 KB | +| 'Insert<T> Async' | InsightBenchmarkWrite | 11,220.4 μs | 551.02 μs | 275.91 μs | 11,235.4 μs | 9,040.3 μs | 12,402.4 μs | 89.12 | 8.18 KB | +| Insert<T> | InsightBenchmarkWrite | 11,304.7 μs | 717.42 μs | 355.15 μs | 11,089.2 μs | 10,014.1 μs | 13,425.2 μs | 88.46 | 5.68 KB | +| 'Update<T> Async' | InsightBenchmarkWrite | 11,435.3 μs | 697.29 μs | 353.25 μs | 11,337.4 μs | 9,861.6 μs | 13,787.7 μs | 87.45 | 16.52 KB | +| 'Update<T> json' | InsightBenchmarkJson | 11,481.7 μs | 560.72 μs | 291.03 μs | 11,511.9 μs | 10,548.0 μs | 12,569.6 μs | 87.10 | 8.21 KB | From 458bb970611d2af70d5166620156e99d585c7390 Mon Sep 17 00:00:00 2001 From: Jaxel Rojas Date: Mon, 25 Nov 2024 21:25:17 -0400 Subject: [PATCH 8/8] docs: added benchmark results from postgres --- .../README.md | 112 +++++++++--------- 1 file changed, 56 insertions(+), 56 deletions(-) diff --git a/benchmarks/Insight.Database.Benchmarks.Postgres/README.md b/benchmarks/Insight.Database.Benchmarks.Postgres/README.md index e7e6044..3130d94 100644 --- a/benchmarks/Insight.Database.Benchmarks.Postgres/README.md +++ b/benchmarks/Insight.Database.Benchmarks.Postgres/README.md @@ -4,66 +4,66 @@ These are benchmark scenarios for the Postgres Provider of [Insight.Database](ht ``` -BenchmarkDotNet v0.13.12, Windows 11 (10.0.22631.3235/23H2/2023Update/SunValley3) +BenchmarkDotNet v0.14.0, Windows 11 (10.0.26100.2314) 11th Gen Intel Core i5-1135G7 2.40GHz, 1 CPU, 8 logical and 4 physical cores -.NET SDK 8.0.201 - [Host] : .NET 8.0.2 (8.0.224.6711), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI - ShortRun : .NET 8.0.2 (8.0.224.6711), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI +.NET SDK 9.0.100 + [Host] : .NET 9.0.0 (9.0.24.52809), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI + ShortRun : .NET 9.0.0 (9.0.24.52809), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI ``` | Method | Type | Mean | StdDev | Error | Median | Min | Max | Op/s | Allocated | |---------------------------------- |---------------------- |-----------:|----------:|----------:|-----------:|-----------:|-----------:|--------:|----------:| -| 'Query<T> (Fast Expando)' | InsightBenchmark | 950.3 μs | 137.58 μs | 71.41 μs | 961.1 μs | 771.1 μs | 1,328.5 μs | 1,052.3 | 9.1 KB | -| 'Single (dynamic)' | InsightBenchmarkWrite | 964.6 μs | 165.57 μs | 83.88 μs | 934.9 μs | 717.7 μs | 1,447.4 μs | 1,036.7 | 9.09 KB | -| 'Auto Interface Query (dynamic)' | InsightBenchmarkWrite | 977.2 μs | 146.11 μs | 74.91 μs | 955.0 μs | 774.5 μs | 1,360.7 μs | 1,023.3 | 9.72 KB | -| 'Auto Interface Single (dynamic)' | InsightBenchmarkWrite | 1,003.5 μs | 139.84 μs | 70.02 μs | 1,006.5 μs | 775.6 μs | 1,441.6 μs | 996.6 | 9.72 KB | -| 'Query<T> (dynamic)' | InsightBenchmark | 1,007.4 μs | 114.13 μs | 56.50 μs | 1,023.7 μs | 759.4 μs | 1,296.5 μs | 992.7 | 9.1 KB | -| Single | InsightBenchmarkWrite | 1,019.5 μs | 140.93 μs | 72.26 μs | 1,005.5 μs | 831.8 μs | 1,439.6 μs | 980.9 | 13.21 KB | -| 'Auto Interface Single' | InsightBenchmarkWrite | 1,023.8 μs | 186.02 μs | 95.38 μs | 975.3 μs | 771.2 μs | 1,505.2 μs | 976.8 | 13.84 KB | -| 'Query<T> (dynamic)' | InsightBenchmarkWrite | 1,028.7 μs | 143.08 μs | 73.36 μs | 1,029.0 μs | 804.5 μs | 1,427.6 μs | 972.1 | 8.82 KB | -| 'Query<T> (Fast Expando)' | InsightBenchmarkWrite | 1,036.5 μs | 136.24 μs | 68.22 μs | 1,019.6 μs | 725.1 μs | 1,387.6 μs | 964.8 | 9.1 KB | -| 'Single (Fast Expando)' | InsightBenchmarkWrite | 1,054.6 μs | 161.61 μs | 82.86 μs | 1,024.1 μs | 777.3 μs | 1,557.5 μs | 948.2 | 9.09 KB | -| 'Auto Interface Single (dynamic)' | InsightBenchmark | 1,069.4 μs | 161.65 μs | 80.94 μs | 1,057.1 μs | 808.7 μs | 1,478.8 μs | 935.1 | 9.72 KB | -| 'Auto Interface Query' | InsightBenchmarkWrite | 1,070.5 μs | 152.16 μs | 78.97 μs | 1,046.7 μs | 808.2 μs | 1,373.3 μs | 934.1 | 13.84 KB | -| 'Auto Interface Query (dynamic)' | InsightBenchmark | 1,081.8 μs | 134.72 μs | 66.69 μs | 1,069.7 μs | 846.6 μs | 1,389.6 μs | 924.4 | 9.72 KB | -| Query<T> | InsightBenchmark | 1,091.5 μs | 174.65 μs | 89.55 μs | 1,050.0 μs | 861.3 μs | 1,572.1 μs | 916.1 | 13.23 KB | -| 'Single Async' | InsightBenchmark | 1,106.5 μs | 83.67 μs | 43.97 μs | 1,115.4 μs | 932.7 μs | 1,284.1 μs | 903.8 | 14.74 KB | -| 'Single Async (dynamic)' | InsightBenchmarkWrite | 1,106.8 μs | 203.48 μs | 103.09 μs | 1,102.8 μs | 808.2 μs | 1,546.1 μs | 903.5 | 10.92 KB | -| 'Single Async (Fast Expando)' | InsightBenchmark | 1,125.7 μs | 155.66 μs | 79.81 μs | 1,082.7 μs | 906.8 μs | 1,447.2 μs | 888.4 | 10.62 KB | -| Query<(Tuple)> | InsightBenchmark | 1,140.2 μs | 196.16 μs | 98.22 μs | 1,108.4 μs | 824.4 μs | 1,626.8 μs | 877.0 | 13.48 KB | -| 'Query<T> Async (dynamic)' | InsightBenchmark | 1,143.8 μs | 198.36 μs | 100.49 μs | 1,090.6 μs | 846.0 μs | 1,625.5 μs | 874.3 | 10.65 KB | -| 'Query<T> Async (Fast Expando)' | InsightBenchmark | 1,151.6 μs | 223.36 μs | 115.93 μs | 1,089.8 μs | 843.8 μs | 1,760.6 μs | 868.4 | 10.65 KB | -| 'Single (Tuple)' | InsightBenchmarkWrite | 1,158.0 μs | 219.31 μs | 112.44 μs | 1,121.9 μs | 794.9 μs | 1,735.8 μs | 863.6 | 13.39 KB | -| 'Single Async (Fast Expando)' | InsightBenchmarkWrite | 1,159.9 μs | 285.77 μs | 143.09 μs | 1,067.2 μs | 823.2 μs | 2,129.7 μs | 862.2 | 10.62 KB | -| 'Query<T> Async (dynamic)' | InsightBenchmarkWrite | 1,163.5 μs | 180.97 μs | 90.62 μs | 1,158.3 μs | 874.9 μs | 1,543.8 μs | 859.5 | 10.65 KB | -| 'Single Async' | InsightBenchmarkWrite | 1,167.4 μs | 160.57 μs | 82.33 μs | 1,139.9 μs | 877.9 μs | 1,573.8 μs | 856.6 | 14.74 KB | -| 'Single Async (Tuple)' | InsightBenchmark | 1,172.2 μs | 183.40 μs | 91.83 μs | 1,175.9 μs | 879.3 μs | 1,753.5 μs | 853.1 | 15.04 KB | -| 'Query<T> Async' | InsightBenchmarkWrite | 1,173.8 μs | 187.96 μs | 96.37 μs | 1,108.2 μs | 914.6 μs | 1,579.0 μs | 851.9 | 14.77 KB | -| Query<T> | InsightBenchmarkWrite | 1,179.1 μs | 212.60 μs | 107.71 μs | 1,116.6 μs | 801.2 μs | 1,603.2 μs | 848.1 | 13.23 KB | -| 'Single (dynamic)' | InsightBenchmark | 1,180.3 μs | 273.91 μs | 142.17 μs | 1,054.5 μs | 805.5 μs | 1,754.2 μs | 847.3 | 9.09 KB | -| 'Single (Fast Expando)' | InsightBenchmark | 1,185.7 μs | 245.39 μs | 121.48 μs | 1,158.5 μs | 861.1 μs | 1,920.5 μs | 843.4 | 8.8 KB | -| 'Single json' | InsightBenchmarkJson | 1,189.3 μs | 197.87 μs | 97.96 μs | 1,125.3 μs | 936.3 μs | 1,908.7 μs | 840.8 | 38.84 KB | -| 'Query<T> json' | InsightBenchmarkJson | 1,196.4 μs | 164.93 μs | 84.56 μs | 1,161.1 μs | 894.2 μs | 1,519.4 μs | 835.8 | 38.85 KB | -| Query<(Tuple)> | InsightBenchmarkWrite | 1,198.4 μs | 298.75 μs | 149.59 μs | 1,106.8 μs | 831.5 μs | 2,167.0 μs | 834.5 | 13.48 KB | -| 'Query<T> Async' | InsightBenchmark | 1,210.9 μs | 190.65 μs | 95.46 μs | 1,179.8 μs | 906.9 μs | 1,719.3 μs | 825.8 | 15.08 KB | -| 'Query<T> Parent/Child Together' | InsightBenchmark | 1,213.7 μs | 202.91 μs | 101.60 μs | 1,169.4 μs | 996.3 μs | 1,903.3 μs | 823.9 | 31.66 KB | -| Single | InsightBenchmark | 1,219.7 μs | 223.59 μs | 114.64 μs | 1,151.2 μs | 913.2 μs | 1,764.5 μs | 819.9 | 13.21 KB | -| 'Auto Interface Single' | InsightBenchmark | 1,230.9 μs | 173.68 μs | 86.97 μs | 1,220.6 μs | 821.2 μs | 1,593.5 μs | 812.4 | 13.84 KB | -| 'Single (Tuple)' | InsightBenchmark | 1,232.3 μs | 260.45 μs | 133.54 μs | 1,164.1 μs | 880.0 μs | 1,977.7 μs | 811.5 | 13.39 KB | -| 'Single Async (Tuple)' | InsightBenchmarkWrite | 1,238.9 μs | 207.86 μs | 105.30 μs | 1,203.8 μs | 905.6 μs | 1,739.1 μs | 807.1 | 15.04 KB | -| 'Auto Interface Query' | InsightBenchmark | 1,242.4 μs | 150.19 μs | 76.09 μs | 1,245.7 μs | 902.5 μs | 1,583.0 μs | 804.9 | 13.84 KB | -| 'Query<T> Async json' | InsightBenchmarkJson | 1,275.5 μs | 212.91 μs | 106.61 μs | 1,225.5 μs | 954.7 μs | 1,815.2 μs | 784.0 | 40.4 KB | -| 'Query<T> Async (Fast Expando)' | InsightBenchmarkWrite | 1,297.7 μs | 268.75 μs | 134.57 μs | 1,228.9 μs | 915.8 μs | 1,920.7 μs | 770.6 | 10.65 KB | -| 'Single Async (dynamic)' | InsightBenchmark | 1,300.9 μs | 324.94 μs | 166.60 μs | 1,192.8 μs | 896.2 μs | 2,150.6 μs | 768.7 | 10.62 KB | -| 'Query<T> Parent/Child Together' | InsightBenchmarkWrite | 1,346.0 μs | 262.04 μs | 129.72 μs | 1,274.5 μs | 958.1 μs | 1,840.6 μs | 743.0 | 31.66 KB | -| 'Single Async json' | InsightBenchmarkJson | 1,381.1 μs | 240.98 μs | 120.66 μs | 1,323.3 μs | 942.5 μs | 1,911.0 μs | 724.0 | 40.67 KB | -| 'Query<T> Parent/Child' | InsightBenchmarkWrite | 1,684.7 μs | 217.97 μs | 107.90 μs | 1,654.7 μs | 1,327.9 μs | 2,313.4 μs | 593.6 | 33.49 KB | -| 'Query<T> Parent/Child' | InsightBenchmark | 1,687.6 μs | 261.73 μs | 132.59 μs | 1,649.2 μs | 1,301.5 μs | 2,273.8 μs | 592.6 | 33.49 KB | +| 'Query<T> (Fast Expando)' | InsightBenchmarkWrite | 847.2 μs | 123.70 μs | 64.20 μs | 808.6 μs | 689.6 μs | 1,157.5 μs | 1,180.4 | 8.94 KB | +| 'Auto Interface Query' | InsightBenchmarkWrite | 850.3 μs | 84.16 μs | 44.24 μs | 843.5 μs | 713.4 μs | 1,038.2 μs | 1,176.0 | 12.6 KB | +| 'Auto Interface Single (dynamic)' | InsightBenchmarkWrite | 867.3 μs | 129.56 μs | 68.10 μs | 814.5 μs | 715.5 μs | 1,314.8 μs | 1,153.0 | 9.54 KB | +| 'Query<T> (Fast Expando)' | InsightBenchmark | 879.4 μs | 155.55 μs | 78.80 μs | 837.6 μs | 678.0 μs | 1,378.3 μs | 1,137.2 | 8.94 KB | +| 'Single (dynamic)' | InsightBenchmarkWrite | 886.1 μs | 170.61 μs | 88.55 μs | 818.2 μs | 694.7 μs | 1,450.4 μs | 1,128.5 | 8.91 KB | +| 'Query<T> (dynamic)' | InsightBenchmark | 890.2 μs | 139.41 μs | 72.36 μs | 857.5 μs | 695.7 μs | 1,225.1 μs | 1,123.3 | 8.94 KB | +| Query<(Tuple)> | InsightBenchmarkWrite | 904.7 μs | 115.04 μs | 59.71 μs | 860.9 μs | 768.0 μs | 1,254.9 μs | 1,105.4 | 12.6 KB | +| 'Auto Interface Single' | InsightBenchmark | 905.9 μs | 134.23 μs | 71.47 μs | 880.6 μs | 704.4 μs | 1,336.8 μs | 1,103.9 | 12.6 KB | +| 'Single (Fast Expando)' | InsightBenchmark | 907.9 μs | 124.06 μs | 66.05 μs | 903.5 μs | 684.0 μs | 1,209.2 μs | 1,101.4 | 8.91 KB | +| Single | InsightBenchmarkWrite | 908.2 μs | 168.74 μs | 86.51 μs | 852.2 μs | 685.3 μs | 1,367.5 μs | 1,101.1 | 11.97 KB | +| 'Query<T> Async (dynamic)' | InsightBenchmarkWrite | 912.2 μs | 93.58 μs | 49.19 μs | 903.0 μs | 765.2 μs | 1,116.0 μs | 1,096.2 | 10.47 KB | +| Query<(Tuple)> | InsightBenchmark | 913.1 μs | 133.23 μs | 68.31 μs | 882.2 μs | 749.2 μs | 1,318.8 μs | 1,095.1 | 12.6 KB | +| 'Query<T> json' | InsightBenchmarkJson | 915.1 μs | 129.09 μs | 67.85 μs | 884.8 μs | 776.8 μs | 1,389.4 μs | 1,092.8 | 37.55 KB | +| Query<T> | InsightBenchmarkWrite | 917.1 μs | 200.94 μs | 104.29 μs | 862.1 μs | 708.7 μs | 1,540.0 μs | 1,090.4 | 12 KB | +| 'Query<T> (dynamic)' | InsightBenchmarkWrite | 917.4 μs | 207.51 μs | 107.70 μs | 828.1 μs | 693.0 μs | 1,563.0 μs | 1,090.0 | 8.94 KB | +| 'Query<T> Async (Fast Expando)' | InsightBenchmark | 924.5 μs | 133.83 μs | 70.34 μs | 882.7 μs | 739.4 μs | 1,378.1 μs | 1,081.6 | 10.47 KB | +| Query<T> | InsightBenchmark | 927.1 μs | 199.04 μs | 103.31 μs | 847.5 μs | 715.2 μs | 1,678.5 μs | 1,078.6 | 11.72 KB | +| 'Single (Tuple)' | InsightBenchmarkWrite | 928.6 μs | 158.70 μs | 84.49 μs | 892.2 μs | 770.6 μs | 1,619.4 μs | 1,076.9 | 12.5 KB | +| 'Auto Interface Single' | InsightBenchmarkWrite | 928.9 μs | 157.74 μs | 82.91 μs | 893.0 μs | 735.7 μs | 1,390.4 μs | 1,076.5 | 12.6 KB | +| 'Single (Tuple)' | InsightBenchmark | 932.5 μs | 163.96 μs | 85.10 μs | 889.5 μs | 761.5 μs | 1,601.3 μs | 1,072.4 | 12.22 KB | +| 'Auto Interface Query (dynamic)' | InsightBenchmarkWrite | 933.1 μs | 179.91 μs | 94.56 μs | 894.7 μs | 749.7 μs | 1,480.8 μs | 1,071.7 | 9.54 KB | +| 'Query<T> Async' | InsightBenchmark | 940.1 μs | 129.75 μs | 68.20 μs | 911.3 μs | 773.0 μs | 1,336.4 μs | 1,063.7 | 13.23 KB | +| 'Query<T> Async (dynamic)' | InsightBenchmark | 942.4 μs | 140.57 μs | 73.88 μs | 906.8 μs | 756.6 μs | 1,402.5 μs | 1,061.2 | 10.47 KB | +| 'Auto Interface Query (dynamic)' | InsightBenchmark | 946.6 μs | 159.54 μs | 83.85 μs | 906.9 μs | 735.5 μs | 1,542.7 μs | 1,056.4 | 9.54 KB | +| 'Auto Interface Single (dynamic)' | InsightBenchmark | 947.8 μs | 147.93 μs | 75.84 μs | 943.9 μs | 740.7 μs | 1,328.7 μs | 1,055.0 | 9.54 KB | +| 'Single Async (Fast Expando)' | InsightBenchmark | 953.0 μs | 147.50 μs | 77.53 μs | 903.6 μs | 734.9 μs | 1,311.7 μs | 1,049.4 | 10.42 KB | +| 'Query<T> Async (Fast Expando)' | InsightBenchmarkWrite | 954.8 μs | 149.53 μs | 76.67 μs | 889.8 μs | 808.6 μs | 1,455.8 μs | 1,047.4 | 10.47 KB | +| 'Single Async (Tuple)' | InsightBenchmarkWrite | 965.0 μs | 97.26 μs | 51.78 μs | 941.9 μs | 823.9 μs | 1,297.7 μs | 1,036.3 | 14.13 KB | +| 'Auto Interface Query' | InsightBenchmark | 968.6 μs | 201.72 μs | 102.19 μs | 919.3 μs | 699.4 μs | 1,578.1 μs | 1,032.4 | 12.6 KB | +| 'Single Async (Fast Expando)' | InsightBenchmarkWrite | 984.3 μs | 186.85 μs | 94.66 μs | 939.7 μs | 735.6 μs | 1,698.5 μs | 1,016.0 | 10.42 KB | +| 'Single json' | InsightBenchmarkJson | 986.1 μs | 202.73 μs | 103.94 μs | 914.9 μs | 746.9 μs | 1,628.5 μs | 1,014.1 | 37.52 KB | +| 'Query<T> Async' | InsightBenchmarkWrite | 995.2 μs | 194.65 μs | 105.01 μs | 913.0 μs | 793.5 μs | 1,444.9 μs | 1,004.8 | 13.53 KB | +| 'Single Async json' | InsightBenchmarkJson | 995.9 μs | 153.96 μs | 84.20 μs | 939.1 μs | 830.6 μs | 1,542.7 μs | 1,004.2 | 39.03 KB | +| 'Single Async' | InsightBenchmarkWrite | 996.1 μs | 157.32 μs | 80.66 μs | 959.1 μs | 808.9 μs | 1,556.6 μs | 1,003.9 | 13.48 KB | +| 'Single Async (dynamic)' | InsightBenchmark | 1,004.2 μs | 156.82 μs | 82.43 μs | 977.9 μs | 762.8 μs | 1,549.2 μs | 995.8 | 10.12 KB | +| 'Single (Fast Expando)' | InsightBenchmarkWrite | 1,018.6 μs | 227.47 μs | 116.62 μs | 984.8 μs | 676.0 μs | 1,607.3 μs | 981.8 | 8.91 KB | +| 'Query<T> Async json' | InsightBenchmarkJson | 1,040.0 μs | 251.27 μs | 128.83 μs | 933.8 μs | 825.5 μs | 1,829.2 μs | 961.5 | 39.08 KB | +| Single | InsightBenchmark | 1,046.4 μs | 210.87 μs | 108.12 μs | 1,016.1 μs | 738.9 μs | 1,724.5 μs | 955.7 | 11.97 KB | +| 'Single Async (Tuple)' | InsightBenchmark | 1,060.1 μs | 201.30 μs | 101.98 μs | 1,021.9 μs | 793.7 μs | 1,698.2 μs | 943.3 | 13.55 KB | +| 'Query<T> Parent/Child Together' | InsightBenchmark | 1,109.9 μs | 159.58 μs | 84.96 μs | 1,075.6 μs | 942.9 μs | 1,628.4 μs | 901.0 | 27.79 KB | +| 'Single Async' | InsightBenchmark | 1,119.4 μs | 248.86 μs | 126.07 μs | 1,078.8 μs | 789.5 μs | 1,635.6 μs | 893.3 | 13.48 KB | +| 'Query<T> Parent/Child Together' | InsightBenchmarkWrite | 1,148.0 μs | 176.45 μs | 88.35 μs | 1,083.0 μs | 922.0 μs | 1,586.9 μs | 871.1 | 27.79 KB | +| 'Single (dynamic)' | InsightBenchmark | 1,178.7 μs | 268.64 μs | 136.09 μs | 1,166.2 μs | 701.3 μs | 1,894.5 μs | 848.4 | 8.63 KB | +| 'Single Async (dynamic)' | InsightBenchmarkWrite | 1,186.2 μs | 335.23 μs | 167.86 μs | 1,129.6 μs | 775.2 μs | 2,289.2 μs | 843.0 | 10.42 KB | +| 'Query<T> Parent/Child' | InsightBenchmark | 1,577.0 μs | 253.00 μs | 131.32 μs | 1,505.7 μs | 1,269.0 μs | 2,445.1 μs | 634.1 | 29.42 KB | +| 'Query<T> Parent/Child' | InsightBenchmarkWrite | 1,631.6 μs | 347.61 μs | 178.22 μs | 1,486.2 μs | 1,283.2 μs | 2,542.0 μs | 612.9 | 29.14 KB | | | | | | | | | | | | -| 'Insert<T> Async' | InsightBenchmarkWrite | 2,530.3 μs | 202.87 μs | 105.30 μs | 2,506.4 μs | 2,232.6 μs | 3,116.3 μs | 395.2 | 6.09 KB | -| Insert<T> | InsightBenchmarkWrite | 2,532.0 μs | 289.36 μs | 148.36 μs | 2,462.0 μs | 2,031.9 μs | 3,260.3 μs | 394.9 | 4.43 KB | -| 'Insert<T> json' | InsightBenchmarkJson | 2,546.6 μs | 348.71 μs | 178.79 μs | 2,443.4 μs | 2,081.0 μs | 3,351.2 μs | 392.7 | 4.51 KB | -| 'Update<T> json' | InsightBenchmarkJson | 2,658.5 μs | 239.65 μs | 121.41 μs | 2,622.8 μs | 2,268.8 μs | 3,412.1 μs | 376.2 | 10.65 KB | -| 'Update<T> Async' | InsightBenchmarkWrite | 2,866.4 μs | 309.17 μs | 158.51 μs | 2,801.9 μs | 2,339.3 μs | 3,895.6 μs | 348.9 | 16.19 KB | -| Update<T> | InsightBenchmarkWrite | 2,937.7 μs | 224.81 μs | 113.89 μs | 2,912.6 μs | 2,415.9 μs | 3,631.2 μs | 340.4 | 14.52 KB | +| 'Insert<T> Async' | InsightBenchmarkWrite | 2,335.7 μs | 173.22 μs | 89.91 μs | 2,317.6 μs | 2,004.3 μs | 2,877.2 μs | 428.1 | 6.59 KB | +| Insert<T> | InsightBenchmarkWrite | 2,393.1 μs | 359.67 μs | 191.49 μs | 2,267.1 μs | 1,978.5 μs | 3,292.9 μs | 417.9 | 4.66 KB | +| Update<T> | InsightBenchmarkWrite | 2,427.5 μs | 223.27 μs | 114.47 μs | 2,373.2 μs | 2,003.4 μs | 2,990.1 μs | 411.9 | 12.85 KB | +| 'Insert<T> json' | InsightBenchmarkJson | 2,504.1 μs | 309.44 μs | 164.75 μs | 2,459.4 μs | 2,083.2 μs | 3,469.2 μs | 399.3 | 4.99 KB | +| 'Update<T> Async' | InsightBenchmarkWrite | 2,504.5 μs | 204.14 μs | 104.66 μs | 2,469.4 μs | 2,231.1 μs | 3,137.3 μs | 399.3 | 14.5 KB | +| 'Update<T> json' | InsightBenchmarkJson | 2,513.7 μs | 265.17 μs | 132.78 μs | 2,450.7 μs | 2,111.1 μs | 3,212.0 μs | 397.8 | 8.97 KB |