Thanks for your answer. I don't doubt AutoParallel works at all, I simply can't have it working in any of the queries I tried, even with AVG, SUM, etc., using 1M or 10M rows. I gave you all the info, you can run yourself if interested.

So, I presume the best approach (for me) to be in control of what is happening into the system is to add %PARALLEL whenever I want it to effectively do it. Old good habits never die :-D

hi! 

Thx for your reply. As explained to Ali Naser I've done some other testing... I've created this class and populated with 1M records. Then I've run some queries and still no parallel :'( I can't find any situation where the autoparallel works on its own.

Example queries:

select Address, City, Name from MCCH.ClassTest where age>10
select Address, City, Name from MCCH.ClassTest where age>20
select Address, City, Name from MCCH.ClassTest where age>30

Class:

Class SQLUser.ClassTest Extends (%Persistent, %Populate){

Property Name As %String(MAXLEN = 255);
Property Age As %Integer(MAXVAL = 100, MINVAL = 1);
Property Address As %String(MAXLEN = 255);
Property City As %String(MAXLEN = 255);
Property State As %String(MAXLEN = 255);
Property Zip As %String(MAXLEN = 255);
Property Country As %String(MAXLEN = 255);
Property Comment As %String(MAXLEN = 255);
Property Hobby As %String(MAXLEN = 255);
Property JobTitle As %String(MAXLEN = 255);
Property Company As %String(MAXLEN = 255);
Property PhoneNumber As %String(MAXLEN = 255);
Property Email As %String(MAXLEN = 255);
Property Gender As %String(MAXLEN = 1);
Property Ethnicity As %String(MAXLEN = 255);
Property Race As %String(MAXLEN = 255);
Property Religion As %String(MAXLEN = 255);
Property MaritalStatus As %String(MAXLEN = 255);
Property Children As %Integer(MAXVAL = 10, MINVAL = 0);
Property Income As %Integer(MAXVAL = 100000, MINVAL = 0);
Property Occupation As %String(MAXLEN = 255);
Property Education As %String(MAXLEN = 255);
Property HomePhone As %String(MAXLEN = 255);
Property MobilePhone As %String(MAXLEN = 255);
Property WorkPhone As %String(MAXLEN = 255);
Property WorkEmail As %String(MAXLEN = 255);
Property HomeEmail As %String(MAXLEN = 255);
Property HomeAddress As %String(MAXLEN = 255);
Property HomeCity As %String(MAXLEN = 255);
Property HomeState As %String(MAXLEN = 255);
Property HomeZip As %String(MAXLEN = 255);
Property HomeCountry As %String(MAXLEN = 255);
Property WorkAddress As %String(MAXLEN = 255);
Property WorkCity As %String(MAXLEN = 255);
Property WorkState As %String(MAXLEN = 255);
Property WorkZip As %String(MAXLEN = 255);
Property WorkCountry As %String(MAXLEN = 255);
Property WorkPhoneNumber As %String(MAXLEN = 255);
Property WorkMobilePhone As %String(MAXLEN = 255);
Property WorkFax As %String(MAXLEN = 255);
Property WorkWebsite As %String(MAXLEN = 255);
Property WorkComments As %String(MAXLEN = 255);
Property FootballTeam As %String(MAXLEN = 255);
Property BaseballTeam As %String(MAXLEN = 255);
Property BasketballTeam As %String(MAXLEN = 255);
Property HockeyTeam As %String(MAXLEN = 255);
Property GolfTeam As %String(MAXLEN = 255);
Property SportsComments As %String(MAXLEN = 255);
Property SportsComments2 As %String(MAXLEN = 255);
Property SportsComments3 As %String(MAXLEN = 255);

Index IdxAge On Age;
}

Rows:
select count(*) from MCCH.ClassTest -> 1.000.000

So, I've decided to run some tests to see if autoparallel is ignored because it's not worth it. I've run the same query after clearing all the buffers (d ClearBuffers^|"%SYS"|GLOBUFF()):

select * from %PARALLEL SQLUser.ClassTest where age>40  : 0.0614 seconds  318 global references 34801 commands executed

select * from SQLUser.ClassTest where age>40 : 0.2377 seconds  600975 global references 2437292 commands executed

So, it seems that it's faster with %PARALLEL, but I can't find out how to write the query so the autoparallel goes on :'(

I have even tried queries without * to check, with no luck. For example:
select Address, City, Name from SQLUser.ClassTest where age>30

Hi Kirsten,

Thanks for this. But still doesn't work, I get same error:

Error message: ERROR #864: An authenticated user name is required.
Web Application: /terminal
$I: |TCP|51773|134694
$P: |TCP|51773|134694

Weirdly, with Firefox I'm able to get the auth dialog. I suspect it is related to browser (Edge doesn't work) as I've removed all cookies and cleaned the cache :(

Hi Scott,

Maybe you could can simply use mapping to split the globals from each namespace in different databases and have them in different disks. In my experience, this speeds up the system as reading from different disks at the same time avoids the problem on the max IO reached by the reader daemon. And you can even have different blocksizes that match better with the global structure.

Splitting routines and globals might sound nice, but you'll end up with a very small one (routines) and a massive one (the data).