With a little change the reader will load data with GetValues(myValues) 30% faster ----------------------------------------------------------------------------------
Key: DNET-1038 URL: http://tracker.firebirdsql.org/browse/DNET-1038 Project: .NET Data provider Issue Type: Improvement Components: ADO.NET Provider Affects Versions: 7.10.1.0 Environment: Windows 10 20H2, Visual Studio 20H2, I7 2,6GHz, 16 GB Memory, Firebird 3.0 Reporter: Baldur Fürchau Assignee: Jiri Cincura I have loaded the Version 7.10.1.0 because the clr 4.8 is not available on all customers, but the improvement is also for the latest version. In my little test i use generally the GetValues() from th FbDataReader to process all values the same time. With the current version i get for a table with 90 columns an average of 8500 rows per second. The Micorosft SwlDatareader give me for the same table 10000 rows per second. So I have checked the source for the GetValue()-Method: public override int GetValues(object[] values) { CheckState(); CheckPosition(); var count = Math.Min(_fields.Count, values.Length); for (var i = 0; i < count; i++) { values[i] = _row[i].Value; // CheckedGetValue(x => GetValue(x), i); } return count; } Because all checks are done you can directly load the row values. With this only little change i get now 12000 Rows per Second and this is 20% faster than SQL Server. An additional reason to use Firebird. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://tracker.firebirdsql.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira _______________________________________________ Firebird-net-provider mailing list Firebird-net-provider@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/firebird-net-provider