unidac for sqlserver has errors when record is much

Discussion of open issues, suggestions and bugs regarding UniDAC (Universal Data Access Components) for Delphi, C++Builder, Lazarus (and FPC)
Post Reply
daizhicun
Posts: 109
Joined: Thu 21 Jan 2010 11:49

unidac for sqlserver has errors when record is much

Post by daizhicun » Fri 25 Mar 2011 13:59

i find that the performance for Sqlserver is not good then ADO

I test a table ,it has 90 fields and 50000 recoreds ;

when i use AdoQuery.SQL.TEXT:='select * from table1'
it cost 10's
but use UniQuery, it very slowly;

and when recoreds is much ;

it shows : Out of Memory ;

daizhicun
Posts: 109
Joined: Thu 21 Jan 2010 11:49

Post by daizhicun » Fri 25 Mar 2011 14:04

fetchAll=true ;
a table ,witch recoreds more than 100000, fields more than 50 ;
then UniQuery.open ,it very slowly ,at last it show :Out of Memory;

But ,the same table , i test it in oracle , it is very fast then ADO;

so i think UniDAC is disigned for oracle much ;
but for SQLSERVER is NOT very good.

AndreyZ

Post by AndreyZ » Fri 25 Mar 2011 15:35

Hello,

I've tried to reproduce this problem on Delphi 7 with UniDAC 3.60.0.16. TUniQuery opens a table with 100 columns and 100000 records in 4-4,5 seconds, and ADOQuery opens it in 6,5-7 seconds. Please specify the following:
- table1 structure (script);
- the exact version of UniDAC. You can learn it from the About sheet of TUniConnection Editor;
- the exact version of your IDE;
- the exact version of SQL Server server and client. You can learn it from the Info sheet of TUniConnection Editor.

daizhicun
Posts: 109
Joined: Thu 21 Jan 2010 11:49

Post by daizhicun » Sat 26 Mar 2011 03:09

i use delphi2010+sqlserver2005(2008)+UniDAC3.50.0.13 04

AndreyZ

Post by AndreyZ » Mon 28 Mar 2011 13:17

The point is that for Oracle the TUniQuery.SpecificOptions.FetchAll option is set to False, and for SQL Server it's True. Please try setting this option to False when you are testing UniDAC with SQL Server. For more information about the FetchAll property, please read the "Using UniDAC with SQL Server" and "Using UniDAC with Oracle" topics of the UniDAC documentation.

Post Reply