But 12 minutes is way too long...
That query is used to retrieve the PK fields for the synonyms. It will pull all pk fields for all synonyms in the schema into a datatable.
I have the feeling this is such a big pile of data, that it will reach the 100,000 rows or more. That amount of data in a datatable is incredibly slow.
The sad thing is that I can't do it differently:
- an IN query with the synonyms found obviously runs into the limit on the # of parameters per query
- per synonym a separate query is an option but this is slower for a smaller set of synonyms.
Could you please do the following for me:
- download the SDK for v2 and load the OracleDBDriver10g into VS.NET 2005
- the query is located at line 968 in OracleSchemaRetriever.cs. Could you build a debug build of the driver (remove the strongname key from assemblyinfo.cs) and place the dll + pdb in the Oracle10g folder of LLBLGen Pro's Driver folder?
- keep the source in vs.net 2005, run the llblgen pro designer and press cntrl-alt-P in vs.net and attach to the llblgen pro designer.
- place a breakpoint at line 978, namely adapter.Fill(pkFields);
- create a project on the schema which takes such a tremendous long time. When you hit the breakpoint, do a step OVER, so it will go into the Fill method. This will take a while I think, so get some coffee.
- Once the routine returns, please check how many rows threre are in pkFields.