You are on page 1of 3

TABLE SPACE USAGE :

SELECT
DATABASENAME
, TABLENAME
, SUM(CURRENTPERM)/1024/1024/1024 AS CURRENT_PERM
, CAST (CAST (MAX (CURRENTPERM)*(HASHAMP()+1) AS FLOAT) / CAST (1024*1024*1024 AS
FLOAT) AS DECIMAL(18,2)) AS EFFECTIVE_PERM_INCLUDING_SKEW
, EFFECTIVE_PERM_INCLUDING_SKEW - CURRENT_PERM AS
SPACE_WASTED_DUE_TO_SKEW
, (100 - (AVG (CURRENTPERM) / NULLIFZERO(MAX (CURRENTPERM))*100)) AS
SKEW_PERCENT
FROM DBC.TABLESIZE TS
WHERE DATABASENAME = 'GEEDW_PLP_BULK_T'
AND TABLENAME = 'MT_MBOM_ALL_LEVELS'
GROUP BY 1,2
ORDER BY 6 DESC

DATABASE SPACE USAGE :


SELECT databasename
, SUM(maxperm)/1024/1024/1024 (DECIMAL(10,2)) AS space_allocated
, SUM(currentperm)/1024/1024/1024 (DECIMAL(10,2)) AS space_Used
, (MAX(currentperm)*COUNT(*)-SUM(currentperm))
/1024/1024/1024 (DECIMAL(10, 2)) AS skew_Size
, (space_used + skew_size) AS total_space_used
, (MIN(maxperm-currentperm)/1024/1024/1024) * COUNT(*) (DECIMAL(10,2))
AS free_Space
, CAST(total_space_used AS DECIMAL(10,2)) * 100
/ CAST(space_allocated AS DECIMAL(10,2)) AS pct_used
FROM DBC.diskspace
WHERE databasename = 'GEEDW_PLP_S'
AND maxperm > 0
GROUP BY 1;
SELECT DatabaseName ,
SUM(CurrentPerm)/1024/1024/1024 AS USEDSPACE_IN_GB ,
SUM(MaxPerm)/1024/1024/1024 AS MAXSPACE_IN_GB ,
SUM(CurrentPerm)/ NULLIFZERO (SUM(MaxPerm)) *100 (FORMAT 'zz9.99%') AS
Percentage_Used ,
MAXSPACE_IN_GB- USEDSPACE_IN_GB AS REMAININGSPACE_IN_GB
FROM DBC.DiskSpace
WHERE DatabaseName = 'GEEDW_PLP_S'
GROUP BY DatabaseName;

CURRENT SIZE :
SELECT
DATABASENAME,
TABLENAME,
SUM(CURRENTPERM)/(1024*1024*1024) CURRENT_SIZE
FROM DBC.TABLESIZE
WHERE DATABASENAME = 'GEEDW_PLP_S'

--AND TABLENAME = 'MT_MBOM_tst'

GROUP BY DATABASENAME , TABLENAME

GE TechM Internal

ORDER BY CURRENT_SIZE DESC;

STATS QUERY :
select
STARTTIME
,USERNAME
,SESSIONID
,AMPCPUTIME + PARSERCPUTIME AS CPU_USED
,TOTALIOCOUNT as IO_USED
,SPOOLUSAGE as Spool_USED/*IN GB*/
,MAXAMPCPUTIME AS HOTAMPCPU
,MAXAMPIO AS HOTAMPIO
,ZEROIFNULL(CPU_USED /NULLIFZERO(HOTAMPCPU)) *.01 AS CPU_EFF
,ZEROIFNULL(CPU_USED/NULLIFZERO(HOTAMPIO)) * .01 AS IO_EFF
,CASE WHEN IO_USED = 0 THEN 0 ELSE (CPU_USED *1000)/IO_USED
END AS PJI
,ZEROIFNULL(IO_USED/ NULLIFZERO((CPU_USED *1000))) AS REV_PJI
,CASE WHEN CPU_USED =0 THEN 0 ELSE
ZEROIFNULL(HOTAMPCPU/nullifzero(CPU_USED/(hashamp()+1)))
END AS CPUSkew
,CASE WHEN IO_USED = 0 THEN 0 ELSE
ZEROIFNULL(HOTAMPCPU/nullifzero(IO_USED/(hashamp()+1)))
END AS IOSkew
,CASE WHEN IO_USED =0 THEN 0 ELSE CPU_USED/IO_USED
END AS HIGH_CPU_IO_RATIO
,HOTAMPCPU * (HashAMP() + 1) AS Impact_CPU
,QUERYTEXT
FROM DBC.DBQLOGTBL
WHERE

/*USERNAME='GEEDW_PLMRPTG_WEB'
AND*/
USERNAME = '502293878'

--AND QUERYTEXT LIKE '%GEEDW_PLM_ODS_BULK_V.MT_PLM_KPI_TASK%

SKEW FACTOR OF TABLE :


SELECT
DatabaseName,
TableName,
SUM(CurrentPerm) AS CurrentPerm ,
SUM(PeakPerm) AS PeakPerm,
(100 - (AVG(CurrentPerm)/MAX(CurrentPerm)*100)) AS SkewFactor
FROM DBC.TableSize
WHERE databasename = 'GEEDW_PLP_BULK_T'
AND TableName = 'MT_MBOM_ALL_LEVELS'
GROUP BY 1,2
ORDER BY SkewFactor DESC;

INDEX DETAILS :
SELECT * FROM dbc.Indices
WHERE
databasename = 'GEEDW_PLP_BULK_T'

GE TechM Internal

AND tablename = 'MT_MBOM_ALL_LEVELS'

DATA DISTRIBUTION :
SEL HASHAMP(HASHBUCKET(HASHROW(TOP_LEVEL_PARENT))) ,COUNT(*) FROM
GEEDW_PLP_BULK_V.MT_MBOM_ALL_LEVELS
GROUP BY 1
ORDER BY 1;
No of nodes :
Select count(distinct nodeid) from dbc.resusagescpu

FINDING SPOOL SPACE :


SELECT * FROM dbc.users WHERE username = '502198452';
select
min(peakspool),
avg(peakspool),
max(peakspool),
100*max(currentspool)/max(coalesce(maxprofilespool, maxspool)) as PercentInUse
from dbc.DiskSpace
where DatabaseName = '502293878';
==========================================================================
For reducing PJI --> check for Product joins
For reducing UII( Unnecessary IO indicator) /REV_PJI --> check for indexing and collect stats, check for FTS
METRICS ::::
PJI < 6, Rev-PJI < 6
CPU Skew, IO Skew < 1.25
Impact CPU < 1000
Explain plan --> check for product join

GE TechM Internal

You might also like