You are on page 1of 62

SELECT

/*

[NAME]

- HANA_Configuration_MiniChecks_SSS

[DESCRIPTION]

- General SAP HANA checks

[SOURCE]

- SAP Note 1969700

[DETAILS AND RESTRICTIONS]

- Has worked on revision 58, simplification might required for earlier revisions
- Certain statisticsserver related checks have to be performed differently for SSS
and ESS
- Long runtimes might be linked to TABLES_MOVED_LOCALLY check

[VALID FOR]

- Revisions: all
- Statistics server type: SSS

[SQL COMMAND VERSION]

- 2014/04/13: 1.0 (initial version)


- 2014/05/09: 1.1 (grouping of checks)

[INVOLVED TABLES]

- various

[INPUT PARAMETERS]

- HOST

Host name

'saphana01' --> Specic host saphana01


'saphana%' --> All hosts starting with saphana
'%' --> All hosts

- ONLY_POTENTIALLY_CRITICAL_ISSUES

Possibility to restrict the output to potentially critical issues

'X' --> Output only contains issues that can potentially indicate a
problem
' ' --> no output restriction

- MAX_VALUE_LENGTH

Maximum length of VALUE output column

48 --> Maximum length of 48 characters


-1 --> no length limitation

- ORDER_BY

Sort criteria (available values are provided in comment)

'HOST' --> Sorting by host name


'CHECK' --> Sorting by check identifier (CHID column)

[OUTPUT PARAMETERS]

- CHID: Check identifier (defined and used by this Mini Check command)
- DESCRIPTION: Check description
- HOST: Host name (empty if not host specific)
- VALUE: Check value found on the system
- EXPECTED_VALUE: Expected check values
- C: 'X' if value found on the system is outside of the expected
values (indication for potentially critical problem)
- SAP_NOTE: SAP Note

[EXAMPLE OUTPUT]

-----------------------------------------------------------------------------------
-------------------------------------------------------------------
|CHID |DESCRIPTION |HOST |VALUE
|EXPECTED_VALUE |C|DETAILS |
-----------------------------------------------------------------------------------
-------------------------------------------------------------------
|**** |GENERAL | |
| | | |
| | | |
| | | |
| 10|Analysis date | |2014/05/30
12:27:35 | | | |
| 11|Database name | |HP1
| | | |
| 12|Revision level | |1.00.74.00.390550
(NewDB100_REL) | | | |
| 110|Everything started | |yes
|yes | | |
| 111|Startup time variation (s) | |1108
|<= 600 |X| |
| 120|License usage (%) | |72
|<= 95 | | |
| 121|License expiration (days) | |never
|>= 100 | |SAP Note 1644792|
| 130|Database log mode | |normal
|normal | | |
| 140|Time since statistics server run (s) | |26
|<= 3600 | | |
| | | |
| | | |
|**** |OPERATING SYSTEM | |
| | | |
| | | |
| | | |
| 210|Minimum CPU rate (MHz) |saphana20|2395
|>= 1100 | |SAP Note 1890444|
| | |saphana21|2395
|>= 1100 | |SAP Note 1890444|
| 211|Different CPU rates | |no
|no | |SAP Note 1890444|
| 220|Current CPU utilization (%) |saphana20|66
|<= 80 | | |
| | |saphana21|1
|<= 80 | | |
| 221|Time since CPU utilization > 95 % (h) |saphana20|49.64
|>= 12.00 | | |
| 230|Current memory utilization (%) |saphana20|50
|<= 90 | | |
| | |saphana21|1
|<= 90 | | |
| 231|Time since memory utilization > 95 % (h) | |never
|>= 12.00 | | |
| 240|Current swap utilization (GB) |saphana20|0
|0 | | |
| | |saphana21|0
|0 | | |
| 241|Time since swap utilization > 1 GB (h) | |never
|>= 480 | | |
| 250|Max. used disk size (%) | |30
|<= 90 | | |
| | |saphana20|30
|<= 90 | | |
| | |saphana21|30
|<= 90 | | |
| 260|Open files limit (OS) |saphana20|1048576
|>= 100000 | |SAP Note 1771873|
| | |saphana21|1048576
|>= 100000 | |SAP Note 1771873|
| | | |
| | | |
|**** |I/O | |
| | | |
| | | |
| | | |
| 310|I/O read throughput data min. (MB/s, last day) |saphana20|41
|>= 30 | | |
| 311|I/O read throughput data avg. (MB/s, last day) |saphana20|345
|>= 150 | | |
| 315|I/O write throughput data min. (MB/s, last day)|saphana20|50
|>= 30 | | |
| 316|I/O write throughput data avg. (MB/s, last day)|saphana20|170
|>= 150 | | |
| 320|I/O read throughput log min. (MB/s, last day) |saphana20|3152
|>= 50 | | |
| 321|I/O read throughput log avg. (MB/s, last day) |saphana20|4030
|>= 100 | | |
| 325|I/O write throughput log min. (MB/s, last day) |saphana20|16
|>= 10 | | |
| 326|I/O write throughput log avg. (MB/s, last day) |saphana20|16
|>= 20 |X| |
| 330|Max. trigger read ratio (data) |saphana20|0.67
|<= 0.50 |X|SAP Note 1930979|
| 331|Max. trigger write ratio (data, log) |saphana20|0.01
|<= 0.50 | |SAP Note 1930979|
| 340|Log switch wait count ratio (%) |saphana20|0
|<= 1 | | |
| 341|Log switch race count ratio (%) |saphana20|0
|<= 1 | | |
| 350|Crit. savepoint phases > 10 s (last day) |saphana20|0
|0 | | |
| 351|Crit. savepoint phase avg. (s, last day) |saphana20|2.41
|<= 2.00 |X| |
| 352|Crit. savepoint phase max. (s, last day) |saphana20|6.54
|<= 10.00 | | |
| 355|Time since last savepoint (s) |saphana20|159
|<= 900 | | |
| 360|Number of failed I/O reads |saphana20|0
|0 | | |
| 361|Number of failed I/O writes |saphana20|0
|0 | | |
| | | |
| | | |
|**** |MEMORY | |
| | | |
| | | |
| | | |
| 410|Allocation limit used (%) |saphana20|37
|<= 80 | | |
| | |saphana21|0
|<= 80 | | |
| 420|Heap areas larger than 50 GB
|saphana20|Pool/PersistenceManager...DefaultLPA/Page (58 GB)|none |X|SAP
Note 1840954|
| |
|saphana20|Pool/RowEngine/QueryExecution (66 GB) |none |X|SAP
Note 1840954|
| | |saphana20|Pool/Statistics
(55 GB) |none |X|SAP Note 1840954|
| 430|Number of column store unloads (last day) | |0
|0 | | |
| 431|Time since last column store unload (days) |saphana20|45.72
|>= 5.00 | | |
| | | |
| | | |
|**** |TABLES | |
| | | |
| | | |
| | | |
| 510|Tables with > 100 partitions | |0
|0 | | |
| 520|Tables / partitions exceeding 1 billion rows | |none
|none | | |
| 530|Shared memory row store size (GB) |saphana20|119
|<= 500 | |SAP Note 1963779|
| 535|Row store (> 10 GB) fragmentation (%) |saphana20|19
|<= 30 | |SAP Note 1813245|
| 540|Delta merges > 200 s (last day) |saphana20|42
|0 |X| |
| 541|Failing delta merges (last day) |saphana20|0
|0 | | |
| 542|Tables with delta storage > 5 GB | |KONV (6.98 GB)
|none |X| |
| 543|Tables with > 1 Mio. and > 90 % of delta rows | |ZRB04 (1552842
rows, 100 %) |none |X| |
| | | |
| | | |
|**** |TRACES, DUMPS and LOGS | |
| | | |
| | | |
| | | |
| 612|Performance trace enabled | |no
|no | |SAP Note 1787489|
| 614|SQL trace enabled | |no
|no | | |
| 616|Indexserver python trace enabled | |no
|no | |SAP Note 1935113|
| 617|Executor python trace enabled | |no
|no | |SAP Note 2020877|
| 618|Minimum expensive SQL trace threshold (ms) | |1000
|>= 1000 | | |
| 620|Existence of modified trace settings | |yes
|no |X| |
| 630|Number of tracefiles (total) |saphana20|586
|<= 100 |X| |
| | |saphana21|368
|<= 100 |X| |
| 631|Number of tracefiles (last day) |saphana20|15
|<= 30 | | |
| | |saphana21|5
|<= 30 | | |
| 632|Size of tracefiles (GB, total) |saphana20|5.53
|<= 6.00 | | |
| | |saphana21|6.60
|<= 6.00 |X| |
| 633|Size of tracefiles (GB, last day) |saphana20|0.21
|<= 1.00 | | |
| | |saphana21|0.00
|<= 1.00 | | |
| 635|Number of OOM tracefiles (last day) |saphana20|0
|0 | | |
| | |saphana21|0
|0 | | |
| 640|Number of crash dumps (last day) |saphana20|0
|0 | | |
| | |saphana21|0
|0 | | |
| 645|Number of RTE dumps (last day) |saphana20|0
|0 | | |
| | |saphana21|0
|0 | | |
| | | |
| | | |
|**** |ALERTS AND EVENTS | |
| | | |
| | | |
| | | |
| 710|Open alerts | |1 High, 10 Medium,
12 Low |not like %High%|X| |
| 711|Failure retrieving alerts | |no
|no | | |
| 715|Number of alert checks not executed as expected| |0
|0 | | |
| 720|Events without acknowledgement | |0
|0 | | |
| | | |
| | | |
|**** |TRANSACTIONS AND THREADS | |
| | | |
| | | |
| | | |
| 810|MVCC versions in row store |saphana20|19756
|<= 1000000 | | |
| 811|Age of transaction blocking MVCC (s) | |26
|<= 10800 | | |
| 820|Oldest active transaction (s) |saphana20|179473
|<= 36000 |X| |
| 830|Active commit ID range |saphana20|13235
|<= 3000000 | | |
| 840|Active update transaction ID range |saphana20|883670
|<= 3000000 | | |
| 841|Oldest active update transaction (s) |saphana20|1648
|<= 10800 | | |
| | | |
| | | |
|**** |BACKUP | |
| | | |
| | | |
| | | |
| 910|Age of last data backup (days) | |0.63
|<= 1.20 | | |
| 911|Age of last data backup error (days) | |4.63
|>= 1.20 | | |
| 915|Max. duration of data backup (h, last week) | |5.33
|<= 6.00 | | |
| 916|Avg. duration of data backup (h, last week) | |3.62
|<= 4.00 | | |
| 920|Age of last log backup (days) | |0.00
|<= 1.00 | | |
| 921|Age of last log backup error (days) | |59.90
|>= 1.00 | | |
| 930|Automatic log backup | |yes
|yes | | |
| | | |
| | | |
|**** |LOCKS | |
| | | |
| | | |
| | | |
| 1010|Age of oldest active lock wait (s) | |0
|<= 60 | | |
| 1011|Lock wait durations > 600 s (last day) | |0
|0 | | |
| 1020|Threads currently waiting for locks | |20
|<= 40 | | |
| | | |
| | | |
|**** |SQL | |
| | | |
| | | |
| | | |
| 1110|SQL statement allocating > 1 session (last day)| |
6ea8ae87f49702463799a8a2a51d840c (1.10 sessions) |none |X|
|
| 1115|Longest running current SQL statement (s) | |24
|<= 600 | | |
| 1120|Exp. stmt. trace: SQL running > 1 h (last day) | |0
|0 | | |
| 1130|SQL cache evictions / h |saphana20|5829
|<= 1000 |X| |
| | | |
| | | |
|**** |APPLICATION | |
| | | |
| | | |
| | | |
| 1210|DDLOG sequence cache size | |1
|>= 2 |X|SAP Note 1977214|
| | | |
| | | |
|**** |SECURITY | |
| | | |
| | | |
| | | |
| 1310|Secure store (SSFS) status |saphana20|available
|available | | |
| | |saphana21|available
|available | | |
| 1320|Number of users with activated auditing | |0
|0 | | |
-----------------------------------------------------------------------------------
-------------------------------------------------------------------

*/

CASE
WHEN NAME = 'BLANK_LINE' THEN ''
WHEN NAME = 'INFO_LINE' THEN '****'
WHEN ONLY_POTENTIALLY_CRITICAL_RESULTS = 'X' OR ROW_NUM = 1 OR ORDER_BY =
'HOST' THEN LPAD(CHECK_NUM, 5)
ELSE ''
END CHID,
CASE WHEN ONLY_POTENTIALLY_CRITICAL_RESULTS = 'X' OR ROW_NUM = 1 OR ORDER_BY =
'HOST' THEN DESCRIPTION ELSE '' END DESCRIPTION,
IFNULL(HOST, '') HOST,
MAP(VALUE, '999999', 'never', NULL, 'n/a',
CASE WHEN MAX_VALUE_LENGTH = -1 OR LENGTH(VALUE) <= MAX_VALUE_LENGTH THEN VALUE

ELSE SUBSTR(VALUE, 1, VALUE_FRAGMENT_LENGTH) || '...' || SUBSTR(VALUE,


LENGTH(VALUE) - (VALUE_FRAGMENT_LENGTH - 1), VALUE_FRAGMENT_LENGTH) END) VALUE,
CASE
WHEN EXPECTED_OP = 'any' THEN ''
WHEN EXPECTED_OP = '=' THEN EXPECTED_VALUE
WHEN EXPECTED_OP = 'like' THEN EXPECTED_OP || CHAR(32) || CHAR(39) ||
EXPECTED_VALUE || CHAR(39)
ELSE EXPECTED_OP || CHAR(32) || EXPECTED_VALUE
END EXPECTED_VALUE,
POTENTIALLY_CRITICAL C,
LPAD(SAP_NOTE, 8) SAP_NOTE
FROM
( SELECT
CC.CHECK_NUM,
CC.NAME,
CC.DESCRIPTION,
C.HOST,
C.VALUE,
CC.SAP_NOTE,
CC.EXPECTED_OP,
CC.EXPECTED_VALUE,
CASE
WHEN CC.EXPECTED_OP = 'any' OR UPPER(C.VALUE) = 'NONE'
THEN ' '
WHEN CC.EXPECTED_OP = 'not' AND LPAD(UPPER(C.VALUE), 100) =
LPAD(UPPER(CC.EXPECTED_VALUE), 100) THEN 'X'
WHEN CC.EXPECTED_OP = '=' AND LPAD(UPPER(C.VALUE), 100) !=
LPAD(UPPER(CC.EXPECTED_VALUE), 100) THEN 'X'
WHEN CC.EXPECTED_OP = '>=' AND LPAD(UPPER(C.VALUE), 100) <
LPAD(UPPER(CC.EXPECTED_VALUE), 100) THEN 'X'
WHEN CC.EXPECTED_OP = '>' AND LPAD(UPPER(C.VALUE), 100) <=
LPAD(UPPER(CC.EXPECTED_VALUE), 100) THEN 'X'
WHEN CC.EXPECTED_OP = CHAR(60) || '=' AND LPAD(UPPER(C.VALUE), 100) >
LPAD(UPPER(CC.EXPECTED_VALUE), 100) THEN 'X'
WHEN CC.EXPECTED_OP = CHAR(60) AND LPAD(UPPER(C.VALUE), 100) >=
LPAD(UPPER(CC.EXPECTED_VALUE), 100) THEN 'X'
WHEN CC.EXPECTED_OP = 'like' AND UPPER(C.VALUE) NOT LIKE
UPPER(CC.EXPECTED_VALUE) THEN 'X'
WHEN CC.EXPECTED_OP = 'not like' AND UPPER(C.VALUE) LIKE
UPPER(CC.EXPECTED_VALUE) THEN 'X'
ELSE ''
END POTENTIALLY_CRITICAL,
BI.ONLY_POTENTIALLY_CRITICAL_RESULTS,
BI.MAX_VALUE_LENGTH,
FLOOR(BI.MAX_VALUE_LENGTH / 2 - 0.5) VALUE_FRAGMENT_LENGTH,
BI.ORDER_BY,
ROW_NUMBER () OVER ( PARTITION BY CC.DESCRIPTION ORDER BY C.HOST, C.VALUE )
ROW_NUM
FROM
( SELECT
'REVISION_LEVEL' NAME,
'' HOST,
LTRIM(CASE
WHEN LOCATE(VALUE, '.', 1, 4) - LOCATE(VALUE, '.', 1, 3) = 3 THEN
SUBSTR(VALUE, LOCATE(VALUE, '.', 1, 2) + 1, LOCATE(VALUE, '.', 1, 4) -
LOCATE(VALUE, '.', 1, 2) - 1)
ELSE
SUBSTR(VALUE, LOCATE(VALUE, '.', 1, 2) + 1, LOCATE(VALUE, '.', 1, 3) -
LOCATE(VALUE, '.', 1, 2) - 1) || '.00'
END, '0') VALUE
FROM
M_SYSTEM_OVERVIEW
WHERE
SECTION = 'System' AND
NAME = 'Version'
UNION ALL
( SELECT
'BLANK_LINE',
'',
''
FROM
DUMMY
)
UNION ALL
( SELECT
'INFO_LINE',
'',
''
FROM
DUMMY
)
UNION ALL
( SELECT
'EVERYTHING_STARTED',
'',
LOWER(VALUE)
FROM
M_SYSTEM_OVERVIEW
WHERE
SECTION = 'Services' AND
NAME = 'All Started'
)
UNION ALL
( SELECT
'SLOW_CPU',
HOST,
VALUE
FROM
M_HOST_INFORMATION
WHERE
KEY = 'cpu_clock'
)
UNION ALL
( SELECT
'VARYING_CPU',
'',
CASE WHEN MAX(VALUE) - MIN(VALUE) < 100 THEN 'no' ELSE 'yes' END
FROM
M_HOST_INFORMATION
WHERE
KEY = 'cpu_clock'
)
UNION ALL
( SELECT
'HOST_START_TIME_VARIATION',
'',
TO_VARCHAR(MAX(SECONDS_BETWEEN(MIN_TIME, MAX_TIME)))
FROM
( SELECT
MIN(VALUE) MIN_TIME,
MAX(VALUE) MAX_TIME
FROM
M_HOST_INFORMATION
WHERE
KEY = 'start_time'
)
)
UNION ALL
( SELECT
'PERFORMANCE_TRACE',
'',
MAP(STATUS, 'STOPPED', 'no', 'yes')
FROM
M_PERFTRACE
)
UNION ALL
( SELECT
'LOG_WAIT_RATIO',
HOST,
TO_VARCHAR(ROUND(
CASE
WHEN SUM(SWITCH_NOWAIT_COUNT) + SUM(SWITCH_WAIT_COUNT) = 0 THEN 0
ELSE SUM(SWITCH_WAIT_COUNT) / (SUM(SWITCH_NOWAIT_COUNT) +
SUM(SWITCH_WAIT_COUNT)) * 100 END ) )
FROM
M_LOG_BUFFERS
GROUP BY
HOST
)
UNION ALL
( SELECT
'LOG_RACE_RATIO',
HOST,
TO_VARCHAR(ROUND(
CASE
WHEN SUM(SWITCH_NOWAIT_COUNT) + SUM(SWITCH_OPEN_COUNT) = 0 THEN 0
ELSE SUM(SWITCH_OPEN_COUNT) / (SUM(SWITCH_NOWAIT_COUNT) +
SUM(SWITCH_OPEN_COUNT)) * 100 END ) )
FROM
M_LOG_BUFFERS
GROUP BY
HOST
)
UNION ALL
( SELECT
'OPEN_ALERTS_HIGH',
'',
TO_VARCHAR(COUNT(*))
FROM
_SYS_STATISTICS.STATISTICS_CURRENT_ALERTS
WHERE
ALERT_RATING = 4
)
UNION ALL
( SELECT
'OPEN_ALERTS_ERROR',
'',
TO_VARCHAR(COUNT(*))
FROM
_SYS_STATISTICS.STATISTICS_CURRENT_ALERTS
WHERE
ALERT_RATING = 5
)
UNION ALL
( SELECT
'CHECKS_NOT_RUNNING',
'',
TO_VARCHAR(COUNT(*))
FROM
_SYS_STATISTICS.STATISTICS_LAST_CHECKS
WHERE
INTERVAL IS NOT NULL AND
SECONDS_BETWEEN(ALERT_LAST_CHECK_TIMESTAMP, CURRENT_TIMESTAMP) / 2 >
INTERVAL
)
UNION ALL
( SELECT
'OPEN_EVENTS',
HOST,
TO_VARCHAR(SUM(MAP(ACKNOWLEDGED, 'FALSE', 1, 0)))
FROM
DUMMY LEFT OUTER JOIN
M_EVENTS ON
ACKNOWLEDGED = 'FALSE' AND
SECONDS_BETWEEN(CREATE_TIME, CURRENT_TIMESTAMP) >= 1800
GROUP BY
HOST
)
UNION ALL
( SELECT
'OS_OPEN_FILES',
HOST,
LTRIM(MIN(LPAD(VALUE, 20)))
FROM
M_HOST_INFORMATION
WHERE
KEY = 'os_rlimit_nofile'
GROUP BY
HOST
)
UNION ALL
( SELECT
'ROW_STORE_FRAGMENTATION',
IFNULL(HOST, ''),
IFNULL(TO_VARCHAR(ROUND(MAP(ALLOCATED_SIZE, 0, NULL, FREE_SIZE /
ALLOCATED_SIZE * 100))), 'none')
FROM
DUMMY LEFT OUTER JOIN
( SELECT
HOST,
SUM(FREE_SIZE) FREE_SIZE,
SUM(ALLOCATED_SIZE) ALLOCATED_SIZE
FROM
M_RS_MEMORY
WHERE
CATEGORY IN ( 'TABLE' , 'CATALOG' )
GROUP BY
HOST
HAVING
SUM(ALLOCATED_SIZE) >= 10737418240
) ON
1 = 1
)
UNION ALL
( SELECT TOP 1
'ROW_STORE_SIZE',
HOST,
TO_VARCHAR(ROUND(SUM(ALLOCATED_SIZE) / 1024 / 1024 / 1024))
FROM
M_RS_MEMORY
GROUP BY
HOST
ORDER BY
SUM(ALLOCATED_SIZE) DESC
)
UNION ALL
( SELECT
'MVCC_VERSIONS_ROW_STORE',
HOST,
TO_VARCHAR(SUM(TO_NUMBER(VALUE)))
FROM
M_MVCC_TABLES
WHERE
NAME = 'NUM_VERSIONS'
GROUP BY
HOST
)
UNION ALL
( SELECT
'MVCC_REC_VERSIONS_ROW_STORE',
HOST,
TO_VARCHAR(MAX(TO_NUMBER(VALUE)))
FROM
M_MVCC_TABLES
WHERE
NAME = 'MAX_VERSIONS_PER_RECORD'
GROUP BY
HOST
)
UNION ALL
( SELECT
C.NAME,
M.HOST,
MAP(C.NAME,
'ACTIVE_UPDATE_TID_RANGE', TO_VARCHAR(M.CUR_UPDATE_TID -
M.MIN_UPDATE_TID),
'ACTIVE_COMMIT_ID_RANGE', TO_VARCHAR(M.CUR_COMMIT_ID - M.MIN_COMMIT_ID))
FROM
( SELECT 'ACTIVE_UPDATE_TID_RANGE' NAME FROM DUMMY UNION ALL
SELECT 'ACTIVE_COMMIT_ID_RANGE' FROM DUMMY
) C,
( SELECT
HOST,
MIN(MAP(NAME, 'MIN_SNAPSHOT_TS', TO_NUMBER(VALUE),
999999999999999999999)) MIN_COMMIT_ID,
MAX(MAP(NAME, 'GLOBAL_TS', TO_NUMBER(VALUE), 0))
CUR_COMMIT_ID,
MIN(MAP(NAME, 'MIN_WRITE_TID', TO_NUMBER(VALUE),
999999999999999999999)) MIN_UPDATE_TID,
MAX(MAP(NAME, 'NEXT_WRITE_TID', TO_NUMBER(VALUE), 0))
CUR_UPDATE_TID
FROM
M_MVCC_TABLES
GROUP BY
HOST
) M
)
UNION ALL
( SELECT
'LICENSE_LIMIT',
'',
CASE WHEN PRODUCT_LIMIT = 0 THEN '0' ELSE TO_VARCHAR(ROUND(PRODUCT_USAGE /
PRODUCT_LIMIT * 100)) END
FROM
M_LICENSE
)
UNION ALL
( SELECT
'LAST_DATA_BACKUP',
'',
TO_VARCHAR(TO_DECIMAL(MAP(MAX(SYS_START_TIME), NULL, 999999,
SECONDS_BETWEEN(MAX(SYS_START_TIME), CURRENT_TIMESTAMP) / 86400), 10, 2))
FROM
DUMMY LEFT OUTER JOIN
M_BACKUP_CATALOG ON
1 = 1
WHERE
ENTRY_TYPE_NAME IN ( 'complete data backup', 'data snapshot' ) AND
STATE_NAME = 'successful'
)
UNION ALL
( SELECT
'LAST_DATA_BACKUP_ERROR',
'',
IFNULL(TO_VARCHAR(TO_DECIMAL(SECONDS_BETWEEN(MAX(SYS_START_TIME),
CURRENT_TIMESTAMP) / 86400, 10, 2)), '999999') VALUE
FROM
DUMMY LEFT OUTER JOIN
M_BACKUP_CATALOG ON
ENTRY_TYPE_NAME IN ( 'complete data backup', 'data snapshot' ) AND
STATE_NAME NOT IN ( 'successful', 'running' )
)
UNION ALL
( SELECT
NAME,
'',
CASE
WHEN NAME = 'MIN_DATA_BACKUP_THROUGHPUT' THEN
TO_VARCHAR(TO_DECIMAL(MIN(MAP(BACKUP_DURATION_H, 0, 999999, BACKUP_SIZE_GB /
BACKUP_DURATION_H)), 10, 2))
WHEN NAME = 'AVG_DATA_BACKUP_THROUGHPUT' THEN
TO_VARCHAR(TO_DECIMAL(AVG(MAP(BACKUP_DURATION_H, 0, 0, BACKUP_SIZE_GB /
BACKUP_DURATION_H)), 10, 2))
END
FROM
( SELECT
C.NAME,
SECONDS_BETWEEN(B.SYS_START_TIME, B.SYS_END_TIME) / 3600
BACKUP_DURATION_H,
( SELECT SUM(BACKUP_SIZE) / 1024 / 1024 / 1024 FROM
M_BACKUP_CATALOG_FILES BF WHERE BF.BACKUP_ID = B.BACKUP_ID ) BACKUP_SIZE_GB
FROM
( SELECT 'MIN_DATA_BACKUP_THROUGHPUT' NAME FROM DUMMY UNION ALL
SELECT 'AVG_DATA_BACKUP_THROUGHPUT' FROM DUMMY
) C,
M_BACKUP_CATALOG B
WHERE
B.ENTRY_TYPE_NAME IN ( 'complete data backup', 'data snapshot' ) AND
B.STATE_NAME = 'successful' AND
DAYS_BETWEEN(B.SYS_START_TIME, CURRENT_TIMESTAMP) <= 7
)
GROUP BY
NAME
)
UNION ALL
( SELECT
'LAST_LOG_BACKUP',
'',
TO_VARCHAR(TO_DECIMAL(MAP(MAX(SYS_START_TIME), NULL, 999999,
SECONDS_BETWEEN(MAX(SYS_START_TIME), CURRENT_TIMESTAMP) / 86400), 10, 2))
FROM
DUMMY LEFT OUTER JOIN
M_BACKUP_CATALOG ON
1 = 1
WHERE
ENTRY_TYPE_NAME = 'log backup' AND
STATE_NAME = 'successful'
)
UNION ALL
( SELECT
'LAST_LOG_BACKUP_ERROR',
'',
IFNULL(TO_VARCHAR(TO_DECIMAL(SECONDS_BETWEEN(MAX(SYS_START_TIME),
CURRENT_TIMESTAMP) / 86400, 10, 2)), '999999') VALUE
FROM
DUMMY LEFT OUTER JOIN
M_BACKUP_CATALOG ON
ENTRY_TYPE_NAME = 'log backup' AND
STATE_NAME NOT IN ( 'successful', 'running' )
)
UNION ALL
( SELECT
I.NAME,
IFNULL(HOST, ''),
CASE I.NAME
WHEN 'CURRENT_LARGE_HEAP_AREAS' THEN IFNULL(CATEGORY || ' (' ||
ROUND(EXCLUSIVE_SIZE_IN_USE / 1024 / 1024 / 1024) || ' GB)', 'none')
WHEN 'FREQUENT_ALLOCATORS' THEN IFNULL(CATEGORY || ' (' ||
NUM_INSTANTIATIONS || ')', 'none')
END
FROM
( SELECT 'CURRENT_LARGE_HEAP_AREAS' NAME FROM DUMMY UNION ALL
SELECT 'FREQUENT_ALLOCATORS' FROM DUMMY
) I LEFT OUTER JOIN
( SELECT
HOST,
CATEGORY,
SUM(EXCLUSIVE_SIZE_IN_USE) EXCLUSIVE_SIZE_IN_USE,
COUNT(*) NUM_INSTANTIATIONS
FROM
M_HEAP_MEMORY
GROUP BY
HOST,
CATEGORY
) M ON
( I.NAME = 'CURRENT_LARGE_HEAP_AREAS' AND
M.EXCLUSIVE_SIZE_IN_USE >= 53687091200 AND
M.CATEGORY NOT LIKE 'Pool/AttributeEngine%' AND
M.CATEGORY NOT LIKE 'Pool/ColumnStore%' AND
M.CATEGORY NOT IN
( 'Pool/NameIdMapping/RoDict',
'Pool/PersistenceManager/PersistentSpace(0)/DefaultLPA/Page',
'Pool/PersistenceManager/PersistentSpace/DefaultLPA/Page',
'Pool/PersistenceManager/PersistentSpace(0)/StaticLPA/Page',
'Pool/PersistenceManager/PersistentSpace/StaticLPA/Page',
'Pool/RowEngine/CpbTree',
'StackAllocator'
)
) OR
( I.NAME = 'FREQUENT_ALLOCATORS' AND
M.NUM_INSTANTIATIONS >= 10000
)
)
UNION ALL
( SELECT
'RECENT_LARGE_HEAP_AREAS',
IFNULL(HOST, ''),
IFNULL(CATEGORY || ' (' || ROUND(EXCLUSIVE_SIZE_IN_USE / 1024 / 1024 /
1024) || ' GB)', 'none')
FROM
DUMMY LEFT OUTER JOIN
( SELECT
HOST,
CATEGORY,
MAX(EXCLUSIVE_SIZE_IN_USE) EXCLUSIVE_SIZE_IN_USE
FROM
_SYS_STATISTICS.HOST_HEAP_ALLOCATORS
WHERE
SECONDS_BETWEEN(SERVER_TIMESTAMP, CURRENT_TIMESTAMP) <= 90000 AND
CATEGORY NOT LIKE 'Pool/AttributeEngine%' AND
CATEGORY NOT LIKE 'Pool/ColumnStore%' AND
CATEGORY NOT IN
( 'Pool/malloc/libhdbbasement.so',
'Pool/malloc/libhdbcs.so',
'Pool/NameIdMapping/RoDict',
'Pool/PersistenceManager/PersistentSpace(0)/DefaultLPA/Page',
'Pool/RowEngine/CpbTree',
'StackAllocator'
)
GROUP BY
HOST,
CATEGORY
) ON
EXCLUSIVE_SIZE_IN_USE >= 107374182400
ORDER BY
EXCLUSIVE_SIZE_IN_USE DESC
)
UNION ALL
( SELECT
'HISTORIC_LARGE_HEAP_AREAS',
IFNULL(HOST, ''),
IFNULL(CATEGORY || ' (' || ROUND(EXCLUSIVE_SIZE_IN_USE / 1024 / 1024 /
1024) || ' GB)', 'none')
FROM
DUMMY LEFT OUTER JOIN
( SELECT
HOST,
CATEGORY,
MAX(EXCLUSIVE_SIZE_IN_USE) EXCLUSIVE_SIZE_IN_USE
FROM
_SYS_STATISTICS.HOST_HEAP_ALLOCATORS
WHERE
CATEGORY NOT LIKE 'Pool/AttributeEngine%' AND
CATEGORY NOT LIKE 'Pool/ColumnStore%' AND
CATEGORY NOT IN
( 'Pool/malloc/libhdbbasement.so',
'Pool/malloc/libhdbcs.so',
'Pool/NameIdMapping/RoDict',
'Pool/PersistenceManager/PersistentSpace(0)/DefaultLPA/Page',
'Pool/RowEngine/CpbTree',
'StackAllocator'
)
GROUP BY
HOST,
CATEGORY
) ON
EXCLUSIVE_SIZE_IN_USE >= 214748364800
ORDER BY
EXCLUSIVE_SIZE_IN_USE DESC
)
UNION ALL
( SELECT
'MANY_PARTITIONS',
'',
TO_VARCHAR(COUNT(*))
FROM
( SELECT
SCHEMA_NAME,
TABLE_NAME
FROM
M_CS_TABLES
GROUP BY
SCHEMA_NAME,
TABLE_NAME
HAVING
COUNT(*) > 100
)
)
UNION ALL
( SELECT
'ACTIVE_UPDATE_TRANS_TIME',
IFNULL(HOST, '') HOST,
IFNULL(TO_VARCHAR(MAX(SECONDS_BETWEEN(START_TIME, CURRENT_TIMESTAMP))),
'0')
FROM
DUMMY LEFT OUTER JOIN
M_TRANSACTIONS ON
UPDATE_TRANSACTION_ID > 0 AND
TRANSACTION_STATUS = 'ACTIVE'
GROUP BY
HOST
)
UNION ALL
( SELECT
'STAT_SERVER_LAST_ACTIVE',
'',
TO_VARCHAR(SECONDS_BETWEEN(MAX(SERVER_TIMESTAMP), CURRENT_TIMESTAMP))
FROM
_SYS_STATISTICS.HOST_RESOURCE_UTILIZATION_STATISTICS
)
UNION ALL
( SELECT
C.NAME,
O.HOST,
CASE
WHEN C.NAME = 'CPU_BUSY_CURRENT' THEN
TO_VARCHAR(ROUND(MAX(MAP(TOTAL_CPU_USER_TIME_DELTA +
TOTAL_CPU_SYSTEM_TIME_DELTA + TOTAL_CPU_WIO_TIME_DELTA + TOTAL_CPU_IDLE_TIME_DELTA,
0, 0,
(TOTAL_CPU_USER_TIME_DELTA + TOTAL_CPU_SYSTEM_TIME_DELTA) /
(TOTAL_CPU_USER_TIME_DELTA + TOTAL_CPU_SYSTEM_TIME_DELTA + TOTAL_CPU_WIO_TIME_DELTA
+ TOTAL_CPU_IDLE_TIME_DELTA)) * 100)))
WHEN C.NAME = 'MEMORY_USED_CURRENT' THEN
TO_VARCHAR(ROUND(MAX(MAP(FREE_PHYSICAL_MEMORY + USED_PHYSICAL_MEMORY,
0, 0, USED_PHYSICAL_MEMORY / (FREE_PHYSICAL_MEMORY + USED_PHYSICAL_MEMORY)) *
100)))
WHEN C.NAME = 'SWAP_SPACE_USED_CURRENT' THEN
TO_VARCHAR(ROUND(MAX(USED_SWAP_SPACE) / 1024 / 1024 / 1024))
END
FROM
( SELECT 'CPU_BUSY_CURRENT' NAME FROM DUMMY UNION ALL
SELECT 'MEMORY_USED_CURRENT' FROM DUMMY UNION ALL
SELECT 'SWAP_SPACE_USED_CURRENT' FROM DUMMY
) C,
( SELECT
*
FROM
_SYS_STATISTICS.HOST_RESOURCE_UTILIZATION_STATISTICS
WHERE
SECONDS_BETWEEN(SERVER_TIMESTAMP, CURRENT_TIMESTAMP) <= 600 AND
TOTAL_CPU_USER_TIME_DELTA + TOTAL_CPU_SYSTEM_TIME_DELTA +
TOTAL_CPU_WIO_TIME_DELTA + TOTAL_CPU_IDLE_TIME_DELTA > 0
) O
GROUP BY
C.NAME,
O.HOST
)
UNION ALL
( SELECT
C.NAME,
R.HOST,
TO_VARCHAR(ROUND(MAX(CASE C.NAME
WHEN 'CPU_BUSY_RECENT' THEN
(R.TOTAL_CPU_USER_TIME_DELTA + R.TOTAL_CPU_SYSTEM_TIME_DELTA) /
(R.TOTAL_CPU_USER_TIME_DELTA + R.TOTAL_CPU_SYSTEM_TIME_DELTA +
R.TOTAL_CPU_WIO_TIME_DELTA + R.TOTAL_CPU_IDLE_TIME_DELTA) * 100
WHEN 'CPU_BUSY_SYSTEM_RECENT' THEN
R.TOTAL_CPU_SYSTEM_TIME_DELTA /
(R.TOTAL_CPU_USER_TIME_DELTA + R.TOTAL_CPU_SYSTEM_TIME_DELTA +
R.TOTAL_CPU_WIO_TIME_DELTA + R.TOTAL_CPU_IDLE_TIME_DELTA) * 100
END)))
FROM
( SELECT 'CPU_BUSY_RECENT' NAME FROM DUMMY UNION ALL
SELECT 'CPU_BUSY_SYSTEM_RECENT' FROM DUMMY
) C,
( SELECT
HOST,
AVG(TOTAL_CPU_USER_TIME_DELTA) TOTAL_CPU_USER_TIME_DELTA,
AVG(TOTAL_CPU_SYSTEM_TIME_DELTA) TOTAL_CPU_SYSTEM_TIME_DELTA,
AVG(TOTAL_CPU_WIO_TIME_DELTA) TOTAL_CPU_WIO_TIME_DELTA,
AVG(TOTAL_CPU_IDLE_TIME_DELTA) TOTAL_CPU_IDLE_TIME_DELTA
FROM
_SYS_STATISTICS.HOST_RESOURCE_UTILIZATION_STATISTICS
WHERE
SECONDS_BETWEEN(SERVER_TIMESTAMP, CURRENT_TIMESTAMP) <= 86400 AND
TOTAL_CPU_USER_TIME_DELTA + TOTAL_CPU_SYSTEM_TIME_DELTA +
TOTAL_CPU_WIO_TIME_DELTA + TOTAL_CPU_IDLE_TIME_DELTA > 0
GROUP BY
HOST,
FLOOR(SECONDS_BETWEEN(CURRENT_TIMESTAMP, SERVER_TIMESTAMP) / 300)
) R
GROUP BY
C.NAME,
R.HOST
)
UNION ALL
( SELECT
'CPU_BUSY_HISTORY',
HOST,
IFNULL(TO_VARCHAR(TO_DECIMAL(SECONDS_BETWEEN(SERVER_TIMESTAMP,
CURRENT_TIMESTAMP) / 3600, 10, 2)), '999999')
FROM
DUMMY LEFT OUTER JOIN
( SELECT
HOST,
MAX(SERVER_TIMESTAMP) SERVER_TIMESTAMP
FROM
_SYS_STATISTICS.HOST_RESOURCE_UTILIZATION_STATISTICS
WHERE
MAP(TOTAL_CPU_USER_TIME_DELTA + TOTAL_CPU_SYSTEM_TIME_DELTA +
TOTAL_CPU_WIO_TIME_DELTA + TOTAL_CPU_IDLE_TIME_DELTA, 0, 0,
( TOTAL_CPU_USER_TIME_DELTA + TOTAL_CPU_SYSTEM_TIME_DELTA ) /
( TOTAL_CPU_USER_TIME_DELTA + TOTAL_CPU_SYSTEM_TIME_DELTA +
TOTAL_CPU_WIO_TIME_DELTA + TOTAL_CPU_IDLE_TIME_DELTA ) * 100) > 95
GROUP BY
HOST
) ON
1 = 1
)
UNION ALL
( SELECT
'MEMORY_USED_HISTORY',
HOST,
IFNULL(TO_VARCHAR(TO_DECIMAL(SECONDS_BETWEEN(MAX(SERVER_TIMESTAMP),
CURRENT_TIMESTAMP) / 3600, 10, 2)), '999999')
FROM
DUMMY LEFT OUTER JOIN
_SYS_STATISTICS.HOST_RESOURCE_UTILIZATION_STATISTICS ON
USED_PHYSICAL_MEMORY / (FREE_PHYSICAL_MEMORY + USED_PHYSICAL_MEMORY) * 100
> 95
GROUP BY
HOST
)
UNION ALL
( SELECT
'SWAP_SPACE_USED_HISTORY',
HOST,
IFNULL(TO_VARCHAR(ROUND(SECONDS_BETWEEN(MAX(SERVER_TIMESTAMP),
CURRENT_TIMESTAMP) / 3600)), '999999')
FROM
DUMMY LEFT OUTER JOIN
_SYS_STATISTICS.HOST_RESOURCE_UTILIZATION_STATISTICS ON
ROUND(USED_SWAP_SPACE / 1024 / 1024 / 1024) > 0
GROUP BY
HOST
)
UNION ALL
( SELECT
C.NAME,
HOST,
CASE
WHEN C.NAME = 'HIGH_CRIT_SAVEPOINT_PHASE' THEN TO_VARCHAR(SUM(CASE WHEN
CRITICAL_PHASE_DURATION / 1000000 > 10 THEN 1 ELSE 0 END))
WHEN C.NAME = 'AVG_CRIT_SAVEPOINT_PHASE' THEN
TO_VARCHAR(TO_DECIMAL(AVG(CRITICAL_PHASE_DURATION / 1000000), 10, 2))
WHEN C.NAME = 'MAX_CRIT_SAVEPOINT_PHASE' THEN
TO_VARCHAR(TO_DECIMAL(MAX(CRITICAL_PHASE_DURATION / 1000000), 10, 2))
END
FROM
( SELECT 'HIGH_CRIT_SAVEPOINT_PHASE' NAME FROM DUMMY UNION ALL
SELECT 'AVG_CRIT_SAVEPOINT_PHASE' FROM DUMMY UNION ALL
SELECT 'MAX_CRIT_SAVEPOINT_PHASE' FROM DUMMY
) C,
_SYS_STATISTICS.HOST_SAVEPOINTS S
WHERE
SECONDS_BETWEEN(S.SERVER_TIMESTAMP, CURRENT_TIMESTAMP) <= 86400 AND
S.PORT LIKE '%03'
GROUP BY
C.NAME,
S.HOST
)
UNION ALL
( SELECT
'DISK_SIZE',
MAP(HOST, CHAR(60) || 'all>', '', HOST),
TO_VARCHAR(ROUND(MAX(MAP(TOTAL_SIZE, 0, 0, USED_SIZE / TOTAL_SIZE)) * 100))
FROM
M_DISKS
WHERE
TOTAL_SIZE > 0
GROUP BY
HOST
)
UNION ALL
( SELECT
'MAX_UPDATE_TRANS_ID',
'',
TO_VARCHAR(MAX(TO_NUMBER(VALUE)))
FROM
M_MVCC_TABLES
WHERE
NAME = 'NEXT_WRITE_TID'
)
UNION ALL
( SELECT
'OLDEST_LOCK_WAIT',
'',
TO_VARCHAR(IFNULL(MAX(SECONDS_BETWEEN(BLOCKED_TIME, CURRENT_TIMESTAMP)),
0))
FROM
M_BLOCKED_TRANSACTIONS
)
UNION ALL
( SELECT
'MVCC_TRANS_START_TIME',
'',
IFNULL(TO_VARCHAR(SECONDS_BETWEEN(MIN(START_TIME), CURRENT_TIMESTAMP)),
'0')
FROM
M_TRANSACTIONS
WHERE
MIN_MVCC_SNAPSHOT_TIMESTAMP = ( SELECT MIN(VALUE) FROM M_MVCC_TABLES WHERE
NAME = 'MIN_SNAPSHOT_TS' )
)
UNION ALL
( SELECT
C.NAME,
HOST,
CASE
WHEN C.NAME = 'NUM_TRACEFILES_TOTAL' THEN TO_VARCHAR(COUNT(*))
WHEN C.NAME = 'SIZE_TRACEFILES_TOTAL' THEN
TO_VARCHAR(TO_DECIMAL(SUM(FILE_SIZE) / 1024 / 1024 / 1024, 10, 2))
WHEN C.NAME = 'LARGEST_TRACEFILE' THEN
TO_VARCHAR(TO_DECIMAL(MAX(FILE_SIZE) / 1024 / 1024, 10, 2))
END
FROM
( SELECT 'NUM_TRACEFILES_TOTAL' NAME FROM DUMMY UNION ALL
SELECT 'SIZE_TRACEFILES_TOTAL' FROM DUMMY UNION ALL
SELECT 'LARGEST_TRACEFILE' FROM DUMMY
) C LEFT OUTER JOIN
M_TRACEFILES T ON
1 = 1
GROUP BY
C.NAME,
T.HOST
)
UNION ALL
( SELECT
C.NAME,
HOST,
CASE
WHEN C.NAME = 'NUM_TRACEFILES_DAY' THEN TO_VARCHAR(COUNT(*))
WHEN C.NAME = 'SIZE_TRACEFILES_DAY' THEN
TO_VARCHAR(TO_DECIMAL(SUM(FILE_SIZE) / 1024 / 1024 / 1024, 10, 2))
WHEN C.NAME = 'NUM_OOM_TRACEFILES' THEN TO_VARCHAR(SUM(CASE WHEN
FILE_NAME LIKE '%rtedump%oom%' AND FILE_NAME NOT LIKE '%compositelimit_oom%' THEN 1
ELSE 0 END))
WHEN C.NAME = 'NUM_COMP_OOM_TRACEFILES' THEN TO_VARCHAR(SUM(CASE WHEN
FILE_NAME LIKE '%rtedump%%compositelimit_oom%' THEN 1 ELSE 0 END))
WHEN C.NAME = 'NUM_CRASHDUMP_TRACEFILES' THEN TO_VARCHAR(SUM(CASE WHEN
FILE_NAME LIKE '%crashdump%' THEN 1 ELSE 0 END))
WHEN C.NAME = 'NUM_RTEDUMP_TRACEFILES' THEN TO_VARCHAR(SUM(CASE WHEN
FILE_NAME LIKE '%rtedump%' AND FILE_NAME NOT LIKE '%rtedump%oom%' AND FILE_NAME NOT
LIKE '%rtedump%page%' THEN 1 ELSE 0 END))
WHEN C.NAME = 'NUM_PAGEDUMP_TRACEFILES' THEN TO_VARCHAR(SUM(CASE WHEN
FILE_NAME LIKE '%rtedump%page%' THEN 1 ELSE 0 END))
END
FROM
( SELECT 'NUM_TRACEFILES_DAY' NAME FROM DUMMY UNION ALL
SELECT 'SIZE_TRACEFILES_DAY' FROM DUMMY UNION ALL
SELECT 'NUM_OOM_TRACEFILES' FROM DUMMY UNION ALL
SELECT 'NUM_COMP_OOM_TRACEFILES' FROM DUMMY UNION ALL
SELECT 'NUM_CRASHDUMP_TRACEFILES' FROM DUMMY UNION ALL
SELECT 'NUM_RTEDUMP_TRACEFILES' FROM DUMMY UNION ALL
SELECT 'NUM_PAGEDUMP_TRACEFILES' FROM DUMMY
) C LEFT OUTER JOIN
M_TRACEFILES T ON
1 = 1
WHERE
SECONDS_BETWEEN(T.FILE_MTIME, CURRENT_TIMESTAMP) <= 86400
GROUP BY
C.NAME,
T.HOST
)
UNION ALL
( SELECT
'EXP_TRACE_LONG_RUNNING_SQL',
'',
TO_VARCHAR(COUNT(*))
FROM
M_EXPENSIVE_STATEMENTS
WHERE
SECONDS_BETWEEN(START_TIME, CURRENT_TIMESTAMP) <= 86400 AND
DURATION_MICROSEC / 1000000 > 3600
)
UNION ALL
( SELECT TOP 1
'ANALYSIS_DATE',
'',
TO_VARCHAR(CURRENT_TIMESTAMP, 'YYYY/MM/DD HH24:MI:SS') || CHAR(32) || '('
|| VALUE || ')'
FROM
M_HOST_INFORMATION
WHERE
KEY = 'timezone_name'
)
UNION ALL
( SELECT
'DATABASE_NAME',
'',
DATABASE_NAME
FROM
M_DATABASE
)
UNION ALL
( SELECT
C.NAME,
'',
CASE C.NAME
WHEN 'LARGE_DELTA_STORAGE_AUTO' THEN IFNULL(TABLE_NAME || ' (' ||
TO_DECIMAL(MEMORY_SIZE_IN_DELTA / 1024 / 1024 / 1024, 10, 2) || ' GB)', 'none')
WHEN 'MANY_DELTA_RECORDS_AUTO' THEN IFNULL(TABLE_NAME || ' (' ||
RAW_RECORD_COUNT_IN_DELTA || ' rows, ' || DELTA_PCT || ' %)', 'none')
WHEN 'LARGE_DELTA_STORAGE_NOAUTO' THEN IFNULL(TABLE_NAME || ' (' ||
TO_DECIMAL(MEMORY_SIZE_IN_DELTA / 1024 / 1024 / 1024, 10, 2) || ' GB)', 'none')
WHEN 'MANY_DELTA_RECORDS_NOAUTO' THEN IFNULL(TABLE_NAME || ' (' ||
RAW_RECORD_COUNT_IN_DELTA || ' rows, ' || DELTA_PCT || ' %)', 'none')
END
FROM
( SELECT 'LARGE_DELTA_STORAGE_AUTO' NAME FROM DUMMY UNION ALL
SELECT 'MANY_DELTA_RECORDS_AUTO' FROM DUMMY UNION ALL
SELECT 'LARGE_DELTA_STORAGE_NOAUTO' FROM DUMMY UNION ALL
SELECT 'MANY_DELTA_RECORDS_NOAUTO' FROM DUMMY
) C LEFT OUTER JOIN
( SELECT
CT.TABLE_NAME,
T.AUTO_MERGE_ON,
SUM(CT.MEMORY_SIZE_IN_DELTA) MEMORY_SIZE_IN_DELTA,
SUM(CT.RAW_RECORD_COUNT_IN_MAIN) RAW_RECORD_COUNT_IN_MAIN,
SUM(CT.RAW_RECORD_COUNT_IN_DELTA) RAW_RECORD_COUNT_IN_DELTA,
ROUND(MAP(SUM(CT.RAW_RECORD_COUNT_IN_DELTA +
CT.RAW_RECORD_COUNT_IN_MAIN), 0, 0, SUM(CT.RAW_RECORD_COUNT_IN_DELTA) /
SUM(CT.RAW_RECORD_COUNT_IN_DELTA + CT.RAW_RECORD_COUNT_IN_MAIN) * 100)) DELTA_PCT,
SUM(TH.MIN_RECENT_MEMORY_SIZE_IN_DELTA) MIN_RECENT_MEMORY_SIZE_IN_DELTA,
SUM(TH.MIN_RECENT_RAW_RECORD_COUNT_IN_DELTA)
MIN_RECENT_RAW_RECORD_COUNT_IN_DELTA
FROM
M_CS_TABLES CT INNER JOIN
TABLES T ON
CT.SCHEMA_NAME = T.SCHEMA_NAME AND
CT.TABLE_NAME = T.TABLE_NAME LEFT OUTER JOIN
( SELECT
SCHEMA_NAME,
TABLE_NAME,
MIN(RAW_RECORD_COUNT_IN_DELTA) MIN_RECENT_RAW_RECORD_COUNT_IN_DELTA,
MIN(MEMORY_SIZE_IN_DELTA) MIN_RECENT_MEMORY_SIZE_IN_DELTA
FROM
_SYS_STATISTICS.HOST_COLUMN_TABLES_PART_SIZE
WHERE
SERVER_TIMESTAMP > ADD_SECONDS(CURRENT_TIMESTAMP, -86400)
GROUP BY
SCHEMA_NAME,
TABLE_NAME
) TH ON
TH.SCHEMA_NAME = T.SCHEMA_NAME AND
TH.TABLE_NAME = T.TABLE_NAME
GROUP BY
CT.TABLE_NAME,
T.AUTO_MERGE_ON
HAVING
SUM(CT.MEMORY_SIZE_IN_DELTA) > 5368709120 OR
SUM(CT.RAW_RECORD_COUNT_IN_DELTA) >= GREATEST(9 *
SUM(CT.RAW_RECORD_COUNT_IN_MAIN), 1000000)
) T ON
C.NAME = 'LARGE_DELTA_STORAGE_AUTO' AND T.AUTO_MERGE_ON = 'TRUE' AND
T.MEMORY_SIZE_IN_DELTA > 5368709120 OR
C.NAME = 'MANY_DELTA_RECORDS_AUTO' AND T.AUTO_MERGE_ON = 'TRUE' AND
T.RAW_RECORD_COUNT_IN_DELTA >= GREATEST(9 * T.RAW_RECORD_COUNT_IN_MAIN, 1000000) OR
C.NAME = 'LARGE_DELTA_STORAGE_NOAUTO' AND T.AUTO_MERGE_ON = 'FALSE' AND
T.MEMORY_SIZE_IN_DELTA > 5368709120 AND
( T.MIN_RECENT_MEMORY_SIZE_IN_DELTA > 5368709120 OR
T.MIN_RECENT_MEMORY_SIZE_IN_DELTA IS NULL ) OR
C.NAME = 'MANY_DELTA_RECORDS_NOAUTO' AND T.AUTO_MERGE_ON = 'FALSE' AND
T.RAW_RECORD_COUNT_IN_DELTA >= GREATEST(9 * T.RAW_RECORD_COUNT_IN_MAIN, 1000000)
AND
( T.MIN_RECENT_RAW_RECORD_COUNT_IN_DELTA IS NULL OR
T.MIN_RECENT_RAW_RECORD_COUNT_IN_DELTA >= GREATEST(9 * T.RAW_RECORD_COUNT_IN_MAIN,
1000000) )
ORDER BY
T.MEMORY_SIZE_IN_DELTA DESC
)
UNION ALL
( SELECT
'CURRENT_UNLOADS',
IFNULL(HOST, ''),
TO_VARCHAR(SUM(MAP(REASON, NULL, 0, 1)))
FROM
DUMMY LEFT OUTER JOIN
M_CS_UNLOADS ON
UNLOAD_TIME >= ADD_DAYS(CURRENT_TIMESTAMP, -1) AND
REASON = 'LOW MEMORY'
GROUP BY
HOST
)
UNION ALL
( SELECT
'LAST_UNLOAD',
IFNULL(HOST, ''),
MAP(MAX(UNLOAD_TIME), NULL, '999999',
TO_VARCHAR(TO_DECIMAL(SECONDS_BETWEEN(MAX(UNLOAD_TIME), CURRENT_TIMESTAMP) / 86400,
10, 2)))
FROM
DUMMY LEFT OUTER JOIN
M_CS_UNLOADS ON
REASON = 'LOW MEMORY'
GROUP BY
HOST
)
UNION ALL
( SELECT
NAME,
'',
CASE NAME
WHEN 'DATABASE_LOG_MODE' THEN VALUE
WHEN 'AUTO_LOG_BACKUP' THEN VALUE
WHEN 'SQL_TRACE' THEN MAP(VALUE, 'off', 'no', 'yes')
WHEN 'INDEXSERVER_PYTHON_TRACE' THEN MAP(VALUE, 'off', 'no', 'yes')
WHEN 'EXECUTOR_PYTHON_TRACE' THEN MAP(VALUE, 'off', 'no', 'yes')
WHEN 'CLIENT_NETWORK_TRACE' THEN MAP(VALUE, 'false', 'no', 'yes')
WHEN 'CPU_TIME_MEASUREMENT' THEN MAP(VALUE, 'off', 'no', 'yes')
END
FROM
( SELECT
NAME,
FILE_NAME,
SECTION,
KEY,
IFNULL(USER_VALUE, DEFAULT_VALUE) VALUE
FROM
( SELECT
C.NAME,
P.FILE_NAME,
P.SECTION,
P.KEY,
MIN(MAP(P.LAYER_NAME, 'DEFAULT', P.VALUE)) DEFAULT_VALUE,
MIN(MAP(P.LAYER_NAME, 'SYSTEM', P.VALUE)) USER_VALUE
FROM
( SELECT 'DATABASE_LOG_MODE' NAME, 'global.ini' FILE_NAME,
'persistence' SECTION, 'log_mode' KEY FROM DUMMY UNION ALL
SELECT 'AUTO_LOG_BACKUP', 'global.ini',
'persistence', 'enable_auto_log_backup' FROM DUMMY UNION ALL
SELECT 'SQL_TRACE', 'indexserver.ini', 'sqltrace',
'trace' FROM DUMMY UNION ALL
SELECT 'INDEXSERVER_PYTHON_TRACE', 'indexserver.ini',
'pythontrace', 'trace' FROM DUMMY UNION ALL
SELECT 'EXECUTOR_PYTHON_TRACE', 'executor.ini',
'pythontrace', 'trace' FROM DUMMY UNION ALL
SELECT 'CLIENT_NETWORK_TRACE', 'indexserver.ini',
'sql_client_network_io', 'enabled' FROM DUMMY UNION ALL
SELECT 'CPU_TIME_MEASUREMENT', 'global.ini',
'resource_tracking', 'cpu_time_measurement_mode' FROM DUMMY
) C,
M_INIFILE_CONTENTS P
WHERE
C.FILE_NAME = P.FILE_NAME AND
C.SECTION = P.SECTION AND
C.KEY = P.KEY
GROUP BY
C.NAME,
P.FILE_NAME,
P.SECTION,
P.KEY
)
)
)
UNION ALL
( SELECT
'DATABASE_TRACE_SETTINGS',
IFNULL(HOST, ''),
MAP(SUM(MAP(KEY, NULL, 0, 1)), 0, 'no', 'yes')
FROM
DUMMY LEFT OUTER JOIN
M_INIFILE_CONTENTS ON
SECTION = 'trace' AND
LAYER_NAME IN ( 'SYSTEM', 'HOST' ) AND
NOT (SUBSTR(KEY, 1, 3) = 'ha_' AND VALUE = 'info') AND
NOT (KEY = 'tablereload' AND VALUE = 'info' )
GROUP BY
HOST
)
UNION ALL
( SELECT
'USER_TRACE_SETTINGS',
IFNULL(HOST, ''),
MAP(SUM(MAP(KEY, NULL, 0, 1)), 0, 'no', 'yes')
FROM
DUMMY LEFT OUTER JOIN
M_INIFILE_CONTENTS ON
SECTION LIKE 'traceprofile%' AND
SECTION NOT IN ('traceprofile_sap_passport_high',
'traceprofile_sap_passport_medium') AND
LAYER_NAME IN ( 'SYSTEM', 'HOST' )
GROUP BY
HOST
)
UNION ALL
( SELECT
'END_TO_END_TRACE_SETTINGS',
IFNULL(HOST, ''),
MAP(SUM(MAP(KEY, NULL, 0, 1)), 0, 'no', 'yes')
FROM
DUMMY LEFT OUTER JOIN
M_INIFILE_CONTENTS ON
SECTION IN ('traceprofile_sap_passport_high',
'traceprofile_sap_passport_medium') AND
LAYER_NAME IN ( 'SYSTEM', 'HOST' )
GROUP BY
HOST
)
UNION ALL
( SELECT
'SQL_CACHE_EVICTIONS',
HOST,
TO_VARCHAR(ROUND(SUM(EVICT_PER_HOUR)))
FROM
( SELECT
S.HOST,
S.PORT,
EVICTED_PLAN_COUNT / SECONDS_BETWEEN(SS.START_TIME, CURRENT_TIMESTAMP) *
3600 EVICT_PER_HOUR
FROM
M_SQL_PLAN_CACHE_OVERVIEW S,
M_SERVICE_STATISTICS SS
WHERE
S.HOST = SS.HOST AND
S.PORT = SS.PORT
)
GROUP BY
HOST
)
UNION ALL
( SELECT
'EXPENSIVE_SQL_TRACE_THLD',
'',
TO_VARCHAR(MIN(ROUND(IFNULL(SYSTEM_VALUE, IFNULL(HOST_VALUE,
DEFAULT_VALUE)) / 1000)))
FROM
( SELECT
MIN(MAP(LAYER_NAME, 'DEFAULT', VALUE)) DEFAULT_VALUE,
MIN(MAP(LAYER_NAME, 'HOST', VALUE)) HOST_VALUE,
MIN(MAP(LAYER_NAME, 'SYSTEM', VALUE, 'DATABASE', VALUE)) SYSTEM_VALUE
FROM
M_INIFILE_CONTENTS
WHERE
SECTION = 'expensive_statement' AND
KEY = 'threshold_duration'
)
)
UNION ALL
( SELECT
'EXPENSIVE_SQL_TRACE_RECORDS',
'',
TO_VARCHAR(COUNT(*))
FROM
M_EXPENSIVE_STATEMENTS
WHERE
SECONDS_BETWEEN(START_TIME, CURRENT_TIMESTAMP) <= 86400 AND
OPERATION IN ('AGGREGATED_EXECUTION', 'CALL')
)
UNION ALL
( SELECT
'TIME_SINCE_LAST_SAVEPOINT',
HOST,
TO_VARCHAR(GREATEST(0, SECONDS_BETWEEN(MAX(START_TIME),
CURRENT_TIMESTAMP)))
FROM
M_SAVEPOINTS
GROUP BY
HOST
)
UNION ALL
( SELECT
'LICENSE_EXPIRATION',
'',
TO_VARCHAR(MAP(EXPIRATION_DATE, NULL, '999999', DAYS_BETWEEN(CURRENT_DATE,
EXPIRATION_DATE)))
FROM
M_LICENSE
)
UNION ALL
( SELECT
'SECURE_STORE_AVAILABLE',
HOST,
VALUE
FROM
M_HOST_INFORMATION
WHERE
KEY = 'secure_store'
)
UNION ALL
( SELECT
'SAP_USER_PASSWORD_EXPIRATION',
'',
TO_VARCHAR(COUNT(*))
FROM
USERS
WHERE
USER_NAME LIKE 'SAP%' AND
PASSWORD_CHANGE_TIME IS NOT NULL
)
UNION ALL
( SELECT
'PERMANENT_LICENSE',
'',
MAP(PERMANENT, 'TRUE', 'yes', 'no')
FROM
M_LICENSE
)
UNION ALL
( SELECT
'SERVICE_START_TIME_VARIATION',
HOST,
TO_VARCHAR(SECONDS_BETWEEN(MIN(START_TIME), MAX(START_TIME)))
FROM
M_SERVICE_STATISTICS
WHERE
SERVICE_NAME != 'webdispatcher'
GROUP BY
HOST
)
UNION ALL
( SELECT TOP 1
'BACKUP_CATALOG_SIZE',
'',
TO_VARCHAR(TO_DECIMAL(BF.BACKUP_SIZE / 1024 / 1024, 10, 2))
FROM
M_BACKUP_CATALOG B,
M_BACKUP_CATALOG_FILES BF
WHERE
B.BACKUP_ID = BF.BACKUP_ID AND
BF.SOURCE_TYPE_NAME = 'catalog' AND
B.STATE_NAME = 'successful'
ORDER BY
B.SYS_START_TIME DESC
)
UNION ALL
( SELECT
'OLDEST_BACKUP_IN_CATALOG',
'',
TO_VARCHAR(DAYS_BETWEEN(MIN(SYS_START_TIME), CURRENT_TIMESTAMP))
FROM
M_BACKUP_CATALOG
)
UNION ALL
( SELECT
NAME,
HOST,
TO_VARCHAR(VALUE)
FROM
( SELECT
C.NAME,
L.HOST,
CASE C.NAME
WHEN 'LOG_SEGMENTS_FREE' THEN SUM(MAP(L.STATE, 'Free', 1, 0))
WHEN 'LOG_SEGMENTS_NOT_FREE' THEN SUM(MAP(L.STATE, 'Free', 0, 1))
END VALUE
FROM
( SELECT 'LOG_SEGMENTS_FREE' NAME FROM DUMMY UNION ALL
SELECT 'LOG_SEGMENTS_NOT_FREE' FROM DUMMY
) C,
M_LOG_SEGMENTS L
GROUP By
C.NAME,
L.HOST
)
)
UNION ALL
( SELECT
'MAX_GC_HISTORY_COUNT',
HOST,
TO_VARCHAR(SUM(HISTORY_COUNT))
FROM
M_GARBAGE_COLLECTION_STATISTICS
GROUP BY
HOST
)
UNION ALL
( SELECT
'GC_UNDO_FILE_COUNT',
'',
TO_VARCHAR(COUNT(*))
FROM
M_UNDO_CLEANUP_FILES
WHERE
TYPE != 'FREE'
)
UNION ALL
( SELECT
'GC_UNDO_FILE_SIZE',
'',
TO_VARCHAR(TO_DECIMAL(IFNULL(SUM(RAW_SIZE), 0) / 1024 / 1024 / 1024, 10,
2))
FROM
M_UNDO_CLEANUP_FILES
WHERE
TYPE != 'FREE'
)
UNION ALL
( SELECT
C.NAME,
SN.HOST,
TO_VARCHAR(MAP(C.NAME,
'SERVICE_SEND_INTRANODE', CASE WHEN SUM(SN.SEND_SIZE_INTRA) / 1024 / 1024
/ 1024 < 10 THEN
999999 ELSE ROUND(MAP(SUM(SN.SEND_DURATION_INTRA), 0, 0,
SUM(SN.SEND_SIZE_INTRA) / 1024 / 1024 / ( MAP(SUM(SN.SEND_DURATION_INTRA), 0, 0,
SUM(SN.SEND_DURATION_INTRA) / 1000 / 1000 )))) END,
'SERVICE_SEND_INTERNODE', CASE WHEN SUM(SN.SEND_SIZE_INTER) / 1024 / 1024
/ 1024 < 10 THEN
999999 ELSE ROUND(MAP(SUM(SN.SEND_DURATION_INTER), 0, 0,
SUM(SN.SEND_SIZE_INTER) / 1024 / 1024 / ( MAP(SUM(SN.SEND_DURATION_INTER), 0, 0,
SUM(SN.SEND_DURATION_INTER) / 1000 / 1000 )))) END ))
FROM
( SELECT 'SERVICE_SEND_INTRANODE' NAME FROM DUMMY UNION ALL
SELECT 'SERVICE_SEND_INTERNODE' FROM DUMMY
) C LEFT OUTER JOIN
( SELECT
SENDER_HOST HOST,
CASE WHEN SENDER_HOST = RECEIVER_HOST THEN SEND_SIZE ELSE 0
END SEND_SIZE_INTRA,
CASE WHEN SENDER_HOST = RECEIVER_HOST THEN 0 ELSE
SEND_SIZE END SEND_SIZE_INTER,
CASE WHEN SENDER_HOST = RECEIVER_HOST THEN SEND_DURATION ELSE 0
END SEND_DURATION_INTRA,
CASE WHEN SENDER_HOST = RECEIVER_HOST THEN 0 ELSE
SEND_DURATION END SEND_DURATION_INTER,
CASE WHEN SENDER_HOST = RECEIVER_HOST THEN RECEIVE_SIZE ELSE 0
END RECEIVE_SIZE_INTRA,
CASE WHEN SENDER_HOST = RECEIVER_HOST THEN 0 ELSE
RECEIVE_SIZE END RECEIVE_SIZE_INTER,
CASE WHEN SENDER_HOST = RECEIVER_HOST THEN RECEIVE_DURATION ELSE 0
END RECEIVE_DURATION_INTRA,
CASE WHEN SENDER_HOST = RECEIVER_HOST THEN 0 ELSE
RECEIVE_DURATION END RECEIVE_DURATION_INTER
FROM
M_SERVICE_NETWORK_IO
) SN ON
1 = 1
GROUP BY
C.NAME,
SN.HOST
)
UNION ALL
( SELECT
'ST_POINT_TABLES',
'',
TO_VARCHAR(COUNT(*))
FROM
TABLES T,
TABLE_COLUMNS C
WHERE
T.SCHEMA_NAME = C.SCHEMA_NAME AND
T.TABLE_NAME = C.TABLE_NAME AND
C.DATA_TYPE_NAME = 'ST_POINT' AND
T.TABLE_TYPE = 'ROW' AND
T.IS_USER_DEFINED_TYPE != 'TRUE'
)
UNION ALL
( SELECT
'STAT_SERVER_TABLE_SIZE',
'',
TO_VARCHAR(TO_DECIMAL(SUM(TABLE_SIZE) / 1024 / 1024 / 1024, 10, 2))
FROM
( SELECT
SCHEMA_NAME,
TABLE_NAME,
ALLOCATED_FIXED_PART_SIZE + ALLOCATED_VARIABLE_PART_SIZE TABLE_SIZE
FROM
M_RS_TABLES
WHERE
SCHEMA_NAME = '_SYS_STATISTICS'
UNION ALL
SELECT
SCHEMA_NAME,
TABLE_NAME,
INDEX_SIZE TABLE_SIZE
FROM
M_RS_INDEXES
WHERE
SCHEMA_NAME = '_SYS_STATISTICS'
UNION ALL
SELECT
SCHEMA_NAME,
TABLE_NAME,
MEMORY_SIZE_IN_TOTAL SIZE_BYTE
FROM
M_CS_TABLES
WHERE
SCHEMA_NAME = '_SYS_STATISTICS'
)
)
UNION ALL
( SELECT
'VARYING_MEMORY',
'',
CASE WHEN MAX(VALUE) - MIN(VALUE) <= 1024 * 1024 * 1024 THEN 'no' ELSE
'yes' END
FROM
M_HOST_INFORMATION
WHERE
KEY = 'mem_phys'
)
UNION ALL
( SELECT
'STAT_SERVER_RETENTION',
'',
TO_VARCHAR(COUNT(*))
FROM
( SELECT
TABLE_NAME,
MAX(MAP(LAYER_NAME, 'DEFAULT', RETENTION_DAYS, '-- HANA internal --'))
DEFAULT_RETENTION,
MAX(MAP(LAYER_NAME, 'SYSTEM', RETENTION_DAYS, '-- not set --'))
USER_RETENTION
FROM
( SELECT
UPPER(SUBSTR(KEY, 17)) TABLE_NAME,
LAYER_NAME,
REPLACE(SUBSTR(VALUE, LOCATE(UPPER(VALUE), 'CURRENT_TIMESTAMP,-') +
19), ')', '') RETENTION_DAYS
FROM
M_INIFILE_CONTENTS
WHERE
FILE_NAME = 'statisticsserver.ini' AND
SECTION = 'statisticsserver_sqlcommands' AND
KEY LIKE 'delete_old_data_%'
)
GROUP BY
TABLE_NAME
)
WHERE
TABLE_NAME != 'HOST_CS_UNLOADS' AND
MAP(USER_RETENTION, '-- not set --', DEFAULT_RETENTION, USER_RETENTION) <
42
)
UNION ALL
( SELECT
'NAMESERVER_SHARED_MEMORY',
HOST,
TO_VARCHAR(ROUND(MAP(SHARED_MEMORY_ALLOCATED_SIZE, 0, 0,
SHARED_MEMORY_USED_SIZE / SHARED_MEMORY_ALLOCATED_SIZE * 100)))
FROM
M_SERVICE_MEMORY
WHERE
SERVICE_NAME = 'nameserver'
)
/* START: Remove in case of long runtimes */
UNION ALL
( SELECT
'TABLES_MOVED_LOGICALLY',
'',
TO_VARCHAR(IFNULL(NUM_LOGICAL_TABLES, 0))
FROM
( SELECT
( SELECT
COUNT(*)
FROM
( SELECT
DISTINCT SCHEMA_NAME || TABLE_NAME
FROM
M_TABLE_PERSISTENCE_LOCATIONS
GROUP BY
SCHEMA_NAME, TABLE_NAME, PART_ID, IS_HISTORY
HAVING COUNT(*) > 1
)
) NUM_LOGICAL_TABLES
FROM
DUMMY
)
)
/* END: Remove in case of long runtimes */
UNION ALL
( SELECT
'TABLES_MOVED_LOGICALLY',
'',
TO_VARCHAR(COUNT(*))
FROM
( SELECT
DISTINCT(SCHEMA_NAME || TABLE_NAME)
FROM
M_TABLE_PERSISTENCE_LOCATIONS
GROUP BY
SCHEMA_NAME, TABLE_NAME, PART_ID
HAVING COUNT(*) > 1
)
)
UNION ALL
( SELECT
'DISK_DATA_FRAGMENTATION',
IFNULL(HOST, ''),
IFNULL(TO_VARCHAR(ROUND((1 - MAP(SUM(F.TOTAL_SIZE), 0, 0,
SUM(F.USED_SIZE) / SUM(F.TOTAL_SIZE))) * 100)), '999999')
FROM
DUMMY D LEFT OUTER JOIN
M_VOLUME_FILES F ON
1 = 1
WHERE
F.FILE_TYPE = 'DATA'
GROUP BY
F.HOST
HAVING
SUM(F.USED_SIZE) / 1024 / 1024 / 1024 >= 5
)
UNION ALL
( SELECT
'NAMESERVER_LOCKFILE_LOCATION',
'',
MAP(COUNT(*), 0, 'yes', 'no')
FROM
M_SERVICE_STATISTICS S,
M_MERGED_TRACES T
WHERE
S.HOST = T.HOST AND
S.PORT = T.PORT AND
SECONDS_BETWEEN(S.START_TIME, T.TIMESTAMP) > -10000 AND
T.TRACE_FILE_NAME LIKE '%daemon%' AND
UPPER(TO_VARCHAR(SUBSTR(T.TRACE_TEXT, 1, 4000))) LIKE '%SEE SAP NOTE
2100296%'
)
UNION ALL
( SELECT
'STAT_SERVER_DUPLICATE_KEYS',
'',
TO_VARCHAR(COUNT(DISTINCT(TO_VARCHAR(TRACE_TEXT))))
FROM
M_MERGED_TRACES
WHERE
UPPER(TO_VARCHAR(TRACE_TEXT)) LIKE '%301%UNIQUE CONSTRAINT VIOLATED
%_SYS_STATISTICS%' AND
TIMESTAMP >= ADD_DAYS(CURRENT_TIMESTAMP, -7)
)
UNION ALL
( SELECT
'CATALOG_READ_GRANTED',
'',
MAP(COUNT(*), 0, 'no', 'yes')
FROM
EFFECTIVE_PRIVILEGES
WHERE
USER_NAME = CURRENT_USER AND
PRIVILEGE = 'CATALOG READ'
)
UNION ALL
( SELECT
NAME,
'',
CASE NAME
WHEN 'TABLES_AUTOMERGE_DISABLED' THEN TO_VARCHAR(SUM(MAP(AUTO_MERGE_ON,
'FALSE', 1, 0)))
WHEN 'TABLES_AUTOCOMP_DISABLED' THEN
TO_VARCHAR(SUM(MAP(AUTO_OPTIMIZE_COMPRESSION_ON, 'FALSE', 1, 0)))
END
FROM
( SELECT 'TABLES_AUTOMERGE_DISABLED' NAME FROM DUMMY UNION ALL
SELECT 'TABLES_AUTOCOMP_DISABLED' NAME FROM DUMMY
) BI,
TABLES T
WHERE
TABLE_NAME NOT LIKE '/B%/%' AND
TABLE_NAME NOT LIKE '0BW:BIA%' AND
TABLE_NAME NOT LIKE '$BPC$HC$%' AND
IS_COLUMN_TABLE = 'TRUE'
GROUP BY
NAME
)
UNION ALL
( SELECT
'TABLES_PERSMERGE_DISABLED',
'',
TO_VARCHAR(COUNT(*))
FROM
M_CS_TABLES
WHERE
PERSISTENT_MERGE = 'FALSE'
)
UNION ALL
( SELECT
'MAX_LOG_BACKUP_DURATION',
'',
TO_VARCHAR(MAX(SECONDS_BETWEEN(SYS_START_TIME, SYS_END_TIME)))
FROM
M_BACKUP_CATALOG
WHERE
ENTRY_TYPE_NAME = 'log backup' AND
SECONDS_BETWEEN(SYS_START_TIME, CURRENT_TIMESTAMP) <= 86400
)
UNION ALL
( SELECT
'OLDEST_REPLICATION_SNAPSHOT',
IFNULL(HOST, ''),
TO_VARCHAR(TO_DECIMAL(SECONDS_BETWEEN(MIN(TIMESTAMP), CURRENT_TIMESTAMP) /
3600, 10, 2))
FROM
DUMMY LEFT OUTER JOIN
M_SNAPSHOTS ON
FOR_BACKUP = 'FALSE'
GROUP BY
HOST
)
UNION ALL
( SELECT
'OLDEST_BACKUP_SNAPSHOT',
IFNULL(HOST, ''),
TO_VARCHAR(TO_DECIMAL(SECONDS_BETWEEN(MIN(TIMESTAMP), CURRENT_TIMESTAMP) /
86400, 10, 2))
FROM
DUMMY LEFT OUTER JOIN
M_SNAPSHOTS ON
FOR_BACKUP = 'TRUE'
GROUP BY
HOST
)
UNION ALL
( SELECT
'SAVEPOINT_THROUGHPUT',
HOST,
TO_VARCHAR(ROUND(MAP(SUM(TOTAL_SIZE), 0, NULL, MAP(SUM(DURATION), 0, 0,
SUM(TOTAL_SIZE)) / SUM(DURATION)) / 1024 / 1024 * 1000 * 1000))
FROM
M_SAVEPOINTS
GROUP BY
HOST
)
UNION ALL
( SELECT
'LONG_RUNNING_SAVEPOINTS',
IFNULL(HOST, '') HOST,
TO_VARCHAR(IFNULL(LONG_SAVEPOINTS, 0))
FROM
DUMMY LEFT OUTER JOIN
( SELECT
HOST,
COUNT(*) LONG_SAVEPOINTS
FROM
M_SAVEPOINTS
WHERE
DURATION > 900000000
GROUP BY
HOST
) ON
1 = 1
)
UNION ALL
( SELECT
'LARGE_TABLES_NOT_COMPRESSED',
'',
TO_VARCHAR(COUNT(DISTINCT(SCHEMA_NAME || TABLE_NAME)))
FROM
M_CS_TABLES
WHERE
LAST_COMPRESSED_RECORD_COUNT = 0 AND
RECORD_COUNT > 10000000
)
UNION ALL
( SELECT
'SQL_CACHE_PER_SQL_CONNECTION',
SO.HOST,
TO_VARCHAR(TO_DECIMAL(MIN(MAP(C.NUM_CONNECTIONS, 0, 0,
SO.PLAN_CACHE_CAPACITY / 1024 / 1024 / C.NUM_CONNECTIONS)), 10, 2))
FROM
M_SQL_PLAN_CACHE_OVERVIEW SO,
( SELECT
C.HOST,
C.PORT,
COUNT(*) NUM_CONNECTIONS
FROM
M_CONNECTIONS C,
M_SERVICES S
WHERE
S.HOST = C.HOST AND
S.PORT = C.PORT AND
S.SERVICE_NAME = 'indexserver' AND
C.CONNECTION_ID > 0 AND
C.CREATED_BY = 'Session'
GROUP BY
C.HOST,
C.PORT
) C
WHERE
SO.HOST = C.HOST AND
SO.PORT = C.PORT
GROUP BY
SO.HOST
)
UNION ALL
( SELECT
'HOST_SQL_PLAN_CACHE_ZERO',
'',
TO_VARCHAR(COUNT(*))
FROM
_SYS_STATISTICS.HOST_SQL_PLAN_CACHE
WHERE
EXECUTION_COUNT = 0
)
UNION ALL
( SELECT
'CPBTREE_LEAK',
'',
TO_VARCHAR(TO_DECIMAL(GREATEST(0, HEAP_SIZE_GB - INDEX_SIZE_GB), 10, 2))
FROM
( SELECT
( SELECT IFNULL(SUM(INDEX_SIZE) / 1024 / 1024 / 1024, 0) FROM
M_RS_INDEXES ) INDEX_SIZE_GB,
( SELECT IFNULL(SUM(EXCLUSIVE_SIZE_IN_USE) / 1024 / 1024 / 1024, 0) FROM
M_HEAP_MEMORY WHERE CATEGORY = 'Pool/RowEngine/CpbTree' ) HEAP_SIZE_GB
FROM
DUMMY
)
)
UNION ALL
( SELECT
'SQL_PREPARATION_SHARE',
HOST,
TO_VARCHAR(TO_DECIMAL(MAP(ELAPSED_TIME, 0, 0, PREP_TIME / ELAPSED_TIME *
100), 10, 2))
FROM
( SELECT
HOST,
SUM(TOTAL_EXECUTION_TIME) + SUM(TOTAL_PREPARATION_TIME) ELAPSED_TIME,
SUM(TOTAL_PREPARATION_TIME) PREP_TIME
FROM
M_SQL_PLAN_CACHE
GROUP BY
HOST
)
)
UNION ALL
( SELECT
'SQL_CACHE_USED_BY_TABLE',
HOST,
TO_VARCHAR(MAP(HOST, NULL, 0, COUNT(*)))
FROM
DUMMY LEFT OUTER JOIN
( SELECT
HOST
FROM
( SELECT
SUM(PLAN_MEMORY_SIZE) OVER (PARTITION BY HOST) TOTAL_PLAN_MEMORY_SIZE,
*
FROM
M_SQL_PLAN_CACHE
)
GROUP BY
HOST,
TOTAL_PLAN_MEMORY_SIZE,
ACCESSED_OBJECTS
HAVING
SUM(PLAN_MEMORY_SIZE) * 10 > TOTAL_PLAN_MEMORY_SIZE
) ON
1 = 1
GROUP BY
HOST
)
UNION ALL
( SELECT
'AVG_DB_REQUEST_TIME',
'',
TO_VARCHAR(TO_DECIMAL(MAP(SUM(EXECUTION_COUNT), 0, 0,
SUM(TOTAL_EXECUTION_TIME) / SUM(EXECUTION_COUNT)) / 1000, 10, 2))
FROM
M_SQL_PLAN_CACHE
)
UNION ALL
( SELECT
'REPLICATION_ERROR',
'',
TO_VARCHAR(COUNT(*))
FROM
M_SERVICE_REPLICATION
WHERE
REPLICATION_STATUS = 'ERROR'
)
UNION ALL
( SELECT
'REPLICATION_UNKNOWN',
'',
TO_VARCHAR(COUNT(*))
FROM
M_SERVICES S,
M_SERVICE_REPLICATION SR
WHERE
S.HOST = SR.HOST AND
S.PORT = SR.PORT AND
S.COORDINATOR_TYPE != 'STANDBY' AND
SR.REPLICATION_STATUS = 'UNKNOWN'
)
UNION ALL
( SELECT
'LOG_SHIPPING_DELAY',
'',
IFNULL(TO_VARCHAR(MAX(SECONDS_BETWEEN(SHIPPED_LOG_POSITION_TIME,
LAST_LOG_POSITION_TIME))), '0')
FROM
DUMMY LEFT OUTER JOIN
M_SERVICE_REPLICATION ON
1 = 1
)
UNION ALL
( SELECT
'LAST_SPECIAL_DUMP',
'',
TO_VARCHAR(TO_DECIMAL(SECONDS_BETWEEN(MAX(FILE_MTIME), CURRENT_TIMESTAMP) /
86400, 10, 2))
FROM
M_TRACEFILES
WHERE
FILE_NAME LIKE '%.crashdump.%.trc' OR
FILE_NAME LIKE '%.emergencydump.%.trc' OR
FILE_NAME LIKE '%.rtedump.%.trc'
)
UNION ALL
( SELECT
'SQL_CACHE_LONG_INLIST',
'',
TO_VARCHAR(TO_DECIMAL(MAP(TOTAL_SIZE, 0, 0, INLIST_SIZE / TOTAL_SIZE * 100),
10, 2))
FROM
( SELECT
SUM(PLAN_MEMORY_SIZE) INLIST_SIZE
FROM
M_SQL_PLAN_CACHE
WHERE
TO_VARCHAR(SUBSTR(STATEMENT_STRING, 1, 5000)) LIKE '%' || RPAD('', 396,
CHAR(63) || CHAR(32) || ',' || CHAR(32)) || '%' OR
LOCATE(SUBSTR(STATEMENT_STRING, 1, 5000), '(' || CHAR(63) || ',' ||
CHAR(32) || CHAR(63), 1, 100) != 0
),
( SELECT SUM(CACHED_PLAN_SIZE) TOTAL_SIZE FROM M_SQL_PLAN_CACHE_OVERVIEW )
)
UNION ALL
( SELECT
'UDIV_OVERHEAD',
'',
TO_VARCHAR(COUNT(*))
FROM
M_CS_TABLES
WHERE
MAX_UDIV >= 10000000 AND
MAX_UDIV >= ( RAW_RECORD_COUNT_IN_MAIN + RAW_RECORD_COUNT_IN_DELTA ) * 2
)
UNION ALL
( SELECT
'SMALL_TABLES_DELTA_SIZE',
'',
TO_VARCHAR(TO_DECIMAL(SUM(CT.MEMORY_SIZE_IN_DELTA) / 1024 / 1024 / 1024,
10, 2))
FROM
TABLES T,
M_CS_TABLES CT
WHERE
T.SCHEMA_NAME = CT.SCHEMA_NAME AND
T.TABLE_NAME = CT.TABLE_NAME AND
T.AUTO_MERGE_ON = 'TRUE' AND
CT.MEMORY_SIZE_IN_MAIN < 50 * 1024 * 1024 AND
CT.MEMORY_SIZE_IN_DELTA < 500 * 1024 * 1024
)
UNION ALL
( SELECT
'REP_PARAMETER_DEVIATION',
'',
TO_VARCHAR(COUNT(DISTINCT(SUBSTR_AFTER(ALERT_DETAILS, 'parameter
mismatch'))))
FROM
_SYS_STATISTICS.STATISTICS_ALERTS
WHERE
ALERT_ID = 21 AND
SECONDS_BETWEEN(ALERT_TIMESTAMP, CURRENT_TIMESTAMP) <= 7200 AND
ALERT_DETAILS LIKE 'ReplicationError%parameter mismatch%'
)
UNION ALL
( SELECT
N.NAME,
'',
TO_VARCHAR(SUM(MAP(T.TABLE_NAME, NULL, 0, 1)))
FROM
( SELECT 'QCM_TABLES' NAME, 'QCM%' PATTERN FROM DUMMY UNION ALL
SELECT 'BPC_TABLES', '$BPC$HC$%' FROM DUMMY
) N LEFT OUTER JOIN
TABLES T ON
T.TABLE_NAME LIKE N.PATTERN AND
T.IS_TEMPORARY = 'FALSE'
GROUP BY
N.NAME
)
UNION ALL
( SELECT
'BW_SCALEOUT_TWO_NODES',
'',
CASE WHEN IS_BW_USED = 'Yes' AND D.DISTRIBUTED_SYSTEM = 'Yes (2 hosts)'
THEN 'yes' ELSE 'no' END
FROM
( SELECT
VALUE DISTRIBUTED_SYSTEM
FROM
M_SYSTEM_OVERVIEW
WHERE
SECTION = 'System' AND
NAME = 'Distributed'
) D,
( SELECT
CASE WHEN IFNULL(SUM(RECORD_COUNT), 0) <= 10 THEN 'No' ELSE 'Yes' END
IS_BW_USED
FROM
M_CS_TABLES
WHERE
TABLE_NAME = '/BI0/SREQUID'
) B
)
UNION ALL
( SELECT
'INDEXES_ON_SPARSE_PREFIXED',
'',
TO_VARCHAR(COUNT(*))
FROM
( SELECT
SCHEMA_NAME,
TABLE_NAME,
INDEX_NAME,
COLUMN_NAME
FROM
( SELECT
SCHEMA_NAME,
TABLE_NAME,
INDEX_NAME,
COLUMN_NAME,
CONSTRAINT,
COUNT(*) OVER (PARTITION BY SCHEMA_NAME, TABLE_NAME, INDEX_NAME)
NUM_COLUMNS
FROM
INDEX_COLUMNS
)
WHERE
NUM_COLUMNS = 1 OR ( CONSTRAINT IN ('PRIMARY KEY', 'UNIQUE', 'NOT NULL
UNIQUE' ) )
) IC,
INDEXES I,
( SELECT
SCHEMA_NAME,
TABLE_NAME,
COLUMN_NAME
FROM
M_CS_COLUMNS
WHERE
COUNT > 1000000 AND
COMPRESSION_TYPE IN ( 'SPARSE', 'PREFIXED' )
) C
WHERE
IC.SCHEMA_NAME = C.SCHEMA_NAME AND
IC.TABLE_NAME = C.TABLE_NAME AND
IC.COLUMN_NAME = C.COLUMN_NAME AND
I.SCHEMA_NAME = IC.SCHEMA_NAME AND
I.INDEX_NAME = IC.INDEX_NAME AND
I.TABLE_NAME = IC.TABLE_NAME AND
I.INDEX_TYPE != 'FULLTEXT'
)
UNION ALL
( SELECT
'LARGE_COLUMNS_NOT_COMPRESSED',
'',
TO_VARCHAR(COUNT(*))
FROM
M_CS_COLUMNS C,
TABLE_COLUMNS TC
WHERE
C.SCHEMA_NAME = TC.SCHEMA_NAME AND
C.TABLE_NAME = TC.TABLE_NAME AND
C.COLUMN_NAME = TC.COLUMN_NAME AND
C.COUNT > 10000000 AND
C.DISTINCT_COUNT <= COUNT * 0.05 AND
C.COMPRESSION_TYPE = 'DEFAULT' AND
C.MEMORY_SIZE_IN_TOTAL >= 500 * 1024 * 1024
)
UNION ALL
( SELECT
'MAX_CURR_SERV_ALL_LIMIT_USED',
HOST,
TO_VARCHAR(ROUND(MAX(MAP(EFFECTIVE_ALLOCATION_LIMIT, 0, 0,
TOTAL_MEMORY_USED_SIZE / EFFECTIVE_ALLOCATION_LIMIT * 100))))
FROM
M_SERVICE_MEMORY
GROUP BY
HOST
)
UNION ALL
( SELECT
'HOST_CS_UNLOADS_ACTIVE',
'',
MIN(MAP(LOCATE(REPLACE(VALUE, CHAR(32), ''), '1=0'), 0, 'yes', 'no'))
FROM
M_INIFILE_CONTENTS
WHERE
FILE_NAME = 'statisticsserver.ini' AND
SECTION = 'statisticsserver_view_STAT_VIEW_CS_UNLOADS' AND
KEY = 'query'
)
UNION ALL
( SELECT
'AUDIT_LOG_SIZE',
'',
TO_VARCHAR(TO_DECIMAL(SUM(DISK_SIZE) / 1024 / 1024 / 1024, 10, 2))
FROM
M_TABLE_PERSISTENCE_STATISTICS
WHERE
SCHEMA_NAME = '_SYS_AUDIT' AND
TABLE_NAME = 'CS_AUDIT_LOG_'
)
UNION ALL
( SELECT
'MAX_OBJECT_OID',
'',
TO_VARCHAR(MAX(OBJECT_OID))
FROM
OBJECTS
)
UNION ALL
( SELECT
'LARGE_SWAP_SPACE',
HOST,
TO_VARCHAR(TO_DECIMAL(VALUE / 1024 / 1024 / 1024, 10, 2))
FROM
M_HOST_INFORMATION
WHERE
KEY = 'mem_swap'
)
UNION ALL
( SELECT
'TEMPORARY_TABLES',
'',
TO_VARCHAR(COUNT(*))
FROM
M_TEMPORARY_TABLES
)
UNION ALL
( SELECT
C.NAME,
'',
TO_VARCHAR(MAP(MAX(T.TABLE_NAME), NULL, 0, COUNT(*)))
FROM
( SELECT 'MANY_RECORDS' NAME FROM DUMMY UNION ALL
SELECT 'SID_TABLES_WITH_MANY_RECORDS' FROM DUMMY UNION ALL
SELECT 'MANY_RECORDS_HISTORY' FROM DUMMY
) C LEFT OUTER JOIN
M_CS_TABLES T ON
( C.NAME = 'MANY_RECORDS' AND T.RECORD_COUNT > 1500000000 AND T.TABLE_NAME
NOT LIKE '/B%/S%' ) OR
( C.NAME = 'SID_TABLES_WITH_MANY_RECORDS' AND T.RECORD_COUNT > 1500000000
AND T.TABLE_NAME LIKE '/B%/S%' ) OR
( C.NAME = 'MANY_RECORDS_HISTORY' AND T.RAW_RECORD_COUNT_IN_HISTORY_MAIN +
T.RAW_RECORD_COUNT_IN_HISTORY_DELTA > 1500000000 )
GROUP BY
C.NAME
)
UNION ALL
( SELECT
C.NAME,
'',
TO_VARCHAR(MAP(MAX(T.TABLE_NAME), NULL, 0, COUNT(*)))
FROM
( SELECT 'NUM_PARTITIONED_SID_TABLES' NAME FROM DUMMY UNION ALL
SELECT 'NUM_PART_SPECIAL_TABLES' FROM DUMMY
) C LEFT OUTER JOIN
( SELECT
SCHEMA_NAME,
TABLE_NAME,
SUM(RECORD_COUNT) RECORD_COUNT
FROM
M_CS_TABLES
WHERE
TABLE_NAME LIKE '/B%/%'
GROUP BY
SCHEMA_NAME,
TABLE_NAME
HAVING
COUNT(*) > 1
) T ON
( C.NAME = 'NUM_PARTITIONED_SID_TABLES' AND T.TABLE_NAME LIKE '/B%/S%' ) OR
( C.NAME = 'NUM_PART_SPECIAL_TABLES' AND T.RECORD_COUNT <= 1500000000 AND
( TABLE_NAME LIKE '/B%/H%' OR TABLE_NAME LIKE '/B%/I%' OR TABLE_NAME LIKE
'/B%/J%' OR
TABLE_NAME LIKE '/B%/K%' OR TABLE_NAME LIKE '/B%/P%' OR TABLE_NAME LIKE
'/B%/Q%' OR
TABLE_NAME LIKE '/B%/T%' OR TABLE_NAME LIKE '/B%/X%' OR TABLE_NAME LIKE
'/B%/Y%'
)
)
GROUP BY
C.NAME
)
UNION ALL
( SELECT
'TABLES_WRONG_SERVICE',
'',
TO_VARCHAR(COUNT(*))
FROM
M_CS_TABLES T,
M_SERVICES S
WHERE
S.PORT = T.PORT AND
S.SERVICE_NAME NOT IN ( 'indexserver', 'statisticsserver' )
)
UNION ALL
( SELECT
'TABLES_WITH_EMPTY_LOCATION',
'',
TO_VARCHAR(COUNT(*))
FROM
M_TABLE_LOCATIONS
WHERE
LOCATION IS NULL OR LOCATION = ''
)
UNION ALL
( SELECT
'UNKNOWN_HARDWARE',
'',
TO_VARCHAR(COUNT(*))
FROM
M_HOST_INFORMATION
WHERE
KEY IN ( 'hw_model', 'hw_manufacturer' ) AND
UPPER(VALUE) = '<UNKNOWN>'
)
UNION ALL
( SELECT
'OS_RELEASE',
HOST,
CASE OS_PPMS_NAME
WHEN 'LINUX_PPC64' THEN
CASE OS_NAME
WHEN 'SUSE Linux Enterprise Server 11.3' THEN 'yes'
WHEN 'SUSE Linux Enterprise Server 11.4' THEN 'yes'
WHEN 'SUSE Linux Enterprise Server 12.0' THEN 'yes'
ELSE 'no (' || OS_NAME || ')'
END
ELSE
CASE
WHEN OS_NAME = 'SUSE Linux Enterprise Server 11.2' AND
REVISION < 120 THEN 'yes'
WHEN OS_NAME = 'SUSE Linux Enterprise Server 11.3' THEN
'yes'
WHEN OS_NAME = 'SUSE Linux Enterprise Server 11.4' THEN
'yes'
WHEN OS_NAME = 'SUSE Linux Enterprise Server 12.0' THEN
'yes'
WHEN OS_NAME = 'SUSE Linux Enterprise Server 12.1' THEN
'yes'
WHEN OS_NAME = 'Red Hat Enterprise Linux Server release 6.5' THEN
'yes'
WHEN OS_NAME = 'Red Hat Enterprise Linux Server release 6.6' THEN
'yes'
WHEN OS_NAME = 'Red Hat Enterprise Linux Server release 6.7' THEN
'yes'
WHEN OS_NAME LIKE 'Linux 2.6.32-431%' THEN
'yes'
WHEN OS_NAME LIKE 'Linux 2.6.32-504%' THEN
'yes'
WHEN OS_NAME LIKE 'Linux 2.6.32-573%' THEN
'yes'
ELSE 'no (' || OS_NAME || ')'
END
END
FROM
( SELECT
HOST,
MAX(MAP(KEY, 'os_name', VALUE)) OS_NAME,
MAX(MAP(KEY, 'os_ppms_name', VALUE)) OS_PPMS_NAME
FROM
M_HOST_INFORMATION
GROUP BY
HOST
),
( SELECT
TO_NUMBER(LTRIM(CASE
WHEN LOCATE(VALUE, '.', 1, 4) - LOCATE(VALUE, '.', 1, 3) = 3 THEN
SUBSTR(VALUE, LOCATE(VALUE, '.', 1, 2) + 1, LOCATE(VALUE, '.', 1, 4)
- LOCATE(VALUE, '.', 1, 2) - 1)
ELSE
SUBSTR(VALUE, LOCATE(VALUE, '.', 1, 2) + 1, LOCATE(VALUE, '.', 1, 3)
- LOCATE(VALUE, '.', 1, 2) - 1) || '.00'
END, '0')) REVISION
FROM
M_SYSTEM_OVERVIEW
WHERE
SECTION = 'System' AND
NAME = 'Version'
)
)
UNION ALL
( SELECT /* Needs to be able to extract "47[.71]" from versions like
3.0.101-0.47.71.7930.0.PTF-default, 3.0.101-0.47-bigsmp or 3.0.101-
0.47.71-default or
3.0.101-63-default / 3.0.101-65.1.9526.1.PTF-default (SLES 11.4) */
'OS_KERNEL_VERSION',
HOST,
CASE
WHEN OS_NAME = 'SUSE Linux Enterprise Server 11.2' AND NFS_USED = 'X' AND
KV < 7.23 THEN 'no'
WHEN OS_NAME = 'SUSE Linux Enterprise Server 11.3' AND NFS_USED = 'X' AND
KV < 40 THEN 'no'
WHEN OS_NAME = 'SUSE Linux Enterprise Server 11.3' AND XFS_USED = 'X' AND
KV < 47.71 THEN 'no'
WHEN OS_NAME = 'SUSE Linux Enterprise Server 11.4' AND XFS_USED = 'X' AND
KV < 68 THEN 'no'
WHEN OS_NAME = 'SUSE Linux Enterprise Server 12' AND XFS_USED = 'X' AND
KV < 52.31 THEN 'no'
ELSE 'yes'
END
FROM
( SELECT
O.HOST,
O.OS_NAME,
O.OS_PPMS_NAME,
CASE OS_NAME
WHEN 'SUSE Linux Enterprise Server 11.4' THEN
TO_NUMBER(SUBSTR(KV, LOCATE(KV, '-', 1, 1) + 1, LEAST(MAP(LOCATE(KV,
'-', 1, 2), 0, 9999, LOCATE(KV, '-', 1, 2)), MAP(LOCATE(KV, '.', 1, 3), 0, 9999,
LOCATE(KV, '.', 1, 3))) - LOCATE(KV, '-', 1, 1) - 1))
ELSE
TO_NUMBER(SUBSTR(KV, LOCATE(KV, '.', 1, 3) + 1, LEAST(MAP(LOCATE(KV,
'-', 1, 2), 0, 9999, LOCATE(KV, '-', 1, 2)), MAP(LOCATE(KV, '.', 1, 5), 0, 9999,
LOCATE(KV, '.', 1, 5))) - LOCATE(KV, '.', 1, 3) - 1))
END KV,
D.NFS_USED,
D.XFS_USED
FROM
( SELECT
HOST,
MAX(MAP(KEY, 'os_name', VALUE)) OS_NAME,
MAX(MAP(KEY, 'os_ppms_name', VALUE)) OS_PPMS_NAME,
MAX(MAP(KEY, 'os_kernel_version', VALUE)) KV
FROM
M_HOST_INFORMATION
GROUP BY
HOST
) O,
( SELECT
CASE SUM(MAP(FILESYSTEM_TYPE, 'nfs', 1, 0)) WHEN 0 THEN ' ' ELSE 'X'
END NFS_USED,
CASE SUM(MAP(FILESYSTEM_TYPE, 'xfs', 1, 0)) WHEN 0 THEN ' ' ELSE 'X'
END XFS_USED
FROM
M_DISKS
) D
)
)
UNION ALL
( SELECT
'SERVICE_LOG_BACKUPS',
'',
TO_VARCHAR(MAX(LOG_BACKUPS))
FROM
( SELECT
CF.HOST,
CF.SERVICE_TYPE_NAME,
COUNT(*) LOG_BACKUPS
FROM
M_BACKUP_CATALOG C,
M_BACKUP_CATALOG_FILES CF
WHERE
C.BACKUP_ID = CF.BACKUP_ID AND
C.ENTRY_TYPE_NAME = 'log backup' AND
C.STATE_NAME = 'successful' AND
C.SYS_START_TIME >= ADD_SECONDS(CURRENT_TIMESTAMP, -86400) AND
CF.SOURCE_TYPE_NAME = 'volume'
GROUP BY
CF.HOST,
CF.SERVICE_TYPE_NAME
)
)
UNION ALL
( SELECT
'OPEN_CONNECTIONS',
HOST,
TO_VARCHAR(TO_DECIMAL(MAP(MAX_CONNECTIONS, 0, 0, NUM_CONNECTIONS /
MAX_CONNECTIONS * 100), 10, 2))
FROM
( SELECT
C.HOST,
C.NUM_CONNECTIONS,
IFNULL(P.SYSTEM_VALUE, IFNULL(P.HOST_VALUE, IFNULL(P.DEFAULT_VALUE,
65536))) MAX_CONNECTIONS
FROM
( SELECT
HOST,
COUNT(*) NUM_CONNECTIONS
FROM
M_CONNECTIONS
WHERE
CONNECTION_TYPE IN ('Local', 'Remote')
GROUP BY
HOST
) C LEFT OUTER JOIN
( SELECT
HOST,
MAX(MAP(LAYER_NAME, 'DEFAULT', VALUE)) DEFAULT_VALUE,
MAX(MAP(LAYER_NAME, 'HOST', VALUE)) HOST_VALUE,
MAX(MAP(LAYER_NAME, 'SYSTEM', VALUE)) SYSTEM_VALUE
FROM
M_INIFILE_CONTENTS
WHERE
FILE_NAME = 'indexserver.ini' AND
SECTION = 'session' AND
KEY = 'maximum_connections'
GROUP BY
HOST
) P ON
C.HOST = P.HOST
)
)
UNION ALL
( SELECT
'OPEN_TRANSACTIONS',
'',
TO_VARCHAR(COUNT(*))
FROM
M_TRANSACTIONS
)
UNION ALL
( SELECT
'SERVER_TIME_VARIATION',
'',
TO_VARCHAR(SECONDS_BETWEEN(MIN(SYS_TIMESTAMP), MAX(SYS_TIMESTAMP)))
FROM
M_HOST_RESOURCE_UTILIZATION
)
UNION ALL
( SELECT
'CALCENGINE_CACHE_UTILIZATION',
'',
TO_VARCHAR(ROUND(MAP(P.CONF_SIZE_KB, 0, 100, C.USED_SIZE_KB /
P.CONF_SIZE_KB * 100))) USED_PCT
FROM
( SELECT
IFNULL(MAX(USED_SIZE_BYTE) / 1024, 0) USED_SIZE_KB
FROM
( SELECT
SUM(MEMORY_SIZE) USED_SIZE_BYTE
FROM
M_CE_CALCSCENARIOS
WHERE
IS_PERSISTENT = 'TRUE'
GROUP BY
HOST,
PORT
)
) C,
( SELECT
MAP(VALUE, NULL, 1048576, VALUE) CONF_SIZE_KB
FROM
DUMMY LEFT OUTER JOIN
M_INIFILE_CONTENTS ON
FILE_NAME = 'indexserver.ini' AND
SECTION = 'calcengine' AND
KEY = 'max_cache_size_kb'
) P
)
UNION ALL
( SELECT
'INVALID_PROCEDURES',
'',
TO_VARCHAR(COUNT(*))
FROM
PROCEDURES
WHERE
IS_VALID = 'FALSE'
)
UNION ALL
( SELECT
'NAMESERVER_LOCKFILE_LOCATION',
'',
MAP(COUNT(*), 0, 'yes', 'no')
FROM
M_SERVICE_STATISTICS S,
M_MERGED_TRACES T
WHERE
S.HOST = T.HOST AND
S.PORT = T.PORT AND
SECONDS_BETWEEN(S.START_TIME, T.TIMESTAMP) > -10000 AND
T.TRACE_FILE_NAME LIKE '%daemon%' AND
UPPER(TO_VARCHAR(SUBSTR(T.TRACE_TEXT, 1, 4000))) LIKE '%SEE SAP NOTE
2100296%'
)
UNION ALL
( SELECT
'STAT_SERVER_DUPLICATE_KEYS',
'',
TO_VARCHAR(COUNT(DISTINCT(TO_VARCHAR(TRACE_TEXT))))
FROM
M_MERGED_TRACES
WHERE
UPPER(TO_VARCHAR(SUBSTR(TRACE_TEXT, 1, 4000))) LIKE '%301%UNIQUE CONSTRAINT
VIOLATED%_SYS_STATISTICS%' AND
TIMESTAMP >= ADD_DAYS(CURRENT_TIMESTAMP, -7)
)
UNION ALL
( SELECT
C.NAME,
'',
CASE C.NAME
WHEN 'TRANSACTIONS_LARGE_UNDO' THEN
TO_VARCHAR(TO_DECIMAL(MAX(UNDO_LOG_AMOUNT / 1024 / 1024), 10, 2))
WHEN 'TRANSACTIONS_LARGE_REDO' THEN
TO_VARCHAR(TO_DECIMAL(MAX(REDO_LOG_AMOUNT / 1024 / 1024), 10, 2))
END
FROM
( SELECT 'TRANSACTIONS_LARGE_UNDO' NAME FROM DUMMY UNION ALL
SELECT 'TRANSACTIONS_LARGE_REDO' FROM DUMMY
) C,
M_TRANSACTIONS T
GROUP BY
C.NAME
)
UNION ALL
( SELECT
'LONG_RUNNING_JOB',
'',
TO_VARCHAR(IFNULL(MAX(SECONDS_BETWEEN(START_TIME, CURRENT_TIMESTAMP)), 0))
FROM
M_JOB_PROGRESS
)
UNION ALL
( SELECT
'TOPOLOGY_DAEMON_INCONSISTENT',
S.HOST,
TO_VARCHAR(SUM(MAP(S.ACTIVE_STATUS, 'NO', 1, 0)))
FROM
M_SERVICES D,
M_SERVICES S
WHERE
D.SERVICE_NAME = 'daemon' AND
D.ACTIVE_STATUS = 'YES' AND
S.HOST = D.HOST
GROUP BY
S.HOST
)
UNION ALL
( SELECT
'TOPOLOGY_ROLES_INCONSISTENT',
'',
MAP(C.CONF_WORKERS, A.ACT_WORKERS, 'no', 'yes')
FROM
( SELECT COUNT(*) CONF_WORKERS FROM M_LANDSCAPE_HOST_CONFIGURATION WHERE
INDEXSERVER_CONFIG_ROLE = 'WORKER' ) C,
( SELECT COUNT(*) ACT_WORKERS FROM M_LANDSCAPE_HOST_CONFIGURATION WHERE
INDEXSERVER_ACTUAL_ROLE IN ('MASTER', 'SLAVE' ) ) A
)
UNION ALL
( SELECT
'CORRUPTION_RISK_LARGE_TABLES',
'',
TO_VARCHAR(COUNT(DISTINCT(T.SCHEMA_NAME || T.TABLE_NAME || T.PART_ID)))
FROM
M_CS_TABLES T,
M_CS_ALL_COLUMNS C
WHERE
T.SCHEMA_NAME = C.SCHEMA_NAME AND
T.TABLE_NAME = C.TABLE_NAME AND
T.RAW_RECORD_COUNT_IN_MAIN > 1000000000 AND
C.INDEX_TYPE = 'FULL'
)
UNION ALL
( SELECT
'NOLOGGING_TABLES',
'',
TO_VARCHAR(COUNT(*))
FROM
TABLES
WHERE
IS_LOGGED = 'FALSE'
)
UNION ALL
( SELECT
'ABAP_POOL_CLUSTER_TABLES',
'',
TO_VARCHAR(COUNT(*))
FROM
M_CS_TABLES
WHERE
TABLE_NAME IN ('CDCLS', 'EDI40', 'KAPOL', 'KOCLU', 'RFBLG' ) AND
RECORD_COUNT > 0
)
UNION ALL
( SELECT
I.NAME,
'',
TO_VARCHAR(SUM(CASE I.NAME
WHEN 'TRANS_LOCKS_GLOBAL' THEN 1
WHEN 'OLD_TRANS_LOCKS' THEN CASE WHEN R.ACQUIRED_TIME != '' AND
SECONDS_BETWEEN(R.ACQUIRED_TIME, CURRENT_TIMESTAMP) >= 86400 THEN 1 ELSE 0 END
END))
FROM
( SELECT 'TRANS_LOCKS_GLOBAL' NAME FROM DUMMY UNION ALL
SELECT 'OLD_TRANS_LOCKS' FROM DUMMY
) I LEFT OUTER JOIN
( SELECT ACQUIRED_TIME FROM M_OBJECT_LOCKS UNION ALL
SELECT ACQUIRED_TIME FROM M_RECORD_LOCKS WHERE TABLE_NAME LIKE '%'
) R ON
1 = 1
GROUP BY
I.NAME
)
UNION ALL
( SELECT
'MULTI_COLUMN_HASH_PART',
'',
TO_VARCHAR(SUM(MAP(LOCATE(HASH_SPEC, ','), 0, 0, 1)))
FROM
( SELECT
TABLE_NAME,
SUBSTR(PARTITION_SPEC, 1, MAP(LOCATE(PARTITION_SPEC, ';', 1), 0, 9999,
LOCATE(PARTITION_SPEC, ';', 1)) - 1) HASH_SPEC
FROM
TABLES
WHERE
PARTITION_SPEC LIKE 'HASH%' AND
TABLE_NAME NOT LIKE '/B%/%'
)
)
UNION ALL
( SELECT
'CONNECTIONS_CANCEL_REQUESTED',
'',
TO_VARCHAR(COUNT(*))
FROM
M_CONNECTIONS
WHERE
CONNECTION_STATUS LIKE '%CANCEL REQUESTED%'
)
) C,
( SELECT /* Modification section */
'%' HOST,
' ' ONLY_POTENTIALLY_CRITICAL_RESULTS,
52 MAX_VALUE_LENGTH,
'CHECK' ORDER_BY /* HOST, CHECK */
FROM
DUMMY
) BI,
( SELECT
TO_NUMBER(SUBSTR(VALUE, LOCATE(VALUE, '.', 1, 2) + 1, LOCATE(VALUE, '.', 1,
3) - LOCATE(VALUE, '.', 1, 2) - 1) ||
MAP(LOCATE(VALUE, '.', 1, 4), 0, '', '.' || SUBSTR(VALUE, LOCATE(VALUE, '.',
1, 3) + 1, LOCATE(VALUE, '.', 1, 4) - LOCATE(VALUE, '.', 1, 3) - 1 ))) REVISION
FROM
M_SYSTEM_OVERVIEW
WHERE
SECTION = 'System' AND
NAME = 'Version'
) REL,
( SELECT -1 CHECK_NUM, '' NAME, '' DESCRIPTION,
'' SAP_NOTE, '' EXPECTED_OP, '' EXPECTED_VALUE, -1 MIN_REV, -1 MAX_REV FROM DUMMY
WHERE 1 = 0 UNION ALL
( SELECT 1, 'INFO_LINE', 'SAP HANA MINI CHECKS',
'1999993', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 2, 'BLANK_LINE', '',
'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 10, 'ANALYSIS_DATE', 'Analysis date',
'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 11, 'DATABASE_NAME', 'Database name',
'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 12, 'REVISION_LEVEL', 'Revision level',
'2021789', '>=', '96.00', -1, 99.99 FROM DUMMY ) UNION ALL
( SELECT 12, 'REVISION_LEVEL', 'Revision level',
'2021789', '>=', '102.03', 100,109.99 FROM DUMMY ) UNION ALL
( SELECT 12, 'REVISION_LEVEL', 'Revision level',
'2021789', '>=', '112.00', 110,119.99 FROM DUMMY ) UNION ALL
( SELECT 12, 'REVISION_LEVEL', 'Revision level',
'2021789', '>=', '120.00', 120,129.99 FROM DUMMY ) UNION ALL
( SELECT 110, 'EVERYTHING_STARTED', 'Everything started',
'2177064', '=', 'yes', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 111, 'HOST_START_TIME_VARIATION', 'Host startup time variation
(s)', '2177064', '<=', '600', -1, -1 FROM
DUMMY ) UNION ALL
( SELECT 115, 'SERVICE_START_TIME_VARIATION', 'Service startup time variation
(s)', '2177064', '<=', '600', -1, -1 FROM DUMMY )
UNION ALL

( SELECT 200, 'BLANK_LINE', '',


'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 201, 'INFO_LINE', 'OPERATING SYSTEM',
'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 202, 'BLANK_LINE', '',
'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 208, 'OS_RELEASE', 'Supported operating system',
'2235581', '=', 'yes', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 209, 'OS_KERNEL_VERSION', 'Recommended operating system
kernel version', '2235581', '=', 'yes', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 210, 'SLOW_CPU', 'Minimum CPU rate (MHz)',
'1890444', '>=', '1950', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 211, 'VARYING_CPU', 'Hosts with varying CPU rates',
'1890444', '=', 'no', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 220, 'CPU_BUSY_CURRENT', 'Current CPU utilization (%)',
'2100040', '<=', '80', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 221, 'CPU_BUSY_RECENT', 'Peak CPU utilization (%, last
day)', '2100040', '<=', '90', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 222, 'CPU_BUSY_HISTORY', 'Time since CPU utilization > 95
% (h)', '2100040', '>=', '12.00', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 226, 'CPU_BUSY_SYSTEM_RECENT', 'Peak system CPU utilization (%,
last day)', '2100040', '<=', '30', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 230, 'MEMORY_USED_CURRENT', 'Current memory utilization
(%)', '1999997', '<=', '90', -1, -1 FROM DUMMY
) UNION ALL
( SELECT 231, 'MEMORY_USED_HISTORY', 'Time since memory utilization >
95 % (h)', '1999997', '>=', '12.00', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 235, 'VARYING_MEMORY', 'Hosts with varying physical
memory size', '1999997', '=', 'no', -1, -1 FROM
DUMMY ) UNION ALL
( SELECT 240, 'SWAP_SPACE_USED_CURRENT', 'Current swap utilization (GB)',
'1999997', '=', '0', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 241, 'SWAP_SPACE_USED_HISTORY', 'Time since swap utilization > 1
GB (h)', '1999997', '>=', '480', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 245, 'LARGE_SWAP_SPACE', 'Swap space size (GB)',
'1999997', '<=', '35.00', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 250, 'DISK_SIZE', 'Max. used disk size (%)',
'1870858', '<=', '90', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 260, 'OS_OPEN_FILES', 'Open files limit (OS)',
'1771873', '>=', '100000', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 270, 'UNKNOWN_HARDWARE', 'Unknown hardware components',
'1828631', '=', '0', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 280, 'SERVER_TIME_VARIATION', 'Maximum time variation between
hosts (s)', '', '<=', '5', -1, -1 FROM DUMMY )
UNION ALL

( SELECT 300, 'BLANK_LINE', '',


'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 301, 'INFO_LINE', 'DISK I/O',
'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 302, 'BLANK_LINE', '',
'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 310, 'MIN_IO_READ_THROUGHPUT_DATA', 'I/O read throughput data min.
(MB/s, last day)', '1999930', '>=', '20', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 311, 'AVG_IO_READ_THROUGHPUT_DATA', 'I/O read throughput data avg.
(MB/s, last day)', '1999930', '>=', '100', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 315, 'MIN_IO_WRITE_THROUGHPUT_DATA', 'I/O write throughput data min.
(MB/s, last day)', '1999930', '>=', '20', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 316, 'AVG_IO_WRITE_THROUGHPUT_DATA', 'I/O write throughput data avg.
(MB/s, last day)', '1999930', '>=', '100', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 320, 'MIN_IO_READ_THROUGHPUT_LOG', 'I/O read throughput log min.
(MB/s, last day)', '1999930', '>=', '30', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 321, 'AVG_IO_READ_THROUGHPUT_LOG', 'I/O read throughput log avg.
(MB/s, last day)', '1999930', '>=', '100', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 325, 'MIN_IO_WRITE_THROUGHPUT_LOG', 'I/O write throughput log min.
(MB/s, last day)', '1999930', '>=', '10', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 326, 'AVG_IO_WRITE_THROUGHPUT_LOG', 'I/O write throughput log avg.
(MB/s, last day)', '1999930', '>=', '20', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 330, 'TRIGGER_READ_RATIO', 'Max. trigger read ratio
(data)', '1930979', '<=', '0.50', -1, -1 FROM
DUMMY ) UNION ALL
( SELECT 331, 'TRIGGER_WRITE_RATIO', 'Max. trigger write ratio (data,
log)', '1930979', '<=', '0.50', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 340, 'LOG_WAIT_RATIO', 'Log switch wait count ratio
(%)', '', '<=', '1', -1, -1 FROM
DUMMY ) UNION ALL
( SELECT 341, 'LOG_RACE_RATIO', 'Log switch race count ratio
(%)', '', '<=', '1', -1, -1 FROM
DUMMY ) UNION ALL
( SELECT 350, 'HIGH_CRIT_SAVEPOINT_PHASE', 'Blocking savepoint phases > 10
s (last day)', '2100009', '=', '0', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 351, 'AVG_CRIT_SAVEPOINT_PHASE', 'Blocking savepoint phase avg.
(s, last day)', '2100009', '<=', '2.00', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 352, 'MAX_CRIT_SAVEPOINT_PHASE', 'Blocking savepoint phase max.
(s, last day)', '2100009', '<=', '10.00', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 355, 'TIME_SINCE_LAST_SAVEPOINT', 'Time since last savepoint (s)',
'2100009', '<=', '900', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 357, 'SAVEPOINT_THROUGHPUT', 'Savepoint write throughput
(MB/s)', '2100009', '>=', '100', -1, -1 FROM DUMMY
) UNION ALL
( SELECT 358, 'LONG_RUNNING_SAVEPOINTS', 'Savepoints taking longer than
900 s (last day)', '2100009', '=', '0', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 360, 'FAILED_IO_READS', 'Number of failed I/O reads',
'', '=', '0', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 361, 'FAILED_IO_WRITES', 'Number of failed I/O writes',
'', '=', '0', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 370, 'DISK_DATA_FRAGMENTATION', 'Unused space in data files
(%)', '1870858', '<=', '40', -1, -1 FROM DUMMY
) UNION ALL
( SELECT 380, 'OLDEST_BACKUP_SNAPSHOT', 'Age of oldest backup snapshot
(days)', '2100009', '<=', '30.00', -1, -1 FROM DUMMY )
UNION ALL

( SELECT 400, 'BLANK_LINE', '',


'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 401, 'INFO_LINE', 'MEMORY',
'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 402, 'BLANK_LINE', '',
'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 410, 'CURR_ALLOCATION_LIMIT_USED', 'Current allocation limit used
(%)', '1999997', '<=', '80', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 411, 'TABLE_ALLOCATION_LIMIT_RATIO', 'Current allocation limit used
by tables (%)', '1999997', '<=', '50', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 413, 'HIST_ALLOCATION_LIMIT_USED', 'Time since allocation limit
used > 90 % (h)', '1999997', '>=', '24', -1, -1 FROM
DUMMY ) UNION ALL
( SELECT 415, 'MAX_CURR_SERV_ALL_LIMIT_USED', 'Curr. max. service allocation
limit used (%)', '1999997', '<=', '80', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 420, 'CURRENT_LARGE_HEAP_AREAS', 'Heap areas currently larger
than 50 GB', '1999997', '=', 'none', -1, -1 FROM
DUMMY ) UNION ALL
( SELECT 421, 'RECENT_LARGE_HEAP_AREAS', 'Heap areas larger than 100 GB
(last day)', '1999997', '=', 'none', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 422, 'HISTORIC_LARGE_HEAP_AREAS', 'Heap areas larger than 200 GB
(history)', '1999997', '=', 'none', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 425, 'CPBTREE_LEAK', 'Pool/RowEngine/CpbTree leak
size (GB)', '1999997', '<=', '20.00', -1, -1 FROM
DUMMY ) UNION ALL
( SELECT 430, 'CURRENT_UNLOADS', 'Number of column store unloads
(last day)', '1977207', '=', '0', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 431, 'LAST_UNLOAD', 'Time since last column store
unload (days)', '1977207', '>=', '5.00', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 440, 'NAMESERVER_SHARED_MEMORY', 'Shared memory utilization of
nameserver (%)', '1977101', '<=', '70', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 460, 'CALCENGINE_CACHE_UTILIZATION', 'Calculation engine cache
utilization (%)', '2000002', '<=', '70', -1, -1 FROM
DUMMY ) UNION ALL
( SELECT 470, 'FREQUENT_ALLOCATORS', 'Heap allocators with many
instantiations', '1999997', '=', 'none', -1, -1 FROM
DUMMY ) UNION ALL

( SELECT 500, 'BLANK_LINE', '',


'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 501, 'INFO_LINE', 'TABLES',
'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 502, 'BLANK_LINE', '',
'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 510, 'MANY_PARTITIONS', 'Tables with > 100 partitions',
'2044468', '=', '0', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 512, 'MULTI_COLUMN_HASH_PART', 'Hash partitioning on multiple
columns', '2044468', '=', '0', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 520, 'MANY_RECORDS', 'Tables / partitions > 1.5
billion rows', '1921694', '=', '0', -1, -1 FROM
DUMMY ) UNION ALL
( SELECT 521, 'MANY_RECORDS_HISTORY', 'Table histories > 1.5 billion
rows', '1921694', '=', '0', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 530, 'ROW_STORE_SIZE', 'Row store size (GB)',
'2050579', '<=', '300', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 535, 'ROW_STORE_FRAGMENTATION', 'Row store fragmentation (%)',
'1813245', '<=', '30', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 538, 'LONG_DELTA_MERGES', 'Delta merges > 900 s (last
day)', '2057046', '=', '0', -1, -1 FROM DUMMY
) UNION ALL
( SELECT 540, 'FAILING_DELTA_MERGES_INFO', 'Failing delta merges (info
messages, last day)', '2057046', '<=', '1000', -1, -1 FROM DUMMY
) UNION ALL
( SELECT 541, 'FAILING_DELTA_MERGES_ERROR', 'Failing delta merges (error
messages, last day)', '2057046', '=', '0', -1, -1 FROM
DUMMY ) UNION ALL
( SELECT 542, 'LARGE_DELTA_STORAGE_AUTO', 'Auto merge tables with delta
storage > 5 GB', '2057046', '=', 'none', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 543, 'MANY_DELTA_RECORDS_AUTO', 'Auto merge tables with many
delta records', '2057046', '=', 'none', -1, -1 FROM
DUMMY ) UNION ALL
( SELECT 544, 'LARGE_DELTA_STORAGE_NOAUTO', 'Non-auto merge tables with
delta storage > 5 GB', '2057046', '=', 'none', -1, -1 FROM DUMMY
) UNION ALL
( SELECT 545, 'MANY_DELTA_RECORDS_NOAUTO', 'Non-auto merge tables with many
delta records', '2057046', '=', 'none', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 546, 'SMALL_TABLES_DELTA_SIZE', 'Delta size of small auto merge
tables (GB)', '2057046', '<=', '3.00', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 547, 'TABLES_AUTOMERGE_DISABLED', 'Non BW tables with disabled
auto merge', '2057046', '=', '0', -1, -1 FROM
DUMMY ) UNION ALL
( SELECT 548, 'TABLES_PERSMERGE_DISABLED', 'Tables with disabled persistent
merge', '2057046', '=', '0', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 549, 'TABLES_AUTOCOMP_DISABLED', 'Non BW tables with disabled
auto compression', '2112604', '=', '0', -1, -1 FROM
DUMMY ) UNION ALL
( SELECT 550, 'ST_POINT_TABLES', 'Row store tables with ST_POINT
columns', '2038897', '=', '0', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 555, 'TABLES_MOVED_LOGICALLY', 'Tables / partitions moved only
logically', '2066313', '=', '0', -1, 82 FROM DUMMY )
UNION ALL
( SELECT 560, 'LARGE_TABLES_NOT_COMPRESSED', 'Tables > 10 Mio. rows not
compressed', '2105761', '=', '0', -1, -1 FROM
DUMMY ) UNION ALL
( SELECT 561, 'LARGE_COLUMNS_NOT_COMPRESSED', 'Columns > 10 Mio. rows not
compressed', '2112604', '=', '0', -1, -1 FROM DUMMY
) UNION ALL
( SELECT 563, 'INDEXES_ON_SPARSE_PREFIXED', 'Indexes on large SPARSE /
PREFIXED columns', '2112604', '=', '0', -1, -1 FROM
DUMMY ) UNION ALL
( SELECT 565, 'UDIV_OVERHEAD', 'Tables > 10 Mio. rows and > 200
% UDIV rows', '2112604', '=', '0', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 566, 'TREX_UDIV_FRAGMENTATION', 'Tables with fragmented
$trex_udiv$ column', '2112604', '=', '0', -1, -1 FROM
DUMMY ) UNION ALL
( SELECT 570, 'TEMPORARY_TABLES', 'Number of temporary tables',
'', '<=', '100000', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 572, 'NOLOGGING_TABLES', 'Number of NO LOGGING tables',
'', '<=', '7000', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 580, 'TABLES_WRONG_SERVICE', 'Tables assigned to wrong
service', '', '=', '0', -1, -1 FROM
DUMMY ) UNION ALL
( SELECT 582, 'TABLES_WITH_EMPTY_LOCATION', 'Tables with empty table
location', '', '=', '0', -1, -1 FROM
DUMMY ) UNION ALL

( SELECT 600, 'BLANK_LINE', '',


'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 601, 'INFO_LINE', 'TRACES, DUMPS AND LOGS',
'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 602, 'BLANK_LINE', '',
'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 610, 'KERNEL_PROFILER', 'Kernel profiler active',
'1804811', '=', 'no', 70, -1 FROM DUMMY ) UNION ALL
( SELECT 612, 'PERFORMANCE_TRACE', 'Performance trace enabled',
'1787489', '=', 'no', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 614, 'SQL_TRACE', 'SQL trace enabled',
'2031647', '=', 'no', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 616, 'INDEXSERVER_PYTHON_TRACE', 'Indexserver python trace
enabled', '1935113', '=', 'no', -1, -1 FROM
DUMMY ) UNION ALL
( SELECT 617, 'EXECUTOR_PYTHON_TRACE', 'Executor python trace enabled',
'2020877', '=', 'no', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 618, 'CLIENT_NETWORK_TRACE', 'SQL client network trace
enabled', '2222200', '=', 'no', -1, -1 FROM
DUMMY ) UNION ALL
( SELECT 620, 'EXPENSIVE_SQL_TRACE_THLD', 'Minimum expensive SQL trace
threshold (ms)', '2180165', '>=', '1000', -1, -1 FROM
DUMMY ) UNION ALL
( SELECT 623, 'EXPENSIVE_SQL_TRACE_RECORDS', 'Traced expensive SQL statements
(last day)', '2180165', '<=', '5000', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 630, 'DATABASE_TRACE_SETTINGS', 'Existence of database trace
settings', '2119087', '=', 'no', -1, -1 FROM
DUMMY ) UNION ALL
( SELECT 635, 'USER_TRACE_SETTINGS', 'Existence of user specific
trace settings', '2119087', '=', 'no', -1, -1 FROM DUMMY
) UNION ALL
( SELECT 637, 'END_TO_END_TRACE_SETTINGS', 'Existence of end-to-end trace
settings', '2119087', '=', 'no', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 640, 'NUM_TRACEFILES_TOTAL', 'Number of tracefiles (total)',
'1977162', '<=', '150', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 641, 'NUM_TRACEFILES_DAY', 'Number of tracefiles (last
day)', '1977162', '<=', '30', -1, -1 FROM DUMMY
) UNION ALL
( SELECT 642, 'SIZE_TRACEFILES_TOTAL', 'Size of tracefiles (GB,
total)', '1977162', '<=', '6.00', -1, -1 FROM
DUMMY ) UNION ALL
( SELECT 643, 'SIZE_TRACEFILES_DAY', 'Size of tracefiles (GB, last
day)', '1977162', '<=', '1.00', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 644, 'LARGEST_TRACEFILE', 'Size of largest trace file
(MB)', '1977162', '<=', '50.00', -1, -1 FROM DUMMY
) UNION ALL
( SELECT 645, 'NUM_OOM_TRACEFILES', 'Number of OOM tracefiles (last
day)', '1999997', '=', '0', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 646, 'NUM_COMP_OOM_TRACEFILES', 'Number of statement OOM
tracefiles (last day)', '1999997', '=', '0', -1, -1 FROM
DUMMY ) UNION ALL
( SELECT 650, 'NUM_CRASHDUMP_TRACEFILES', 'Number of crash dumps (last
day)', '2177064', '=', '0', -1, -1 FROM
DUMMY ) UNION ALL
( SELECT 652, 'NUM_PAGEDUMP_TRACEFILES', 'Number of page dumps (last
day)', '1977242', '=', '0', -1, -1 FROM DUMMY
) UNION ALL
( SELECT 655, 'NUM_RTEDUMP_TRACEFILES', 'Number of RTE dumps (last
day)', '2119087', '=', '0', -1, -1 FROM
DUMMY ) UNION ALL
( SELECT 658, 'LAST_SPECIAL_DUMP', 'Time since last dump (days)',
'2119087', '>=', '7.00', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 660, 'CPU_TIME_MEASUREMENT', 'CPU time measurement enabled',
'2100040', '=', 'no', -1, -1 FROM DUMMY ) UNION ALL

( SELECT 700, 'BLANK_LINE', '',


'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 701, 'INFO_LINE', 'STATISTICS SERVER',
'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 702, 'BLANK_LINE', '',
'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 710, 'OPEN_ALERTS_HIGH', 'Open alerts (high priority)',
'2053330', '=', '0', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 711, 'OPEN_ALERTS_ERROR', 'Open alerts (error state)',
'2053330', '=', '0', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 715, 'CHECKS_NOT_RUNNING', 'Number of actions not executed
as expected', '2147247', '=', '0', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 717, 'STAT_SERVER_DISABLED_CHECKS', 'Number of disabled actions',
'2113228', '=', '0', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 718, 'STAT_SERVER_INACTIVE_CHECKS', 'Number of relevant inactive
actions', '2147247', '=', '0', -1, -1 FROM
DUMMY ) UNION ALL
( SELECT 720, 'OPEN_EVENTS', 'Events not acknowledged since
>= 1800 s', '2126236', '=', '0', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 730, 'OLD_PENDING_ALERT_EMAILS', 'Pending e-mails older than 3
days', '2133799', '<=', '100', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 740, 'STAT_SERVER_LAST_ACTIVE', 'Time since statistics server
run (s)', '2147247', '<=', '3600', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 745, 'STAT_SERVER_TABLE_SIZE', 'Total size of statistics server
tables (GB)', '2147247', '<=', '5.00', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 746, 'STAT_SERVER_DUPLICATE_KEYS', 'Duplicate key errors for stat.
server tables', '2143679', '=', '0', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 747, 'HOST_SQL_PLAN_CACHE_ZERO', 'Number of zero entries in
HOST_SQL_PLAN_CACHE', '2084747', '<=', '1000000', -1, -1 FROM
DUMMY ) UNION ALL
( SELECT 748, 'HOST_CS_UNLOADS_ACTIVE', 'History of M_CS_UNLOADS
collected', '2147247', '=', 'no', -1, -1 FROM
DUMMY ) UNION ALL
( SELECT 750, 'STAT_SERVER_RETENTION', 'Stat. server tables with
retention < 42 days', '2147247', '=', '0', -1, -1 FROM
DUMMY ) UNION ALL
( SELECT 755, 'EMBEDDED_STAT_SERVER_USED', 'Embedded statistics server
used', '2092033', '=', 'yes', 74, -1 FROM DUMMY
) UNION ALL
( SELECT 760, 'ESS_MIGRATION_SUCCESSFUL', 'Status of embedded statistics
server migration', '2092033', '=', 'done (okay)', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 765, 'STAT_SERVER_LOG_SEGMENT_SIZE', 'Log segment size of
statisticsserver (MB)', '2019148', '>=', '1024', -1, -1
FROM DUMMY ) UNION ALL
( SELECT 770, 'STAT_SERVER_WRONG_HOST', 'Number of stat. server tables
not on master', '2091256', '=', '0', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 780, 'HOST_OBJ_LOCK_UNKNOWN', 'Unknown entries in
HOST_OBJECT_LOCK_STATISTICS', '2147247', '<=', '1000000', -1, -1
FROM DUMMY ) UNION ALL

( SELECT 800, 'BLANK_LINE', '',


'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 801, 'INFO_LINE', 'TRANSACTIONS AND THREADS',
'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 802, 'BLANK_LINE', '',
'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 810, 'MVCC_VERSIONS_ROW_STORE', 'MVCC versions in row store',
'2169283', '<=', '3000000', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 812, 'MVCC_REC_VERSIONS_ROW_STORE', 'Max. versions per record in row
store', '2169283', '<=', '30000', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 815, 'MVCC_TRANS_START_TIME', 'Age of transaction blocking row
store MVCC (s)', '2169283', '<=', '10800', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 830, 'ACTIVE_COMMIT_ID_RANGE', 'Active commit ID range',
'2169283', '<=', '3000000', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 840, 'ACTIVE_UPDATE_TID_RANGE', 'Active update transaction ID
range', '2169283', '<=', '3000000', -1, 99.99 FROM DUMMY )
UNION ALL
( SELECT 841, 'ACTIVE_UPDATE_TRANS_TIME', 'Oldest active update
transaction (s)', '2169283', '<=', '10800', -1, -1 FROM
DUMMY ) UNION ALL
( SELECT 845, 'MAX_UPDATE_TRANS_ID', 'Maximum update transaction ID',
'2001840', '<=', '3000000000', 64, 69.04 FROM DUMMY ) UNION ALL
( SELECT 846, 'TABLE_MVCC_SNAPSHOT_RANGE', 'Table MVCC snapshot range',
'2169283', '<=', '8000000', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 850, 'MAX_GC_HISTORY_COUNT', 'Persistence garbage collection
history count', '2169283', '<=', '3000000', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 852, 'GC_UNDO_FILE_COUNT', 'Undo and cleanup files',
'2169283', '<=', '200000', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 854, 'GC_UNDO_FILE_SIZE', 'Undo and cleanup file size
(GB)', '2169283', '<=', '50.00', -1, -1 FROM DUMMY
) UNION ALL
( SELECT 856, 'TRANSACTIONS_LARGE_UNDO', 'Max. undo size of current
transaction (MB)', '2169283', '<=', '500.00', -1, -1 FROM
DUMMY ) UNION ALL
( SELECT 857, 'TRANSACTIONS_LARGE_REDO', 'Max. redo size of current
transaction (MB)', '2169283', '<=', '1000.00', -1, -1 FROM
DUMMY ) UNION ALL
( SELECT 860, 'PENDING_SESSIONS_CURRENT', 'Current pending sessions',
'', '<=', '5', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 863, 'PENDING_SESSIONS_RECENT', 'Avg. pending sessions (last
day)', '', '<=', '1.00', -1, -1 FROM
DUMMY ) UNION ALL
( SELECT 878, 'CONNECTIONS_CANCEL_REQUESTED', 'Connections in CANCEL REQUESTED
state', '2169283', '=', '0', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 880, 'OPEN_CONNECTIONS', 'Open connections (%)',
'1910159', '<=', '90.00', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 881, 'OPEN_TRANSACTIONS', 'Number of transactions',
'2154870', '<=', '20000', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 882, 'PARKED_JOBWORKERS', 'Max. parked job worker ratio',
'2256719', '<=', '2.00', -1, -1 FROM DUMMY ) UNION ALL

( SELECT 900, 'BLANK_LINE', '',


'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 901, 'INFO_LINE', 'BACKUP',
'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 902, 'BLANK_LINE', '',
'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 910, 'LAST_DATA_BACKUP', 'Age of last data backup
(days)', '2091951', '<=', '1.20', -1, -1 FROM
DUMMY ) UNION ALL
( SELECT 911, 'LAST_DATA_BACKUP_ERROR', 'Age of last data backup error
(days)', '2091951', '>=', '1.20', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 915, 'MIN_DATA_BACKUP_THROUGHPUT', 'Min. data backup throughput
(GB/h, last week)', '1999930', '>=', '200.00', -1, -1 FROM
DUMMY ) UNION ALL
( SELECT 916, 'AVG_DATA_BACKUP_THROUGHPUT', 'Avg. data backup throughput
(GB/h, last week)', '1999930', '>=', '300.00', -1, -1 FROM
DUMMY ) UNION ALL
( SELECT 920, 'LAST_LOG_BACKUP', 'Age of last log backup
(hours)', '2091951', '<=', '1.00', -1, -1 FROM
DUMMY ) UNION ALL
( SELECT 921, 'LAST_LOG_BACKUP_ERROR', 'Age of last log backup error
(days)', '2091951', '>=', '1.00', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 922, 'MAX_LOG_BACKUP_DURATION', 'Maximum log backup duration (s,
last day)', '2063454', '<=', '300', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 930, 'AUTO_LOG_BACKUP', 'Automatic log backup',
'1645183', '=', 'yes', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 935, 'DATABASE_LOG_MODE', 'Database log mode',
'1645183', '=', 'normal', 20, -1 FROM DUMMY ) UNION ALL
( SELECT 940, 'BACKUP_CATALOG_SIZE', 'Size of backup catalog (MB)',
'', '<=', '50.00', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 942, 'CATALOG_BACKUP_SIZE_SHARE', 'Catalog size share (last day,
%)', '', '<=', '3.00', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 945, 'OLDEST_BACKUP_IN_CATALOG', 'Age of oldest backup in catalog
(days)', '', '<=', '100', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 950, 'LOG_SEGMENTS_NOT_FREE', 'Log segments not free for
reuse', '', '<=', '100', -1, -1 FROM
DUMMY ) UNION ALL
( SELECT 952, 'LOG_SEGMENTS_FREE', 'Log segments free for reuse',
'', '<=', '250', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 955, 'SERVICE_LOG_BACKUPS', 'Max. number of log backups /
service (last day)', '', '<=', '300', -1, -1 FROM DUMMY )
UNION ALL

( SELECT 1000, 'BLANK_LINE', '',


'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 1001, 'INFO_LINE', 'LOCKS',
'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 1002, 'BLANK_LINE', '',
'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 1010, 'OLDEST_LOCK_WAIT', 'Age of oldest active trans.
lock wait (s)', '1999998', '<=', '60', -1, -1 FROM
DUMMY ) UNION ALL
( SELECT 1011, 'LONG_LOCK_WAITS', 'Trans. lock wait durations >
600 s (last day)', '1999998', '=', '0', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 1020, 'LOCKED_THREADS', 'Threads currently waiting for
locks', '1999998', '<=', '10', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 1021, 'LOCKED_THREADS_LAST_DAY', 'Maximum threads waiting for
locks (last day)', '1999998', '<=', '100', -1, -1 FROM
DUMMY ) UNION ALL
( SELECT 1040, 'TRANS_LOCKS_GLOBAL', 'Total current transactional
locks', '1999998', '<=', '10000000', -1, -1 FROM
DUMMY ) UNION ALL
( SELECT 1045, 'OLD_TRANS_LOCKS', 'Transactional locks older than
1 day', '1999998', '=', '0', -1, -1 FROM DUMMY )
UNION ALL

( SELECT 1100, 'BLANK_LINE', '',


'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 1101, 'INFO_LINE', 'SQL',
'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 1102, 'BLANK_LINE', '',
'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 1110, 'TOP_SQL_SQLCACHE', 'SQL using in average > 1
connection (last day)', '2000002', '=', 'none', -1, -1 FROM
DUMMY ) UNION ALL
( SELECT 1112, 'TOP_SQL_THREADSAMPLES_CURR', 'SQL using in average > 1 thread
(last hour)', '2000002', '=', 'none', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 1113, 'TOP_SQL_THREADSAMPLES_HIST', 'SQL using in average > 1 thread
(last day)', '2000002', '=', 'none', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 1115, 'LONGEST_CURRENT_SQL', 'Longest running current SQL
statement (s)', '2000002', '<=', '600', -1, -1 FROM
DUMMY ) UNION ALL
( SELECT 1118, 'LONG_RUNNING_JOB', 'Longest running current job
(s)', '2000002', '<=', '600', 100, -1 FROM
DUMMY ) UNION ALL
( SELECT 1120, 'EXP_TRACE_LONG_RUNNING_SQL', 'Exp. stmt. trace: SQL running >
1 h (last day)', '2000002', '=', '0', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 1130, 'SQL_CACHE_EVICTIONS', 'SQL cache evictions / h',
'2124112', '<=', '1000', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 1131, 'SQL_CACHE_HIT_RATIO', 'SQL cache hit ratio of
indexserver (%)', '2124112', '>=', '90.00', -1, -1 FROM
DUMMY ) UNION ALL
( SELECT 1132, 'SQL_CACHE_PER_SQL_CONNECTION', 'SQL cache size per SQL
connection (MB)', '2124112', '>=', '15.00', -1, 89.99 FROM
DUMMY ) UNION ALL
( SELECT 1140, 'SQL_PREPARATION_SHARE', 'SQL preparation runtime share
(%)', '2124112', '<=', '5.00', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 1142, 'SQL_CACHE_USED_BY_TABLE', 'Table(s) using > 10 % of SQL
cache', '2124112', '=', '0', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 1145, 'SQL_CACHE_LONG_INLIST', 'SQL cache used by IN LISTs >=
100 elements (%)', '2124112', '<=', '15.00', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 1147, 'SQL_CACHE_DUPLICATE_HASHES', 'Duplicate statement hashes in
SQL cache (%)', '2124112', '<=', '20.00', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 1148, 'SQL_CACHE_FREQUENT_HASH', 'Statements existing > 100 times
in SQL cache', '2124112', '=', '0', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 1149, 'SQL_CACHE_SESSION_LOCAL', 'Statements with SESSION LOCAL
sharing type (%)', '2124112', '<=', '1.00', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 1150, 'SQL_CACHE_PINNED', 'Pinned statements in SQL cache
(%)', '2124112', '<=', '20.00', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 1170, 'AVG_DB_REQUEST_TIME', 'Average database request time
(ms)', '2000002', '<=', '2.00', -1, -1 FROM DUMMY )
UNION ALL

( SELECT 1200, 'BLANK_LINE', '',


'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 1201, 'INFO_LINE', 'APPLICATION',
'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 1202, 'BLANK_LINE', '',
'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 1210, 'DDLOG_SEQUENCE_CACHING', 'DDLOG sequence cache size',
'2000002', '>=', '2', -1, 69.99 FROM DUMMY ) UNION ALL
( SELECT 1220, 'QCM_TABLES', 'QCM conversion tables',
'9385', '=', '0', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 1250, 'BPC_TABLES', 'Physical BPC tables',
'1835219', '=', '0', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 1252, 'ABAP_POOL_CLUSTER_TABLES', 'Physical ABAP pool and cluster
tables', '1892354', '=', '0', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 1260, 'QIWKTAB_ACCESSES', 'QIWKTAB update rate (updates /
h)', '2000002', '<=', '10000', -1, -1 FROM DUMMY )
UNION ALL

( SELECT 1300, 'BLANK_LINE', '',


'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 1301, 'INFO_LINE', 'SECURITY',
'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 1302, 'BLANK_LINE', '',
'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 1310, 'SECURE_STORE_AVAILABLE', 'Secure store (SSFS) status',
'1977221', '=', 'available', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 1330, 'USER_EXPIRATION', 'Number of users with expiration
date', '', '=', '0', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 1335, 'SAP_USER_PASSWORD_EXPIRATION', 'Number of SAP users with
password expiration', '1702224', '=', '0', -1, -1 FROM
DUMMY ) UNION ALL
( SELECT 1340, 'CATALOG_READ_GRANTED', 'CATALOG READ privilege granted
to current user', '1640741', '=', 'yes', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 1360, 'AUDIT_LOG_SIZE', 'Size of audit log table (GB)',
'2388483', '<=', '10.00', -1, -1 FROM DUMMY ) UNION ALL

( SELECT 1400, 'BLANK_LINE', '',


'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 1401, 'INFO_LINE', 'LICENSE',
'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 1402, 'BLANK_LINE', '',
'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 1410, 'LICENSE_LIMIT', 'License usage (%)',
'1704499', '<=', '95', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 1415, 'LICENSE_EXPIRATION', 'License expiration (days)',
'1644792', '>=', '100', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 1420, 'PERMANENT_LICENSE', 'Permanent license',
'1644792', '=', 'yes', -1, -1 FROM DUMMY ) UNION ALL

( SELECT 1500, 'BLANK_LINE', '',


'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 1501, 'INFO_LINE', 'NETWORK',
'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 1502, 'BLANK_LINE', '',
'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 1510, 'SERVICE_SEND_INTRANODE', 'Avg. intra node send throughput
(MB/s)', '2222200', '>=', '120', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 1512, 'SERVICE_SEND_INTERNODE', 'Avg. inter node send throughput
(MB/s)', '2222200', '>=', '80', -1, -1 FROM DUMMY )
UNION ALL

( SELECT 1600, 'BLANK_LINE', '',


'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 1601, 'INFO_LINE', 'XS ENGINE',
'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 1602, 'BLANK_LINE', '',
'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 1610, 'XSENGINE_LOG_SEGMENT_SIZE', 'Log segment size of xsengine
(MB)', '2062080', '>=', '64', -1, 82 FROM DUMMY )
UNION ALL

( SELECT 1700, 'BLANK_LINE', '',


'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 1701, 'INFO_LINE', 'NAMESERVER',
'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 1702, 'BLANK_LINE', '',
'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 1710, 'PING_TIME_HOUR', 'Avg. indexserver ping time (ms,
last hour)', '', '<=', '30.00', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 1712, 'PING_TIME_DAY', 'Avg. indexserver ping time (ms,
last day)', '', '<=', '20.00', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 1720, 'NAMESERVER_LOCKFILE_LOCATION', 'Supported nameserver lock file
location', '2100296', '=', 'yes', 91, -1 FROM DUMMY )
UNION ALL

( SELECT 1800, 'BLANK_LINE', '',


'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 1801, 'INFO_LINE', 'SYSTEM REPLICATION',
'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 1802, 'BLANK_LINE', '',
'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 1810, 'REPLICATION_ERROR', 'Services with replication
error', '1999880', '=', '0', -1, -1 FROM
DUMMY ) UNION ALL
( SELECT 1811, 'REPLICATION_UNKNOWN', 'Services with unknown
replication state', '1999880', '=', '0', -1, -1 FROM
DUMMY ) UNION ALL
( SELECT 1815, 'LOG_SHIPPING_DELAY', 'Current log shipping delay
(s)', '1999880', '<=', '60', -1, -1 FROM DUMMY
) UNION ALL
( SELECT 1820, 'REP_PARAMETER_DEVIATION', 'Parameter deviations primary
vs. secondary site', '1999880', '=', '0', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 1830, 'OLDEST_REPLICATION_SNAPSHOT', 'Age of oldest replication
snapshot (h)', '1999880', '<=', '5.00', -1, -1 FROM
DUMMY ) UNION ALL

( SELECT 1900, 'BLANK_LINE', '',


'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 1901, 'INFO_LINE', 'OBJECTS',
'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 1902, 'BLANK_LINE', '',
'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 1910, 'MAX_OBJECT_OID', 'Maximum object ID',
'2155663', '<=', '1000000000', -1, 85.03 FROM DUMMY ) UNION ALL
( SELECT 1910, 'MAX_OBJECT_OID', 'Maximum object ID',
'2155663', '<=', '1000000000', 90, 95 FROM DUMMY ) UNION ALL
( SELECT 1920, 'INVALID_PROCEDURES', 'Number of invalid procedures',
'', '=', '0', -1, -1 FROM DUMMY ) UNION ALL

( SELECT 2000, 'BLANK_LINE', '',


'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 2001, 'INFO_LINE', 'BW',
'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 2002, 'BLANK_LINE', '',
'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 2010, 'EMPTY_TABLE_PLACEMENT', 'Empty TABLE_PLACEMENT table in
BW', '1908075', '=', 'no', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 2020, 'NUM_PARTITIONED_SID_TABLES', 'Partitioned SID tables',
'2044468', '=', '0', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 2022, 'SID_TABLES_WITH_MANY_RECORDS', 'SID tables > 1.5 billion rows',
'1331403', '=', '0', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 2025, 'NUM_PART_SPECIAL_TABLES', 'Partitioned special BW tables <
1.5 bill. rows', '2044468', '=', '0', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 2030, 'BW_SCALEOUT_TWO_NODES', 'BW scale-out installation on 2
nodes', '1702409', '=', 'no', -1, -1 FROM DUMMY )
UNION ALL

( SELECT 2100, 'BLANK_LINE', '',


'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 2101, 'INFO_LINE', 'CONSISTENCY',
'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 2102, 'BLANK_LINE', '',
'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 2110, 'CTC_ERRORS_LAST_MONTH', 'CHECK_TABLE_CONSISTENCY errors
(last month)', '1977584', '=', '0', -1, -1 FROM DUMMY )
UNION ALL
( SELECT 2120, 'CORRUPTION_RISK_LARGE_TABLES', 'Large tables with risk of index
corruption', '2264778', '=', '0', -1,102.03 FROM DUMMY )
UNION ALL
( SELECT 2120, 'CORRUPTION_RISK_LARGE_TABLES', 'Large tables with risk of index
corruption', '2264778', '=', '0', 110, 110 FROM DUMMY )
UNION ALL
( SELECT 2130, 'TOPOLOGY_DAEMON_INCONSISTENT', 'Inconsistencies between
topology and daemon', '2222249', '=', '0', -1, -1 FROM
DUMMY ) UNION ALL
( SELECT 2135, 'TOPOLOGY_ROLES_INCONSISTENT', 'Inconsistent node role
definition in topology', '', '=', 'no', -1, -1 FROM
DUMMY ) UNION ALL

( SELECT 9000, 'BLANK_LINE', '',


'', 'any', 'any', -1, -1 FROM DUMMY ) UNION ALL
( SELECT 9001, 'INFO_LINE', 'END OF CHECK',
'', 'any', 'any', -1, -1 FROM DUMMY )
) CC
WHERE
C.NAME = CC.NAME AND
( IFNULL(C.HOST, '') = '' OR C.HOST LIKE BI.HOST ) AND
REL.REVISION BETWEEN CC.MIN_REV AND MAP(CC.MAX_REV, -1, 99999, CC.MAX_REV)
) M
WHERE
ONLY_POTENTIALLY_CRITICAL_RESULTS = ' ' OR POTENTIALLY_CRITICAL = 'X'
ORDER BY
MAP(M.ORDER_BY, 'CHECK', M.CHECK_NUM),
M.HOST,
M.VALUE

You might also like