Home

Oracle EF driver with a Large Database

I've used LINQPad v5 for many years, with great success, to query an Oracle 11.2 database, using the IQ Driver in Direct Mode.
The database has over 4,000 tables, and nearly 8,000 views.
LINQPad's tree of Tables & Views populates in under a minutes, without undue stress to the PC running LINQPad.

Now our business system is upgrading to a new version, running on an Oracle 19.0 database.
I want to use LINQPad v6.14.10 (X64) and this guides me to use the EF driver, with the 'Oracle' provider.
I've installed the 'Latest release' version of '5.21.1' with EF Core Version '5.0.1'.

The new database has over 10,000 tables and over 13,000 views.
After setting up the connection, I get the 'Populating...' message for 12 minutes.
One CPU core is very active, and memory usage slowly rams up to over 8 GB.
Here's the 'Performance Graph' obtained using "Process Explorer":

This seems excessive to me.
Am I doing something wrong?
Is there any alternative driver that avoids this?

Comments

  • The LINQPad 6 driver uses EF Core which is is quite capable and has up-to-date features, but is not as "mean and lean" as the old IQ driver (nor LINQ-to-SQL). 23,000 tables and views is a lot of objects for EF Core: it equates to a typed DbContext containing 100MB of source code, assuming an average of 30 columns per table/view. This takes some resources to compile. You will also find that the metamodel will take some time to load.

    Having said all that, even LINQ-to-SQL will struggle with 23,000 objects. My large test database has 5000 objects and that takes around 15 seconds to populate.

Sign In or Register to comment.