Try OpenEdge Now
skip to main content
Database Administration
Reference : PROUTIL Utility : PROUTIL CHANALYS qualifier
 

PROUTIL CHANALYS qualifier

Displays information about the index delete change, and the free and record manager (RM) chains. It calculates the number of blocks found both in the free chain and in the RM chain.

Syntax

proutil db-name -C chanalys [ area area-name ]
     [ tenant tenant-name| group group-name| shared ]
[ -scan ][-csoutput [ -fieldsep sep-value]
[ -csfilePrefix pref-name ][ -verbose ]]

Parameters

db-name
Specifies the database you are using.
area area-name
Specifies that CHANALYS is to be performed on the area-name area only.
tenant tenant-name
Specifies that CHANALYS is to be filtered to only provide information related to objects that are owned by tenant-name. If tenant-name is not valid, CHANALYS exits with an error. Specifying tenant is only allowed on databases enabled for multi-tenancy.
group group-name
Specifies that CHANALYS is to be filtered to only provide information related to objects that are owned by group-name. If group-name is not valid, CHANALYS exits with an error. Specifying group is only allowed on databases enabled for multi-tenancy.
shared
Specifies that CHANALYS is to be filtered to only provide information related to shared objects. Specifying shared is only allowed on databases enabled for multi-tenancy.
-scan
Specifies that CHANALYS is to perform RM-chain analysis with minimal locking (does not turn on table locks). This option should be used when you are concerned that the locking required for a full analysis will be a significant performance impact. The information displayed may be incomplete because the chain can be changing while the analysis is being performed.
The following aspects of chain analysis are omitted with this option:
*Verification that each block is below the high-water mark.
*Verification that each block appears on the chain only once.
*Verification that the object block's reported count matches the chain length (values may not agree because of the reduced locking).
*Verification that the block is the correct type (RM block for RM chain, index block for index chain).
*Verification of cluster pointers.
-csoutput
Specifies that CHANALYS output the analysis data to text files in addition to the screen. The result is that the following files are created:
*db-name .ch.txt — For chain analysis output
*db-name .block.txt — For block analysis output
For more information about the contents of the files, see the Database analysis output.
-fieldsep sep-value
When -csoutput is specified, sep-value indicates the value to separate the columns of output. A space is used by default. Accepted values for sep-value are:
*Any ASCII character between 0x21 and 0x7E
*sp — to denote a space (the default)
*tab — to denote a the TAB character (<\t> or ASCII character 0x09)
-csfilePrefix pref-name
When -csoutput is specified, pref-name indicates a file name prefix. The database name is used by default. All remaining elements of the file name are not customizable.
-verbose
When -csoutput is specified, the first row of the output files contains header names for each column of output.

Output format

The chain analysis report appears in internal storage order (as stored in the object block for the area) with a column to identify Partition/Tenant/Group. The format of this column is as follows: type:name:id where type is P for Partition, T for Tenant, or G for Group; name is the partition name, tenant name, or group name; and id is the partition-id, tenant-id, or group-id. The column is blank if there is no partition, tenant, or group.

Example

The following is a sample of PROUTIL CHANALYS output.

CHAIN ANALYSIS FOR AREA "tpArea2": 11
----------------------------------------------------------

FREE CLUSTER CHAIN ANALYSIS
---------------------------

0 cluster(s) found in the free cluster chain.


FREE CHAIN ANALYSIS
-------------------

LIST OF FREE CHAIN BLOCKS
next
dbkey free
448 0

Number of Object Object Partition/Tenant/Group
Blocks Type
---------------------------------------------------------------------------------------------
1 Master --:0
0 Table PUB.tpOrder-Line:1
LIST OF FREE CHAIN BLOCKS
next
dbkey free
1472 0
1 Index PUB.tpOrder-Line.tpOrder-Line:8
LIST OF FREE CHAIN BLOCKS
next
dbkey free
1856 1920
1920 1984
1984 0
3 Index PUB.tpInvoice.tpCustNum:15
0 Table PUB.tpOrder:5
LIST OF FREE CHAIN BLOCKS
next
dbkey free
2880 2944
2944 3008
3008 0
3 Index PUB.tpItem.tpItem-Num:23
LIST OF FREE CHAIN BLOCKS
next
dbkey free
3392 3456
3456 3520
3520 0
3 Index PUB.tpItem.tpCat-Description:24
LIST OF FREE CHAIN BLOCKS
next
dbkey free
3904 3968
3968 4032
4032 0
3 Index PUB.tpItem.tpItem-Name:25
LIST OF FREE CHAIN BLOCKS
next
dbkey free
4416 4480
4480 4544
4544 0
3 Index PUB._Partition-Policy-Detail._Partition-Internal-Value:-1558
P:PUB.tpInvoice:3

LIST OF FREE CHAIN BLOCKS
next
dbkey free
4928 4992
4992 5056
5056 0
3 Index PUB._Partition-Policy-Detail._Partition-Internal-Value:-1558
P:PUB.tpLargeField:4
0 Table PUB.tpCustomer:2 P:CustomerQtr1:1
0 Blob PUB.tpCustomer.CustBlob1:5 P:CustomerQtr1:1
0 Blob PUB.tpCustomer.CustBlob2:6 P:CustomerQtr1:1
0 Blob PUB.tpCustomer.CustClob1:7 P:CustomerQtr1:1
LIST OF FREE CHAIN BLOCKS
next
dbkey free
7488 7552
7552 7616
7616 0
3 Index PUB.tpInvoice.tpInvoiceNum:14 P:InvoiceQtr1:1
0 Table PUB.tpLargeField:4 P:LrgFldQtr1:1

RM CHAIN ANALYSIS
---------------------------

LIST OF RM CHAIN BLOCKS
free # free
dbkey space slots hold
89152 6519 22 0
89216 8124 64 0
89280 8124 64 0
89344 8124 64 0
89408 8124 64 0
89472 8124 64 0
89536 8108 64 0

Number of Object Object Partition/Tenant/Group
Blocks Type
---------------------------------------------------------------------------------------------
7 Table PUB.tpOrder-Line:1
LIST OF RM CHAIN BLOCKS
free # free
dbkey space slots hold
88128 5097 14 0
88192 8124 64 0
88256 8124 64 0
88320 8124 64 0
88384 8124 64 0
88448 8124 64 0
88512 8108 64 0
7 Table PUB.tpOrder:5
LIST OF RM CHAIN BLOCKS
free # free
dbkey space slots hold
92736 7027 62 0
92800 8124 64 0
92864 8124 64 0
92928 8124 64 0
92992 8124 64 0
93056 8124 64 0
93120 8108 64 0
5568 228 44 1
5440 242 40 1
5504 226 40 1
92672 699 51 0
11 Table PUB.tpCustomer:2 P:CustomerQtr1:1
LIST OF RM CHAIN BLOCKS
free # free
dbkey space slots hold
65920 8124 64 0
65856 8124 64 0
65792 8112 63 1
65664 8124 64 0
65600 8124 64 0
65536 8096 63 1
42880 8124 64 0
.
.
.
76672 456 63 0
37120 328 49 1
31872 3697 20 1
71296 316 51 1
133 Blob PUB.tpCustomer.CustBlob1:5 P:CustomerQtr1:1
LIST OF RM CHAIN BLOCKS
free # free
dbkey space slots hold
84352 8112 63 1
84224 8124 64 0
.
.
.
56768 319 55 1
11200 332 56 1
12992 319 55 1
311 Blob PUB.tpCustomer.CustBlob2:6 P:CustomerQtr1:1
LIST OF RM CHAIN BLOCKS
free # free
dbkey space slots hold
31040 8112 63 1
30784 8112 63 1
.
.
.
59264 337 61 1
62016 305 61 1
62272 337 61 1
159 Blob PUB.tpCustomer.CustClob1:7 P:CustomerQtr1:1
LIST OF RM CHAIN BLOCKS
free # free
dbkey space slots hold
92544 8112 63 1
91776 1418 63 0
.
.
.
93184 1418 63 0
90240 1418 63 0
42 Table PUB.tpLargeField:4 P:LrgFldQtr1:1

INDEX DELETE CHAIN ANALYSIS
---------------------------


Number of Object Object Partition/Tenant/Group
Blocks Type
---------------------------------------------------------------------------------------------
0 Index PUB.tpOrder-Line.tpOrder-Line:8
0 Index PUB.tpInvoice.tpCustNum:15
0 Index PUB.tpItem.tpItem-Num:23
0 Index PUB.tpItem.tpCat-Description:24
0 Index PUB.tpItem.tpItem-Name:25
0 Index PUB._Partition-Policy-Detail._Partition-Internal-Value:-1558
P:PUB.tpInvoice:3
0 Index PUB._Partition-Policy-Detail._Partition-Internal-Value:-1558
P:PUB.tpLargeField:4
0 Index PUB.tpInvoice.tpInvoiceNum:14 P:InvoiceQtr1:1