Hi Ben,

I just installed a few samples as in description . CONGRATULATIONS !
- not only that I get what I want and leave the rest aside
- I also can split samples by subjects in several DBs and namespaces without being trapped by (hidden) dependencies.

I think this makes live for training and teaching significantly easier!
And allows central bug fixing independent from core release dates.


A great idea! Thanks!

To my understanding the main purpose of introducing %INLIST in our SQL was
to have a more handy option than the classic IN (....)

%INLIST takes a Single $LISTBUILD()  as parameter with a Variable number of values that you pass at runtime by only 1 "?"

while IN (p1,p2,p3,p4)   or better IN (?,?,?,?)  requires a fixed static number of parameters during execution. 
so you have to know the maximum number of values ahead when you create your query
and eventually to fill unused parameters by some impossible value to feed the query

 

Query 1 Example 1 could be marginally faster by less line terminations and less command dispatch:
But as this will be compiled some kind of code optimizer eventually might run.

Query2 Example1 is faster by less line terminations and less command dispatch.

BUT:  Both cases aren't the place to win benchmarks. Rather look for Global access , SQL optimizing, ....

Hi Ben,
- I like the idea of external samples. That offers definitely more flexibility .
- DOCUMATIC is unchanged and works local!  That's important. OK 
- JDBC: it isn't visible in Custom Install.  You only see xDBC -> ODBC .   
   Not an issue, rather a surprise. The .jar are  where they used to be before.

I'm really happy that we finally can get out of old chains imposed by 40yrs (DSM-11 and others) backward compatibility .

Robert  

rewrite of comment:

if this is something like

SELECT people.name, holiday.date, people.ID||'^'||holiday.ID as UNIQ
FROM people JOIN holiday
ON people.country = holiday.country

Then the bolded expression should not be longer than your 50 Char.

IF you use CachéStorage
ID is always a unique positive Integer (1.... 19digits)  and you can always disassemble it by the separator.

Assuming that you did not disable Journaling for the critical CACHE.DAT
you can take a look into Mgmt Portal / System Operation / Journal

There you click on PROFILE and sort by Size:
This gives you the fastest moving parts.
And though it also contains updates your fastest GROWING globals will leave their traces there.

In a next step you may analyze the Journal itself filtered by CACHE.DAT and SET operation
but that may take more time and effort.

suggested steps:

#1)Add   Property Experiment As %String;   to     Class SCHED.TracerEntry

#2) Write a Utility  Class to move  the existing content from  SCHED.SchedEntry.Experiment in to the all List entries.

#3)
If you are satisfied and all methods access the new location of Experiment​
You may remove all old content of  SCHED.SchedEntry.Experiment . Set it to ""
and set the property to INTERNAL, PRIVATE or just delete SCHED.SchedEntry.Experiment . BUT don't touch the storage map! 

This is not a necessary step but just kind of clean up.