Here is the SQL command I am using:
/* gei3015t1 is a file that will be fed to an RPG program to generate the report */
/* the different GESEC* files contain rules and exceptions to apply (Ex: what AUTL applies to what LIB ...) */
INSERT INTO dr.gei3015t1 (odlbnm, odobnm, odobtp, odobat, odobtx, odobow, pubaut, autl, adpaut, prvaut)
SELECT n1.objlib, n1.objname, n1.objtype, COALESCE (n1.objattribute,' '), COALESCE (n1.objtext, '.'), 
/**/
/* Validate the owner of the object. If the value is in accordance with the GESEC* files, then the value is *blank */
CASE 
WHEN n2.secown = '*SAME' OR (coalesce(n2.secown, '*DFT') = '*DFT' AND n1.objowner = 'G_OWNER') OR n2.secown = n1.objowner THEN ' ' 
ELSE n1.objowner 
END AS v_owner, 
/**/
/* validate the public authority. If ok then the value is *blank */
CASE
WHEN n4.secraut     IS NOT NULL THEN  CASE WHEN (n4.secraut    = '*DFT' AND  n7.obj_auth = '*USE') OR n7.obj_auth = n4.secraut    THEN ' ' ELSE n7.obj_auth END
WHEN n2.secautpub   IS NOT NULL THEN  CASE WHEN (n2.secautpub  = '*DFT' AND  n7.obj_auth = '*USE') OR n7.obj_auth = n2.secautpub  THEN ' ' ELSE n7.obj_auth END 
WHEN n6.seclautpub  IS NOT NULL THEN  CASE WHEN (n6.seclautpub = '*DFT' AND  n7.obj_auth = '*USE') OR n7.obj_auth = n6.seclautpub THEN ' ' ELSE n7.obj_auth END 
WHEN n5.seclautpub  IS NOT NULL THEN  CASE WHEN (n5.seclautpub = '*DFT' AND  n7.obj_auth = '*USE') OR n7.obj_auth = n5.seclautpub THEN ' ' ELSE n7.obj_auth END 
WHEN n7.obj_auth <> '*USE' THEN n7.obj_auth
ELSE ' '
END AS v_pubaut,
/**/
/* validate the autorisation list. If ok then *blank */
CASE
WHEN n3.secaautlst   IS NOT NULL THEN  CASE 
 WHEN n3.secaautlst <> '*NONE' AND n8.auth_list IS NULL                                       then '*NONE'
 WHEN n3.secaautlst <> '*NONE' AND n8.auth_list IS NOT NULL AND n3.secaautlst <> n8.auth_list then n8.auth_list
 WHEN n3.secaautlst <> '*NONE' AND n8.auth_list IS NOT NULL AND n3.secaautlst =  n8.auth_list then ' '
 WHEN n3.secaautlst =  '*NONE' AND n8.auth_list IS NOT NULL                                   then n8.auth_list
 WHEN n3.secaautlst =  '*NONE' AND n8.auth_list IS NULL                                       then ' '
 ELSE '??' END 
WHEN n2.secautlst   IS NOT NULL THEN  CASE 
 WHEN n2.secautlst <> '*NONE' AND n8.auth_list IS NULL                                      then '*NONE'
 WHEN n2.secautlst <> '*NONE' AND n8.auth_list IS NOT NULL AND n2.secautlst <> n8.auth_list then n8.auth_list
 WHEN n2.secautlst <> '*NONE' AND n8.auth_list IS NOT NULL AND n2.secautlst =  n8.auth_list then ' '
 WHEN n2.secautlst =  '*NONE' AND n8.auth_list IS NOT NULL                                  then n8.auth_list
 WHEN n2.secautlst =  '*NONE' AND n8.auth_list IS NULL                                      then ' '
 WHEN n2.secautlst =  '*SAME'                                                               THEN ' '
 ELSE '??' END 
WHEN n6.seclautlst   IS NOT NULL THEN  CASE 
 WHEN n6.seclautlst <> '*NONE' AND n8.auth_list IS NULL                                       then '*NONE'
 WHEN n6.seclautlst <> '*NONE' AND n8.auth_list IS NOT NULL AND n6.seclautlst <> n8.auth_list then n8.auth_list
 WHEN n6.seclautlst <> '*NONE' AND n8.auth_list IS NOT NULL AND n6.seclautlst =  n8.auth_list then ' '
 WHEN n6.seclautlst =  '*NONE' AND n8.auth_list IS NOT NULL                                   then n8.auth_list
 WHEN n6.seclautlst =  '*NONE' AND n8.auth_list IS NULL                                       then ' '
 ELSE '??' END 
WHEN n5.seclautlst   IS NOT NULL THEN  CASE 
 WHEN n5.seclautlst <> '*NONE' AND n8.auth_list IS NULL                                       then '*NONE'
 WHEN n5.seclautlst <> '*NONE' AND n8.auth_list IS NOT NULL AND n5.seclautlst <> n8.auth_list then n8.auth_list
 WHEN n5.seclautlst <> '*NONE' AND n8.auth_list IS NOT NULL AND n5.seclautlst =  n8.auth_list then ' '
 WHEN n5.seclautlst =  '*NONE' AND n8.auth_list IS NOT NULL                                   then n8.auth_list
 WHEN n5.seclautlst =  '*NONE' AND n8.auth_list IS NULL                                       then ' '
 ELSE '??' END 
ELSE COALESCE (n8.auth_list, ' ')
END AS v_autl,
/**/
/* validate the adoption of authority. If ok then *blank */
CASE
WHEN n9.usrprf     IS NULL THEN ' '
WHEN n3.secaadpaut IS NOT NULL AND n3.secaadpaut <> n9.usrprf then n9.usrprf
WHEN n3.secaadpaut IS NOT NULL AND n3.secaadpaut =  n9.usrprf then ' '
WHEN n9.usrprf <> '*OWNER'                                    THEN n9.usrprf
ELSE ' '
END AS v_adpaut,
/**/
/* validate if the object's private authority is the same as those defined in the GESEC* file */
COALESCE (
(SELECT '*' FROM cdtasys.gesecrp q1
WHERE q1.secrusr <> '*PUBLIC' AND q1.secrlib = n1.objlib AND q1.secrobj = n1.objname AND q1.secrtyp = n1.objtype AND 
NOT EXISTS(SELECT * FROM qsys2.object_privileges q2
WHERE q2.sys_dname = q1.secrlib AND q2.sys_oname = q1.secrobj AND q2.objtype = q1.secrtyp AND q2.user_name = q1.secrusr AND q2.obj_auth = q1.secraut )
FETCH FIRST ROW ONLY ),
(SELECT '*' FROM qsys2.object_privileges q3 
WHERE q3.user_name <> '*PUBLIC' AND q3.user_name <> 'G_OWNER' AND q3.sys_dname = n1.objlib AND q3.sys_oname = n1.objname AND q3.objtype = n1.objtype AND 
NOT EXISTS(SELECT * FROM cdtasys.gesecrp q4
WHERE q3.sys_dname = q4.secrlib AND q3.sys_oname = q4.secrobj AND q3.objtype = q4.secrtyp AND q3.user_name = q4.secrusr AND q3.obj_auth = q4.secraut )
FETCH FIRST ROW ONLY ), ' ') AS v_prvaut
/**/
FROM TABLE (qsys2.object_statistics('DRTEST','ALL')) n1 /* for test purposes, I use the DRTEST library. Once in production, I will use *ALL */
LEFT JOIN cgef.gesecpcs                 n2 ON n1.objtype = n2.sectyp   AND (n1.objattribute = n2.secatr OR n2.secatr = ' ')
LEFT JOIN cdtasys.gesecap               n3 ON n1.objlib = n3.secalib   AND n1.objname = n3.secaobj AND n1.objtype = n3.secatyp
LEFT JOIN cdtasys.gesecrp               n4 ON n1.objlib = n4.secrlib   AND n1.objname = n4.secrobj AND n1.objtype = n4.secrtyp AND n4.secrusr = '*PUBLIC'
LEFT JOIN cdtasys.geseclp               n5 ON n1.objlib = n5.secllib   AND n5.seclapp = '  '
LEFT JOIN cdtasys.geseclp               n6 ON n1.objlib = n6.secllib   AND substring(n1.objname,1,2) = n6.seclapp
LEFT JOIN qsys2.object_privileges       n7 ON n1.objlib = n7.sys_dname AND n1.objname = n7.sys_oname AND n1.objtype = n7.object_type AND n7.user_name = '*PUBLIC'
LEFT JOIN qsys2.authorization_list_info n8 ON n1.objlib = n8.sys_dname AND n1.objname = n8.sys_oname AND n1.objtype = n8.sys_otype 
LEFT JOIN qsys2.pgm_info                n9 ON n1.objlib = n9.pgm_lib   AND n1.objname = n9.pgm_name AND n1.objtype = n9.obj_type
WHERE n5.seclyn = '001'
FETCH FIRST 100000 ROWS ONLY;
/**/
/* I will put here a second statement to delete from GEI3015T1 all rows that have no discrepancy (where all v_* variable are *blank) because I can not use the v_* variable in the where clause */
-----Message d'origine-----
De : MIDRANGE-L <midrange-l-bounces@xxxxxxxxxxxxxxxxxx> De la part de Rob Berendt
Envoyé : 2 mars 2022 08:57
À : Midrange Systems Technical Discussion <midrange-l@xxxxxxxxxxxxxxxxxx>
Objet : RE: Unexpected SQL performance behavior
Cascades - External Email
Any chance you can share that statement?  IDK if any of IBM's services would perform better.  Or may be structured better.
Rob Berendt
--
IBM Certified System Administrator - IBM i 6.1 Group Dekko Dept 1600 Mail to:  7310 Innovation Blvd, Suite 104
          Ft. Wayne, IN 46818
Ship to:  7310 Innovation Blvd, Dock 9C
          Ft. Wayne, IN 46818
https://can01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.dekko.com%2F&data=04%7C01%7Cdenis_robitaille%40cascades.com%7C71bbeaee68a246cb32ec08d9fc5494bc%7Ca866874ad0e34a03a79d4c893ab51296%7C0%7C0%7C637818262482133803%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=vnGPkNabpddfPfDnWGruHmNO9dyI5wIsKW2%2BtbjM8eg%3D&reserved=0
-----Original Message-----
From: MIDRANGE-L <midrange-l-bounces@xxxxxxxxxxxxxxxxxx> On Behalf Of Denis Robitaille
Sent: Wednesday, March 2, 2022 8:38 AM
To: Midrange Systems Technical Discussion <midrange-l@xxxxxxxxxxxxxxxxxx>
Subject: RE: Unexpected SQL performance behavior
CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you recognize the sender and know the content is safe.
Thanks for all these details,
When I added "fetch first 1000 rows only" (found that on google) it performed very well.
The problem I face now is that I currently only have 51 rows because I am working on a subset of data for development purposes. But, once in production, the number of rows will most likely be over 100,000 rows.
To give context, the goal of this is to analyse all objects on a system to see if they conform to our security policies (public authority, owner, authorisation list, adopt authority for pgm ...) and report any non complying object.
-----Message d'origine-----
De : MIDRANGE-L <midrange-l-bounces@xxxxxxxxxxxxxxxxxx> De la part de Charles Wilt Envoyé : 1 mars 2022 18:24 À : Midrange Systems Technical Discussion <midrange-l@xxxxxxxxxxxxxxxxxx> Objet : Re: Unexpected SQL performance behavior
Cascades - External Email
This is likely cause of the difference...
Attribute                     Select only       With insert
Optimization goal       *FIRSTIO        *ALLIO
Which is what I suspected. :)
*FIRSTIO is the default for Inactive queries, meaning give me the first page ASAP.
*ALLIO is the default for "batch", meaning try to limit the time it takes for all the rows.
Usually a big difference, means that the optimizer doesn't have a good idea of how many rows "ALL" will end up with.
*FIRSTIO tends to favor index usage, *ALLIO tends to favor table scans if it assumes "ALL" is pretty big.
With the right set of indexes and statistics, it should work the same in this case with such few rows.
You could determine what's missing and add them, or you can give it a OPTIMIZE FOR 60 ROWS hint.
Note that adding such a hint may (will) hurt if it turns out you've lied to the optimizer and returned much more than 60 rows.
Yes, add the optimize for clause to the select.
INSERT INTO MYTABLE
 (select <...>
  optimize for 60 rows
  )
Charles
On Tue, Mar 1, 2022 at 2:11 PM Denis Robitaille < denis_robitaille@xxxxxxxxxxxx> wrote:
Using the visual explain, I compared the result when doing the INSERT 
with only doing the SELECT.
Attribute                     Select only       With insert
Optimization goal       *FIRSTIO        *ALLIO
Interactive Process     NO                    NO
Positionning option     Next only       Next only
Optimize for N rows     30                    All lines
Fetch first N rows      All rows        All rows
I dont know why some values are different.
As for the "optimize for 60 rows" where should I add it (at the end of 
the SQL statement?
Thanks
-----Message d'origine-----
De : MIDRANGE-L <midrange-l-bounces@xxxxxxxxxxxxxxxxxx> De la part de 
Charles Wilt Envoyé : 1 mars 2022 11:45 À : Midrange Systems Technical 
Discussion <midrange-l@xxxxxxxxxxxxxxxxxx> Objet : Re: Unexpected SQL 
performance behavior
Cascades - External Email
What does Visual Explain show?
In particular
Under INI Options
Optimization goal *FIRSTIO
Under Environment Information
Interactive Process No
Positioning Options Any
Optimize for N Rows 30
Fetch First N Rows All Rows
Adding
optimize for 60 rows
to the select may help
May help...
Charles
On Tue, Mar 1, 2022 at 8:59 AM Denis Robitaille < 
denis_robitaille@xxxxxxxxxxxx> wrote:
Hello all,
I am currently working on a complex (for me) SQL script. When I run 
it to display the result on the screen, it works fine. When I change 
it to put the result of the SELECT in a file (by inserting the 
appropriate INSERT INTO... before the SELECT), it takes more that 10
times longer to execute!!
I am working with a small subset of data and the resulting data set 
is just 51 rows.
Any help on understanding this behavior and on how to avoid it is 
very appreciated.
[cid:image001.png@01D82D5A.F658C930]<http://www.cascades.com/fr>
Denis Robitaille
Analyste TI
CASCADES CANADA ULC
412 Boul. Marie-Victorin
Kingsey Falls (QC) Canada  J0A 1B0
Tél. : 819 363 6100   Poste : 52130
Cell. : 819 352 9362
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) 
mailing list To post a message email: MIDRANGE-L@xxxxxxxxxxxxxxxxxx 
To subscribe, unsubscribe, or change list options,
visit:
https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fli
st
s.midrange.com%2Fmailman%2Flistinfo%2Fmidrange-l&data=04%7C01%7C
de
nis_robitaille%40cascades.com%7C06f5740c4af5442b75ff08d9fba2cd3d%7Ca
86
6874ad0e34a03a79d4c893ab51296%7C0%7C0%7C637817499189711805%7CUnknown
%7
CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJ
XV
CI6Mn0%3D%7C3000&sdata=KTQ6duWhZeG843okLQ%2FTFr%2Fd7Xg4VO%2BB8%2
BY
yyVFyNN8%3D&reserved=0 or email:
MIDRANGE-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives at
https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Farch
ive.midrange.com%2Fmidrange-l&data=04%7C01%7Cdenis_robitaille%40ca
scades.com%7Cdb49ec6c22034ec3ed8a08d9fbda9046%7Ca866874ad0e34a03a79d4c
893ab51296%7C0%7C0%7C637817739350298812%7CUnknown%7CTWFpbGZsb3d8eyJWIj
oiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C2000&am
p;sdata=lMjasGZE6fi3%2BD%2F2cEQt%2FEYR52s0q4YI7aI52qDANFU%3D&reser
ved=0
.
Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription 
related questions.
Help support midrange.com by shopping at amazon.com with our 
affiliate
link:
https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fam
az
on.midrange.com%2F&data=04%7C01%7Cdenis_robitaille%40cascades.co
m%
7C06f5740c4af5442b75ff08d9fba2cd3d%7Ca866874ad0e34a03a79d4c893ab5129
6%
7C0%7C0%7C637817499189711805%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjA
wM
DAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=t
Sj
8Jfjbk62sQGv%2Ba9cHSsHQrg1AqbMAseoywVgJ3p0%3D&reserved=0
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing 
list To post a message email: MIDRANGE-L@xxxxxxxxxxxxxxxxxx To 
subscribe, unsubscribe, or change list options,
visit:
https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flist
s.midrange.com%2Fmailman%2Flistinfo%2Fmidrange-l&data=04%7C01%7Cde
nis_robitaille%40cascades.com%7Cdb49ec6c22034ec3ed8a08d9fbda9046%7Ca86
6874ad0e34a03a79d4c893ab51296%7C0%7C0%7C637817739350298812%7CUnknown%7
CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXV
CI6Mn0%3D%7C2000&sdata=K6YFPjI%2FE4jMW%2FQazbEq67f5UTZCKjpzXKDj7L9
9EoE%3D&reserved=0 or email: MIDRANGE-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives at 
https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Farch
ive.midrange.com%2Fmidrange-l&data=04%7C01%7Cdenis_robitaille%40ca
scades.com%7Cdb49ec6c22034ec3ed8a08d9fbda9046%7Ca866874ad0e34a03a79d4c
893ab51296%7C0%7C0%7C637817739350298812%7CUnknown%7CTWFpbGZsb3d8eyJWIj
oiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C2000&am
p;sdata=lMjasGZE6fi3%2BD%2F2cEQt%2FEYR52s0q4YI7aI52qDANFU%3D&reser
ved=0
.
Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription 
related questions.
Help support midrange.com by shopping at amazon.com with our affiliate
link:
https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Famaz
on.midrange.com%2F&data=04%7C01%7Cdenis_robitaille%40cascades.com%
7Cdb49ec6c22034ec3ed8a08d9fbda9046%7Ca866874ad0e34a03a79d4c893ab51296%
7C0%7C0%7C637817739350298812%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwM
DAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C2000&sdata=QEk
wRyPw9%2FZ1F%2FdOv%2FVsrRmFdhFkZisotTalkzXQgbQ%3D&reserved=0
Cascades - ATTENTION: Ce courriel provient de l'extérieur de 
l'organisation. Ne pas cliquer sur les liens et ne pas ouvrir les 
pièces jointes sauf si vous reconnaissez l'expéditeur et que vous êtes 
sûr que le contenu est légitime.
Cascades - CAUTION: This email is from outside the organization. Do 
not click on links or open attachments unless you recognize the sender 
and you are sure the content is safe.
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing 
list To post a message email: MIDRANGE-L@xxxxxxxxxxxxxxxxxx To 
subscribe, unsubscribe, or change list options,
visit:
https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flist
s.midrange.com%2Fmailman%2Flistinfo%2Fmidrange-l&data=04%7C01%7Cde
nis_robitaille%40cascades.com%7Cdb49ec6c22034ec3ed8a08d9fbda9046%7Ca86
6874ad0e34a03a79d4c893ab51296%7C0%7C0%7C637817739350298812%7CUnknown%7
CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXV
CI6Mn0%3D%7C2000&sdata=K6YFPjI%2FE4jMW%2FQazbEq67f5UTZCKjpzXKDj7L9
9EoE%3D&reserved=0 or email: MIDRANGE-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives at 
https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Farchive.midrange.com%2Fmidrange-l&data=04%7C01%7Cdenis_robitaille%40cascades.com%7C71bbeaee68a246cb32ec08d9fc5494bc%7Ca866874ad0e34a03a79d4c893ab51296%7C0%7C0%7C637818262482133803%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=0XdfrdM2vwUBnBWdqr8dXzJo9wnI0pELviq11Rq72zU%3D&reserved=0.
Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription 
related questions.
Help support midrange.com by shopping at amazon.com with our affiliate
link:
https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Famaz
on.midrange.com%2F&data=04%7C01%7Cdenis_robitaille%40cascades.com%
7Cdb49ec6c22034ec3ed8a08d9fbda9046%7Ca866874ad0e34a03a79d4c893ab51296%
7C0%7C0%7C637817739350298812%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwM
DAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C2000&sdata=QEk
wRyPw9%2FZ1F%2FdOv%2FVsrRmFdhFkZisotTalkzXQgbQ%3D&reserved=0
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list To post a message email: MIDRANGE-L@xxxxxxxxxxxxxxxxxx To subscribe, unsubscribe, or change list options,
visit: 
https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.midrange.com%2Fmailman%2Flistinfo%2Fmidrange-l&data=04%7C01%7Cdenis_robitaille%40cascades.com%7C71bbeaee68a246cb32ec08d9fc5494bc%7Ca866874ad0e34a03a79d4c893ab51296%7C0%7C0%7C637818262482133803%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=OAP17xWSoPxwVsOUwAUHxl8XrG13PSTmFx%2Bn%2BYKMA14%3D&reserved=0
or email: MIDRANGE-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives at 
https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Farchive.midrange.com%2Fmidrange-l&data=04%7C01%7Cdenis_robitaille%40cascades.com%7C71bbeaee68a246cb32ec08d9fc5494bc%7Ca866874ad0e34a03a79d4c893ab51296%7C0%7C0%7C637818262482133803%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=0XdfrdM2vwUBnBWdqr8dXzJo9wnI0pELviq11Rq72zU%3D&reserved=0.
Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription related questions.
Help support midrange.com by shopping at amazon.com with our affiliate link: 
https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Famazon.midrange.com%2F&data=04%7C01%7Cdenis_robitaille%40cascades.com%7C71bbeaee68a246cb32ec08d9fc5494bc%7Ca866874ad0e34a03a79d4c893ab51296%7C0%7C0%7C637818262482133803%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=pE%2Bju7%2BoPRHQyvmDLFJrR1HINXurDjP4Jun6hIOdDZc%3D&reserved=0
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list To post a message email: MIDRANGE-L@xxxxxxxxxxxxxxxxxx To subscribe, unsubscribe, or change list options,
visit: 
https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.midrange.com%2Fmailman%2Flistinfo%2Fmidrange-l&data=04%7C01%7Cdenis_robitaille%40cascades.com%7C71bbeaee68a246cb32ec08d9fc5494bc%7Ca866874ad0e34a03a79d4c893ab51296%7C0%7C0%7C637818262482133803%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=OAP17xWSoPxwVsOUwAUHxl8XrG13PSTmFx%2Bn%2BYKMA14%3D&reserved=0
or email: MIDRANGE-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives at 
https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Farchive.midrange.com%2Fmidrange-l&data=04%7C01%7Cdenis_robitaille%40cascades.com%7C71bbeaee68a246cb32ec08d9fc5494bc%7Ca866874ad0e34a03a79d4c893ab51296%7C0%7C0%7C637818262482133803%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=0XdfrdM2vwUBnBWdqr8dXzJo9wnI0pELviq11Rq72zU%3D&reserved=0.
Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription related questions.
Help support midrange.com by shopping at amazon.com with our affiliate link: 
https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Famazon.midrange.com%2F&data=04%7C01%7Cdenis_robitaille%40cascades.com%7C71bbeaee68a246cb32ec08d9fc5494bc%7Ca866874ad0e34a03a79d4c893ab51296%7C0%7C0%7C637818262482133803%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=pE%2Bju7%2BoPRHQyvmDLFJrR1HINXurDjP4Jun6hIOdDZc%3D&reserved=0
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list To post a message email: MIDRANGE-L@xxxxxxxxxxxxxxxxxx To subscribe, unsubscribe, or change list options,
visit: 
https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.midrange.com%2Fmailman%2Flistinfo%2Fmidrange-l&data=04%7C01%7Cdenis_robitaille%40cascades.com%7C71bbeaee68a246cb32ec08d9fc5494bc%7Ca866874ad0e34a03a79d4c893ab51296%7C0%7C0%7C637818262482133803%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=OAP17xWSoPxwVsOUwAUHxl8XrG13PSTmFx%2Bn%2BYKMA14%3D&reserved=0
or email: MIDRANGE-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives at 
https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Farchive.midrange.com%2Fmidrange-l&data=04%7C01%7Cdenis_robitaille%40cascades.com%7C71bbeaee68a246cb32ec08d9fc5494bc%7Ca866874ad0e34a03a79d4c893ab51296%7C0%7C0%7C637818262482133803%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=0XdfrdM2vwUBnBWdqr8dXzJo9wnI0pELviq11Rq72zU%3D&reserved=0.
Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription related questions.
Help support midrange.com by shopping at amazon.com with our affiliate link: 
https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Famazon.midrange.com%2F&data=04%7C01%7Cdenis_robitaille%40cascades.com%7C71bbeaee68a246cb32ec08d9fc5494bc%7Ca866874ad0e34a03a79d4c893ab51296%7C0%7C0%7C637818262482133803%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=pE%2Bju7%2BoPRHQyvmDLFJrR1HINXurDjP4Jun6hIOdDZc%3D&reserved=0
As an Amazon Associate we earn from qualifying purchases.