ADABAS INTERNALS FOR PROGRAMMERS Jim Poole 1 CONTENTS
ADABAS INTERNALS FOR PROGRAMMERS Jim Poole 1
CONTENTS BY THE NUMBERS DIRECT CALL EQUIVALENTS TO NATURAL/SQL DIRECT CALL BASICS DIRECT CALL PATH INTERNALS OVERVIEW DATA STORAGE ASSOCIATOR OVERVIEW ADDRESS CONVERTER INVERTED LISTS WORK OVERVIEW GLOSSARY OF POOLS, QUEUES, TABLES, DB. PARMS OTHER KEY ADARUNS (AND RSP CODES) FB, IFB, (DE)COMPRESSION COMMAND PROCESSING ANALYZE CODE DDLOG 3 4 7 13 14 15 24 25 27 40 42 43 45 51 56 57 2
BY THE NUMBERS V 4, V 5, V 6, V 7 -> V 8 THE MAX: RECORDS PER FILE: 16. 8 M or 4. 3 G (3 -BYTE, 4 -BYTE(ISN) FILES PER DATABASE: 255 or 65 K or 5000 (1 B, 2 B FNR) DECOMPRESSED LRECL: 32 K COMPRESSED LRECL: DATASTORAGE BLKSIZE MINUS 4 3390=5064 -4 8391=10796 -4 (V 8 SPANNED BLOCKS) FIELDS PER FILE: 26*36 -10=926 4*ASSOBLKSIZE FOR FLDS, DEs, etc MU/PE OCCURRANCES: 191 (V 8 65 K) SUPERDE PARENT FIELDS: 1 TO 20 FIELD TYPES: (SEE UTILITIES MANUAL: ADACMP) 3
DIRECT CALL EQUIVALENTS TO NATURAL/SQL DIRECT CALL COMMAND NATURAL NATIVE SQL OP (IMPLICIT AT SIGNON) CONNECT CL (IMPLICIT AT SIGNOFF) DBCLOSE L 1/L 4 (CID) GET READ BY ISN (read records from FIND) READ ISN with SEQUENCE L 2/L 5 CID READ PHYSICAL (default READ) READ PHYSICAL L 3/L 6 CID READ LOGICAL (READ BY DE values) L 9 CID HISTOGRAM NOTE 1: L 4, L 5, L 6 ARE READ WITH HOLD NOTE 2: CID IS COMMAND ID REQUIRED (CID) IS OPTIONAL DEPENDING ON FUNCTION 4
DIRECT CALL TO NATURAL/SQL cont. DIRECT CALL COMMAND S 1/S 4 (CID) NATURAL NATIVE SQL FIND S 2 (CID) FIND. . . SORTED BY FIND with ORDER BY clause S 9 (CID) (sorted by) SORT S 8 (CID) (compare ISN lists) COMPARE A 1/A 4 (CID) UPDATE E 1/E 4 (CID) DELETE N 1 (CID) STORE INSERT N 2 (CID) STORE USING NUMBER INSERT WHERE ISN= NOTE 2: CID IS COMMAND ID REQUIRED (CID) IS OPTIONAL DEPENDING ON FUNCTION 5
DIRECT CALL TO NATURAL/SQL cont. DIRECT CALL COMMAND NATURAL NATIVE SQL ET END TRANSACTION COMMIT WORK BT BACKOUT TRANSACTION ROLLBACK WORK RC (CID) RELEASE (close loop) RELEASE CLOSE RI RELEASE ISN HI (put ISN on hold) HOLD ISN RE GET TRANSACTION DATA READ USERDATA NOTE 2: CID IS COMMAND ID REQUIRED (CID) IS OPTIONAL DEPENDING ON FUNCTION 6
DIRECT CALL BASICS SEE ADABAS COMMAND REF MANUAL CALL ADABAS USING CONTROL-BLOCK, FORMAT-BUFFER, RECORD-BUFFER SEARCH-BUFFER, VALUE-BUFFER ISN-BUFFER CONTROL-BLOCK (req) 80 BYTES FORMAT-BUFFER (opt) FIELDS TO READ/UPDATE RECORD-BUFFER (opt) VALUES RETURNED/UPDATED SEARCH-BUFFER (opt) SEARCH CRITERIA VALUE-BUFFER (opt) SEARCH VALUES ISN-BUFFER (opt) ISNs RESULTING FROM SEARCH 7
DIRECT CALL BASICS (CONTROL-BLOCK) OFF SET 00 02 FIELD RESERVED COMMAND CODE 04 COMMAND ID 08 0 A 0 C 10 FILE NUMBER RESPONSE CODE ISN LOWER LIMIT 2 2 4 4 14 ISN QUANTITY 4 LEN 2 2 L 1, S 1, ET, etc 4 USED FOR: -ISN LIST ID -SEQ CMD PTR -ID IFB Eg HEX: 1100 01 01 NATURAL 1100 STATEMENT NO. 01 PGM LEVEL 01 CARDINAL NO. 1 B DBID, 1 B FNR 8
DIRECT CALL BASICS (CONTROL-BLOCK) OFF FIELD LEN SET 18 FORMAT BUFFER LENGTH 2 1 A RECORD BUFFER LENGTH 2 1 C SEARCH BUFFER LENGTH 1 E FORMAT BUFFER LENGTH 20 ISN BUFFER LENGTH 2 22 23 COMMAND OPTION 1 COMMAND OPTION 2 1 1 24 ADDITIONS 1 8 L 3, L 6, L 9 SEQ DE S 2, S 9 SORT Des S 8 ISN LIST CIDs 9
DIRECT CALL BASICS (CONTROL-BLOCK) OFF SET 2 C FIELD ADDITIONS 2 30 38 ADDITIONS 3 ADDITIONS 4 8 8 40 ADDITIONS 5 8 LEN 4 COMPRESSED LRECL DECOMPRESSED LRECL RSP SUB-CODE PASSWORD CIPHER GLOBAL FORMAT ID if First 2 bits set to 11 48 4 C COMMAND TIME USER AREA 4 4 10
DIRECT CALL BASICS (FORMAT BUFFER) EG. BA, 020, A, PP, 10, U. EG. BA, PP. EG. LJ, 018, A, LKC, 3, U, LK 0001 -0002, 094, A. ELEMENTS (SEPARATED BY COMMAS): FIELD-NAME /OCC/, LENGTH , FORMAT FIELD-NAME /OCC 1 -OCC 1/ FIELD-NAME “C” 11
DIRECT CALL BASICS (SEARCH BUFFER) EG. AS, 018, A, D, BB, 10, U EG. AS, S, AS, D, BB. EG. (CID 1), D, AB, 3, U. ELEMENTS (SEPARATED BY COMMAS): FIELD-NAME or CID SAMPLE CONNECTORS: D - AND O - SAME DE R - DIFFERENT DE S - THRU N - NOT used with THRU 12
DIRECT CALL PATH PROGRAM ADALINK • CALL ADABAS • DETERMINE DBID • DETERMINE CMD TYPE • CREATE ADABAS USERID RSP CODES 148 151 152 254 255 SVC/ ROUTER • DB ID TABLE ADABAS • BUILD CQE • MOVE UB TO NAB NOTE: UB = CB+FB+RB+SB+VB+IB 13
INTERNALS OVERVIEW CMD. Q. TBQ NC=20 -200 THREADS USR-CID-INFO NT=5 -30 CQE SELECT WORK POOL USER. Q LI=20 -100 K FORMAT POOL USR-CID-INFO LS= LFP=. 5 -5 M BUFFER POOL LWP=1 -5 M ATTACHED BUFFERS HOLD. Q USR-CID-INFO LQ=20 -400 K NU=200 -3000 NAB=20 -200 TBI LBP=30 -100 M ASSO FCB DATA WORK FDT PART 2 NH=4 K-60 K UI PART 3 RECs BLKSIZE=5724 MI NI PLOGS AC BLKSIZE=2544 BLKSIZE=5724 BLKSIZE=5064 14
DATA STORAGE (DS) FILE A | FILE B| FILE C | unused | FILE D | unused . . . RABN 1 RABN 2 RABN 3 RABN N NOTES: FIXED ALLOCATION FIXED BLOCKSIZE (3390=5064 8391=10796) EACH FILE IS A RANGE OF DATASTORAGE RABNS RABN = BLOCK = RELATIVE ADABAS BLOCK NUMBER 15
DS RABN HDR RECORD FREE SPACE REC LEN Fields… Block length X 0004 PAD (DSST) DSST: PER DS BLOCK: SPACE FROM LAST REC TO PAD 16
DS RABN: UPDATE RECORD HDR RECORD RECORD (DSST) PAD RECORD PAD (DSST) RECORD DSST: PER DS BLOCK: SPACE FROM LAST REC TO PAD ? 17
DS RABN: ADD RECORD HDR RECORD (DSST) PAD RECORD ? ? ? DSST: PER DS BLOCK: SPACE FROM LAST REC TO PAD 18
DS RABN: REUSE DS SET BY DBA (AOS, ADADBS) USED FOR NEW RECORDS AND POPPED RECORDS OFF: GO TO 1 ST UNUSED DS RABN ON: SCAN DSST (UP TO X ENTRIES) IF SPACE USE IT IF NO SPACE, GO TO 1 ST UNUSED DS RABN NEXT DSST SCAN, NEXT ENTRY ? 1 ST UNUSED DSST: PER DS BLOCK: SPACE FROM LAST REC TO PAD 19
DS RABN: PROBLEM/TIPS READ EMPLOYEES PHYSICAL COST-ADJUSTMENT = 2 * COST ADJUSTMENT UPDATE SAME LOOP ? ? ? ? READ EMPLOYEES PHYSICAL IF YEAR > 99 THEN end-program-logic IF YEAR < 60 THEN YEAR = YEAR + 2000 ELSE YEAR = YEAR + 1900 UPDATE SAME LOOP ? ? ? ? 20
DS RECORD 2 B 4 B ISN IRL FIELD 1 FIELD 2 FIELD 3 FIELD N IRL = Inclusive Record Length ISN = Internal Sequence Number RECORD COMPRESSED AT THE FIELD LEVEL FIELD: L/VALUE - COMPRESSED, NULL SUPPRESSED FIELDS (NU) VALUE - FIXED LENGTH FIELDS (FI) EFC - 1 BYTE EMPTY FIELD COUNTER, X FIELDS EMPTY MU/PE C - MU/PE OCCURRENCE COUNTER 21
FIELD COMPRESSION/ TIPS NU – NULL SUPPRESS CAUTION ON DE, AND SOURCE FOR DE – DEFAULT COMPRESSION FI – FIXED COMPRESSION IF NEVER GOING TO CHANGE LENGTH Eg. YY TO CHANGE COMPRESSION OPTION: 1. ADACMP DECOMPRESS FILE 2. ADACMP COMPRESS FILE 3. ADALOD FILE 22
DS RECORD AGAIN/TIPS 2 B IRL 4 B ISN FIELD 1 FIELD 2 LAST EMPTY FIELD 1. DECOMPRESS UNTIL LAST FIELD REQUESTED. PUT FREQUENTLY USED FIELDS UP FRONT 2. EMPTY FIELDS AT END OF RECORD ARE TREATED AS NU CHANGING FIELD LENGTHS IS EASY (NU, dflt) ADDING NEW FIELDS IS EASY INSERTING NEW FIELDS IS NOT FOR NEW PE’S 02, XA, 1, A, NU 02, XN, 1, P, NU 23
ASSOCIATOR OVERVIEW FCBs | FDTs | DSST | FILE-X AC | FILE-X UI/MI | FILE-X NI |unused . . . RABN 1 RABN 2 RABN 3 RABN N NOTES: FIXED BLOCKSIZE - (3390=2544 8391=4136) FCB – FILE CONTROL BLOCK FILE OPTIONS (eg. REUSE-DS, REUSE-ISN) POINTER TO ALL FILE EXTENTS FDT - FIELD DEFINITION TABLE. FIELDS, FORMAT, LENGTHS, OPTIONS, TYPE, etc 24
ADDRESS CONVERTER (AC) ISN ENTRY 0 0 1 DS RABN 1 2 DS RABN 1 3 DS RABN 1 4 DS RABN 1 5 DS RABN 2 6 7 8 DS RABN 2 9 DS RABN 2 10 11 12 13 DS RABN 2 14 DS RABN 2 0 DS RABN 5 A. ONE PER FILE, RANGE OF ASSO RABNS B. ONE ENTRY PER POSSIBLE ISN 3 BYTES ASSO BLOCK (2544) = 848 ENTRIES C. EACH ENTRY CONTAINS DS RABN OR 0 D. COMPACT: 20 M RECORD FILE IN 24 K ASSO BLOCKS E. FAST ACCESS: OFFSET ADDRESSING DS RABN 2 DS RABN 8 DS RABN 2 25
AC: REUSE ISN/TIPS SET BY DBA (AOS, ADADBS) USED FOR NEW RECORDS OFF: GO TO TOPISN + 1: ON: SCAN FCB AND AC (UP TO 1 AC BLOCK) IF ISN AVAILABLE, USE IT IF NO ISN, GO TO TOPISN + 1 NEXT AC SCAN, NEXT AC BLOCK TOPISN = 222, 222 STORE EMPLOYEES WRITE *ISN = ? ? ? ? 26
INVERTED LISTS THE CONCEPTUAL VIEW VALUE L ADAM CNT 3 L ANSEL 2 , 5 , 10 1 L AXEL 200 L BAIN 3 L BEERE L BINN 3 1, 4, 6, 20, . . . , 1020 11, 12, 70 39 3 ISN LIST UQ-DE MU-DE SUB-DE PE-DE SUPER-DE NU-DE HYPER-DE PHONETIC-DE 7, 9, 13, …, 2010 8, 15, 3010 SORTED BY VALUE BY ISN 1 INVERTED LIST PER DESCRIPTOR 27
INVERTED LISTS A MORE ACCURATE VIEW FCB UI => <= ( 1 BLOCK AT HIGHEST) MI => NI => 1. MULTI-LEVEL INDEX ( 3 – 15 ) 2. BUILT OF ASSO NI AND UI/MI RABN RANGES 3. EACH RABN CONTAINS: a. 2 BYTE FIELD DEFINING USED BYTES b. 2 BYTE LEVEL INDICATOR c. X ELEMENTS d. PAD 28
NI: NORMAL INDEX BLOCKS BLK LEN 01 NI-ELEMENT DE LEN 1 Byte DE-VALUE X Bytes ISN COUNT ISNa ISNb ISNc 1 -2 Bytes 3 -4 Bytes Each PAD ISNx 1. EACH NI BLOCK IS UNIQUE TO ONE DESCRIPTOR. 2. WITHIN EACH NI, SORTED BY VALUE BY ISN 3. TWO SUCCESSIVE NI BLOCKS MAY NOT BE IN SEQUENCE. 4. DE-VALUEs ARE COMPRESSED 5. IF COUNT (ISQ) > 127, THEN 2 b COUNT USED 29
? ? HOW MUCH PER BLOCK ? ? NI ELEMENT = 1 + VAL. LEN + (1 or 2) + (3 or 4)x. N NI: NORMAL INDEX BLOCKS EXAMPLE 1 MEAN COMPRESSED DE-LENGTH=10 / 3 b ISN / UQ. DE (ISQ=1) DEVICE BLKSIZE FORMULA 3390 8391 (2544 -4) / ( 1 + 10 + 1 + 3 * 1 ) (4136 -4) / ( 1 + 10 + 1 + 3 * 1 ) 2544 4136 MAX ELEMENTS PER BLOCK 169 275 EXAMPLE 2 MEAN COMPR DE-LEN=40 / 3 b ISN / MAX ISNs PER BLOCK ? ? DEVICE BLKSIZE FORMULA 3390 8391 ((2544 -4) - ( 1 + 40 + 2 )) / 3 ((4136 -4) - ( 1 + 40 + 2 )) / 3 3390 8391 2544 4136 USING 4 b ISNs MAX ISNs PER BLOCK 832 1363 624 1022 30
MI: MAIN INDEX BLOCKS BLK LEN 02 MI-ELEMENT DE LEN 1 Byte DE-VALUE X Bytes PAD ISN PTR TO NI RABN 3 or 4 Bytes 3 Bytes 1. EACH MI BLOCK IS UNIQUE TO ONE DESCRIPTOR. 2. WITHIN EACH MI, SORTED BY VALUE BY ISN 3. TWO SUCCESSIVE MI BLOCKS MAY NOT BE IN SEQUENCE. 4. DE-VALUEs ARE COMPRESSED 5. NI RABN PTR IS NI BLOCK WHOSE FIRST ELEMENT CONTAINS THIS DE-VALUE/ISN 31
MI: MAIN INDEX BLOCKS MI ADAM 0 NI NI ADAM 3 BAIN 0 2, 5, 10 ANSEL 1 3 AXEL 200 1, 4, 6, 20, 111, 222, . . . , 1020 PAD BAIN 3 11, 12, 70 BEERE 39 7, 9, 13, …, 2010 BINN 3 8, 15, 3010 PAD NI 32
? ? HOW MUCH PER BLOCK ? ? MI ELEMENT = 1 + VAL. LEN + (3 or 4) + 3 MI: NORMAL INDEX BLOCKS EXAMPLE MEAN COMPRESSED DE-LENGTH=10 / 3 b ISN DEVICE BLKSIZE FORMULA 3390 8391 (2544 -4) / ( 1 + 10 + 3 ) (4136 -4) / ( 1 + 10 + 3 ) 2544 4136 MAX NI BLOCKS 149 243 33
UI: UPPER INDEX BLOCKS BLK LEN 03 UI-ELEMENT 15 DE NAME FLAG DE-LEN 2 b 1 b 1 b DE-VALUE X Bytes PAD ISN PTR TO RABN 3 or 4 Bytes 3 bytes 1. EACH U BLOCK CAN HAVE MULTIPLE DESCRIPTORS. 2. WITHIN EACH UI, SORTED BY DE BY VALUE BY ISN 3. TWO SUCCESSIVE UI BLOCKS MAY NOT BE IN SEQUENCE. 4. DE-VALUEs ARE COMPRESSED 5. RABN PTR IS TO LOWER BLOCK WHOSE FIRST ELEMENT CONTAINS THIS DE-VALUE/ISN 6. MULTIPLE LEVELS OF UI BLOCKS ARE POSSIBLE 34
DE VALUES SPANNING BLOCKS MI ADAM 0 NI NI NI ADAM 12345 BAKER 128 ADAM 700 1, 4, 6, 20, 111, 222, . . . ADAM 2 12345, 50000 ANSEL 1 , 12000 PAD 12 PAD ? ? ? ? HISTOGRAM MAY READ MULTIPLE NI BLOCKS 35
DE VALUES SPANNING BLOCKSMAX 832 ISNs/BLK (3390, 3 b ISN) MI/NI ESTIMATION ISN IF MI: ADAM 0 ISN BAIN ISN IF MI: ADAM 0 0 MAX ISNQ FOR ADAM IS ? ? ISN BAIN ISN IF MI: ADAM 0 0 MAX ISNQ FOR ANSEL IS ? ? ISN ADAM 12345 BAIN 0 MAX ISNQ FOR ADAM IS ? ? ISN IF MI: ADAM 0 ISN BAIN 12345 BURK 0 MAX ISNQ FOR BAIN IS ? ? 36
UPDATING INVERTED LISTS UI MI UI MD MD NI MD MX NY MI MD MD NI MD MX NY MX 50/50 BLOCK SPLIT UPDATE NEXT HIGHEST 37
UPDATING INVERTED LISTS EXAMPLE DE=INVOICE NO. INVOICES A. SORTED ASCENDING BY INVOICE NO. B. SORTED DESCENDING BY INVOICE NO. READ WORK FILE STORE CUSTOMER-FILE 38
FIC (FORWARD INDEX COMPRESSION ADABAS 7 OPTION AT FILE LEVEL DONE AT FILE LOAD OR REORDER FIC ONLY WITHIN BLOCK 40 -60% ASSO SAVINGS FASTER READS OF INVERTED LISTS / ASSOCIATOR NO FIC 6 BARKER 6 BARNES 6 BARNEY 4 BARR 7 BARRETT 4 BARRY 7 0 BARKER 4 3 NES 25 Y 23 R 4 4 ETT 24 Y 33 BYTES 21 BYTES 39
WORK OVERVIEW I ADARUN LP= USED FOR: BACKOUTS, AUTORESTART CONTAINS: BEFORE/AFTER IMAGES OF RECORDS DVTs (DESCRIPTOR VALUE TABLE) ET, BUFFER FLUSHES, etc. TOO SMALL: RSP CD 9 – 15 , 8 II ADARUN LWKP 2= (or FORMULA) USED FOR: COMPLEX FINDS CONTAINS: INTERMEDIATE ISN AND BIT STRINGS TOO SMALL: DELAYED FINDS, RSP. CD 74 III WORKSIZE – LP – LWKP 2 USED FOR: RESULTANT ISN LISTS CONTAINS: RESULTANT ISN LISTS TOO SMALL: RSP. CD 73 300 -1200 CYLS 40
INTERNALS OVERVIEW AGAIN CMD. Q. TBQ NC=20 -200 TBI THREADS NT=5 -30 USR-CID-INFO CQE SELECT LQ=20 -400 K WORK POOL USER. Q LS= SECURITY POOL BUFFER POOL LWP=1 -5 M ASSO FCB LCP= LFP=. 5 -5 M ATTACHED BUFFERS HOLD. Q FORMAT POOL LI=20 -100 K USR-CID-INFO NU=200 -3000 NAB=20 -200 USR-CID-INFO LBP=30 -100 M DATA WORK FDT PART 2 NH=4 K-60 K UI PART 3 RECs BLKSIZE=5724 MI UQ DE POOL LDEUQP= NI PLOGS AC BLKSIZE=2544 BLKSIZE=5724 BLKSIZE=5064 41
GLOSSARY OF P, T, Q ADARUN NAME-DEFINITION RC NC NAB NT NU NH (CQ)COMMAND QUEUE- DB CALLS IN TRANSIT (WAIT, IN, RETURN ATTACHED BUFFERS – USER BUFFERS PER CQ ELEMENT THREADS – WHERE CMD IS ACTUALLY EXECUTED (UQ) USER QUEUE – ONE ELEMENT PER USER (HQ) HOLD QUEUE – FILE/ISNS ON HOLD 151 255 LQ (TBQ) TABLE OF SEQUENTIAL COMMANDS – FOR L 3/6, L 2/5, L 9 BY USER-CID, POINTER FOR USER SEQUENTAIL PROCESS 70 LI (TBI) TABLE OF RESULTANT ISN LISTS – FOR Sx, L 1/4 BY USER-CID 71 LWP LFP LBP LDEUQP LCP WORK POOL – PER THREAD, WORK AREA FOR COMMANDS (FP)FORMAT POOL – INTERNAL FORMAT BUFFERS, BY USER-CID IO BUFFER POOL – MOST FREQUENT ASSO/DATA BLOCKS UNIQUE DESCRIPTOR POOL – IN FLIGHT UPDATED UQ DEs SECURITY POOL 88 42 42 72 9 -1 197 204
OTHER KEY ADARUNS SPACE/COUNT LIMITS ADARUN NAME-DEFINITION NQCID RC MAX CIDs PER USER 46 NISNHQ MAX FNR/ISNs ON HOLD PER USER NSISN MAX ISNs PER ENTRY IN TBI (ISN LIST) TABLE LU MAX SPACE FOR USER BUFFERS ON A COMMAND (64 K) LS MAX SPACE FOR WORK POOL (LWP) ON A COMMAND 47 152 1 SWITCHES NONDES ARE NON DESCRIPTOR SEARCHES ALLOWED? 68 43
OTHER KEY ADARUNS (cont) TIMERS ADARUN NAME-DEFINITION RC TT TRANSACTION TIME LIMIT 9 -2 TNAE NON-ACTIVITY TIME LIMIT FOR ET USERS 9 -3 TNAX NON-ACTIVITY TIME LIMIT FOR EXU USERS 9 -3 TNAA NON-ACTIVITY TIME LIMIT FOR ACCESS ONLY USERS 9 -3 CT COMMAND NOT RETURNED TO USER WITHIN TIME 254 TLSCMD TIME LIMIT EXCEEDED FOR SEARCH/FIND COMMAND 7 44
FB, IFB, (DE)COMPRESSION FORMAT BUFFER, INTERNAL FORMAT BUFFER I. IFB USER FB BB, CC, AA. CPU HD BB CC AA TRANSLATE ( IFB Len = 60 + 24*F ) II. IFB HD BB CC AA USER RB CPU DE. COMPRESS BB-VALUE, CC-VAL. , AA-VAL. AA-BB-CC-DD---DS COMPRESSED RECORD 45
FB, IFB, (DE)COMPRESSION FORMAT TRANSLATION CAN BE CPU INTENSIVE COMPRESSION/DECOMPRESSION CAN BE CPU INTENSIVE 1. FIELD SEQUENCE DOES NOT MATTER 2. IN FILE DESIGN: FREQUENTLY USED FIELDS SHOULD BE UP FRONT (DECOMPRESS/COMPRESS UP TO LAST FIELD IN IFB) 3. LIMIT VIEWS TO JUST DESIRED FIELDS 46
FB, IFB, (DE)COMPRESSION 3. LIMIT VIEWS TO JUST DESIRED FIELDS EXAMPLE CASE 1 SPECIFIC CASE 2 GENERIC 20 FIELD VIEW 214 FIELD VIEW INCREASE BUFFER LENGTH ELAPSED TIME 115 BYTES 1718 BYTES 9. 4 MIN. 14. 7 MIN. 56% USER CPU ----- 90% DATABASE CPU ----- 70% 47
FB, IFB, GFID, LFP. . . GLOBAL FORMAT ID, Le FORMAT POOL USER FB CPU IFB FORMAT POOL CPU TRANSL. SCAN OVERWRITES IF CID /= 0/b (AND NO GFID) IFB STORED IN LFP FOR RE-USE ONE IFB / VIEW / USER IF GFID, GLOBAL IFB STORED IN LFP FOR RE-USE ONE IFB / VIEW 48
FB, IFB, GFID, LFP IFB IFB IFB UQ IFB GFIDs IFB IFB FORMAT POOL UQE: USER IFBs CHAINED / MOST FREQUENT IFBs IN UQE GFIDs CHAINED USE CID TO SAVE ON FORMAT TRANSLATIONS RELEASE CIDs (RC) WHEN DONE USE GFIDs FOR COMMON VIEWS DO NOT USE GFIDs FOR VIEWS RARELY USED 49
NATURAL GFID DEFAULT: RUN SOURCE => NO GFID EX OBJECT => GFID OPTION: 0010 OPTIONS GFID=OFF USE ON LOW-SHARE PROGRAMS 50
COMMAND PROCESSING COMMON USAGE CMD L 2/5 L 3/6 L 9 L 1/4 RC UPD Sx HI/RI OP/CL ET BT FCB UI-n X X X IO STRUCTURES MI X X NI X X AC DS X X X MEMORY W 1 W 2 W 3 TBQ TBI LWP HQ X X X ? ? X X X ? ? X ? ? X ? ? ? X ? X X X – USED ? – MAY USE 51
COMMAND PROCESSING NOTES 1. UI-n - MAY BE MULTIPLE IO DEPENDING ON INDEX LEVELS 2. W 1, W 2, W 3 - PARTS OF WORK DATASET 3. DS - (DE)COMPRESSION OF RECORD REQUIRES IFB, FDT, FP 4. LWP – SCRATCH AREA FOR ALL COMMANDS (DVT, IFB, etc), X ONLY IF USER MAY BE OVER 32 K 5. HQ ? – USED IF REQUEST TO PUT REC ON HOLD (L 5, L 6, L 4, S 4) 6. UPD – COMMANDS MAY BE A 1, E 1, N 1/N 2 7. Sx - COMMANDS MAY BE S 1, S 2, S 4, S 8, S 9 8. ET/BT, OP/CL – ASSUME RESTART DATA NOT BEING USED 52
CMD PROC. RC TBQ CID RELEASE CID TBI RESOURCES IFB IF CID IS: Blanks -- TBQ, TBI, FP X NON-ZERO CID ONLY III FP IF COPT 1/2 IS: X’ 0000’ ALL X’ 4040’ USER CIDs NON-BLANK THIS W F -- FP I -- TBI S -- TBS G -- TBQ, TBI, FP >= X -- TBQ, TBI >= NOTE: FOR OTHER OPTIONS (eg. GFIDs) SEE MANUAL 53
CMD PROC. UPDs USES BEFORE/AFTER IMAGE (BI/AI) OF DS COMPRESSED RECORD DVT – DESCRIPTOR VALUE TABLE FIRST, BUILD DS AI. IF DS BI = DS AI, THEN NO UPDATE, RSP. CD=0 ELSE: SECOND, BUILD BI/AI FOR DVT ENTRIES ONLY FOR CHANGED DESCRIPTOR VALUES NOTE: ET/BT, NO WORK IF NO CHANGES 54
CMD PROC. UPDs EXAMPLE BATCH JOB 2 MILLION RECORD FILE 1 MILLION UPDATES ZERO UPDATES ON PLOG ? ? 55
ANALYZE CODE APPLICATION ADABAS NATURAL DDLOG COMMAND LOGS APAS/INSIGHT REVIEW TRIM HOMEGROWN + ADABAS IO + ADABAS DURATION + SQL, DIRECT CALLS, etc 56
DDLOG TEST DBLOG ON TEST DBLOG OFF Code TEST DBLOG SHOW TEST DBLOG MENU Function Code. . Command. . DBID. . . Low Resp. B Begin Logging of ADABAS Commands E End and Display Log Records S Snapshot of Specific ADABAS Commands. Exit _ B __ Skip. . . . _____ Program. . _____ FNR. . . . _____ Line from. . 0000 _____ High Resp. . 9999_ Line to. . 0000 Optional Buffers for Code B FB. . X _ RB. . _ SB. . X_ VB. . _ IB. . _ 57
DDLOG 0010 FIND DAFILE CODE= 'GN 13' 0020 DISPLAY *ISN ABFLD CODE RLFLD 0030 END M No Cmd DB FNR Rsp ISN _ 1 RC _ 2 S 1 168 241 787 _ 3 L 1 168 241 3113 _ 4 L 1 168 241 8598 _ 5 L 1 168 241 10765 _ 6 L 1 168 241 13091 _ 7 L 1 168 241 18576 _ 8 RC 168 241 _ 9 RC 168 _ 10 RC ISQ 6 CID(Hex) 0000 ? ? ? 00100101 ? ? ? 00100101 00000000 M: C-CONTROL BLOCK F-FORMAT BUFFER R-RECORD BUFFER S-SEARCH BUFFER V-VALUE BUFFER I-ISN BUFFER OP Pgm F ATEST POOLTEST N POOLTEST N POOLTEST SI POOLTEST F POOLTEST Line 6360 0010 0010 0030 58
DDLOG M: C-CONTROL BLOCK _ SEQ NO. . 2 PROGRAM. . POOLTEST LINE. . 0010 Command Code. . S 1 Command ID. . . 00100101 CB Start. . . 00 D 5 Response Code. 0000 ISN. . 787 FNR first. . 00 ISN Low Limit. ISN Quantity. 6 FNR last. . . F 1 FB Length. . . 001 B RB Length. . 000 D SB Length. . 0007 VB Length. . . 0004 IB Length. . 0004 Command Opts. . Additions 1. . . 40404040 Command Time. . 00000014 Additions 2. . . ? ? 0209000 D User Area. . . 0000 Additions 3. . . 00000000 Additions 4. . . 00000000 Global FID. . F 8 B 848 F 2 D 73609 F 1 59
DDLOG M: S-SEARCH BUFFER _ Seq No. . 2 Search Buffer 0000 * C 1 C 46 BF 4 6 BC 14 B 00 00000000 * AD, 4, A. 0010 * 00000000 * * * M: F-FORMAT BUFFER _ Seq No. . 2 Format Buffer 0000 * C 1 C 26 BF 0 F 0 F 36 BD 7 6 BC 1 C 46 B F 0 F 0 F 46 B * AB, 003, P, AD, 004, * 0010 * C 16 BD 9 D 3 6 BF 0 F 0 F 6 6 BE 44 B 00 0000 * A, RL, 006, U. * 60
ANALYZE CODE TEST FOR EACH NEW RELEASE OF ADABAS AND NATURAL 61
- Slides: 61