You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Is there a way to improve the performance of the ORM mapper of Linq2Db using the FirebirdDataProvider. I retrieve 1831 records from a table having 39 columns (all INTEGER, DECIMAL(13,5) and 2x VARCHAR(100)). The longest varchar is 37 chars. Approximately 60% of all the values are null. I compared the raw execution with the mapper execution of Linq2Db using this code:
Raw Time: 1579 ms
With Mapping Time: 1682 ms
Raw Time: 1710 ms
With Mapping Time: 1904 ms
Raw Time: 1701 ms
With Mapping Time: 1885 ms
Raw Time: 1695 ms
With Mapping Time: 1797 ms
The problem is I also tested the code on my colleagues computer. Here is the result:
Raw Time: 6819 ms
With Mapping Time: 6954 ms
Raw Time: 6868 ms
With Mapping Time: 6851 ms
Raw Time: 6784 ms
With Mapping Time: 6842 ms
Raw Time: 6729 ms
With Mapping Time: 6950 ms
We both access the same database server. The network is also not the bottleneck. So it should be a client side problem. The table size (based on RDB$RELATION_FIELDS.RDB$FIELD_LENGTH) is ~4MB, for 2106 records with all values NOT NULL. But as I already mentioned about 60% of the values are null. Handling less than 4MB should not take 7 seconds.
Environment details
PC specs:
i7-13700K
64GB 4000MHz
Colleagues specs:
i7-11850H
64GB 3200MHz
Database (with version): Firebird 3.0.9
ADO.NET Provider (with version): FirebirdSql.Data.FirebirdClient - tried 9.9.1 and 10.3.1
Operating system: Windows 11 23H2
.NET Version: Tried net7 and net8
The text was updated successfully, but these errors were encountered:
Describe your issue
Is there a way to improve the performance of the ORM mapper of Linq2Db using the
FirebirdDataProvider
. I retrieve 1831 records from a table having 39 columns (allINTEGER
,DECIMAL(13,5)
and2x VARCHAR(100)
). The longest varchar is 37 chars. Approximately 60% of all the values are null. I compared the raw execution with the mapper execution of Linq2Db using this code:Here is the result:
The problem is I also tested the code on my colleagues computer. Here is the result:
We both access the same database server. The network is also not the bottleneck. So it should be a client side problem. The table size (based on
RDB$RELATION_FIELDS.RDB$FIELD_LENGTH
) is ~4MB, for 2106 records with all values NOT NULL. But as I already mentioned about 60% of the values are null. Handling less than 4MB should not take 7 seconds.Environment details
PC specs:
Colleagues specs:
Database (with version): Firebird 3.0.9
ADO.NET Provider (with version): FirebirdSql.Data.FirebirdClient - tried 9.9.1 and 10.3.1
Operating system: Windows 11 23H2
.NET Version: Tried net7 and net8
The text was updated successfully, but these errors were encountered: