*This procedure used in some of my reports, make sure to add it.
CREATE FUNCTION SecToTime(seconds INT)
RETURNS CHAR(20)
AS
BEGIN
RETURN (
(SELECT RIGHT('00' + CAST(CAST(floor(seconds/3600) as NUMERIC(3)) as CHAR(3)), 2)) + ':' +
(SELECT RIGHT('00' + CAST(CAST(floor(seconds/60) % 60 as NUMERIC(2)) as CHAR(2)), 2)) +':' +
(SELECT RIGHT('00' + CAST(CAST(seconds % 60 as NUMERIC(2)) as CHAR(2)), 2))
)
Example
SELECT SecToTime(1000);
00:16:40
SELECT SecToTime(100000); -- hours will go over 24.
27:46:40
SELECT
domain_MasterServer.networkName as "Master",
LIST(audit_Key.value) as "Policy",
LIST((CASE audit_Record.messageId
WHEN 2 THEN 'Deactivated'
WHEN 5 THEN 'Deleted'
END)) as "Action",
LIST(UTCBigIntToNomTime(audit_Record.auditTime)) as "Timestamp",
LIST(audit_UserIdentity.userName) as "User"
FROM audit_Record, audit_Key, domain_MasterServer, audit_UserIdentity
WHERE domain_MasterServer.id = audit_Key.masterServerId
AND audit_Record.masterServerId = audit_Key.masterServerId
AND audit_Record.tieInId = audit_Key.tieInId
AND audit_Record.recordId = audit_Key.recordId
AND audit_Record.userIdentityId = audit_UserIdentity.id
AND audit_Record.messageId IN (2 ,5)
AND DATEDIFF(day,UTCBigIntToNomTime(audit_Record.auditTime), GETDATE()) <= 7 -- Change Time here
GROUP BY audit_Record.tieInId,domain_MasterServer.networkName, audit_Record.recordId
ORDER BY "Timestamp" DESC
ELECT
domain_MasterServer.networkName as "Master",
SUBSTR(LIST(audit_Key.value), 0, CHARINDEX(',',LIST(audit_Key.value))) as "Client",
SUBSTR(LIST(audit_Key.value), CHARINDEX(',',LIST(audit_Key.value))+1, LEN(LIST(audit_Key.value))) as "Policy",
MAX(UTCBigIntToNomTime(audit_Record.auditTime)) as "Timestamp",
MAX(audit_UserIdentity.userName) as "User"
FROM audit_Record, audit_Key, domain_MasterServer, audit_UserIdentity
WHERE domain_MasterServer.id = audit_Key.masterServerId
AND audit_Record.userIdentityId = audit_UserIdentity.id
AND audit_Record.masterServerId = audit_Key.masterServerId
AND audit_Record.tieInId = audit_Key.tieInId
AND audit_Record.recordId = audit_Key.recordId
AND audit_Record.messageId = 10
AND DATEDIFF(hour,UTCBigIntToNomTime(audit_Record.auditTime), GETDATE()) <= 48 --- Change time here
GROUP BY audit_Record.tieInId, domain_MasterServer.networkName, audit_Record.recordId
ORDER BY "Timestamp" DESC
SELECT
domain_PolicyClient.clientName as "Client Name",
domain_PolicyClient.policyName as "Policy Name",
lookup_PolicyType.name as "Policy Type",
nb_Policy.fileList as "Backup Selection"
FROM
domain_PolicyClient, domain_Client,lookup_PolicyType, domain_Policy, nb_Policy
WHERE lookup_PolicyType.id = domain_Policy.type
AND domain_PolicyClient.clientName = domain_Client.name
AND domain_PolicyClient.masterServerId = domain_Client.masterServerId
AND domain_PolicyClient.policyName = domain_Policy.name
AND domain_PolicyClient.masterServerId = domain_Policy.masterServerId
AND domain_PolicyClient.policyDomainName = domain_Policy.policyDomainName
AND domain_PolicyClient.policyVersionNo= domain_Policy.versionNo
AND domain_Policy.name = nb_Policy.name
AND domain_Policy.masterServerId = nb_Policy.masterServerId
AND domain_Policy.versionNo = nb_Policy.versionNo
AND domain_Policy.policyDomainName = nb_Policy.policyDomainName
AND domain_Policy.status = 0
AND domain_Policy.active = 1
-- domain_Policy.name LIKE '%PR%'
-- domain_PolicyClient.clientName LIKE '%winprd%'
ORDER BY domain_PolicyClient.clientName
SELECT DISTINCT
B.friendlyName as 'Master Server',
A.clientName as 'Client Name',
A.policyName as 'Policy Name',
LIST( DISTINCT A.statuscode) as 'Status Code',
( select DATEDIFF(DAY,UtcBigIntToNomTime(MAX(CKP.endTime)),GETDATE()) as 'Days since Last successful'
from domain_JobArchive CKP
where CKP.masterServerId = A.masterServerId AND
CKP.id = CKP.parentJobId AND
CKP.clientId = A.clientId AND
CKP.policyId = A.policyId AND
CKP.policyName = A.policyName AND
CKP.policyType = A.policyType AND
( CKP.statusCode = 0 OR CKP.statusCode = 1 ) ),
( select UtcBigIntToNomTime(MAX(BKP.endTime)) as 'Last successful'
from domain_JobArchive BKP
where BKP.masterServerId = A.masterServerId AND
BKP.Id = BKP.parentJobId AND
BKP.clientId = A.clientId AND
BKP.policyId = A.policyId AND
BKP.policyName = A.policyName AND
BKP.policyType = A.policyType AND
( BKP.statusCode = 0 OR BKP.statusCode = 1 ) )
FROM "domain_JobArchive" A , "domain_masterserver" B
WHERE
A.masterServerId = B.id AND A.id = A.parentjobid AND
DATEDIFF(hour,UtcBigIntToNomTime(A.endTime), GETDATE()) <= 24
AND
( select DATEDIFF(DAY,UtcBigIntToNomTime(MAX(CKP.endTime)),GETDATE()) as 'Days since Last successful'
from domain_JobArchive CKP
where CKP.masterServerId = A.masterServerId AND
CKP.id = A.parentJobId AND
CKP.clientId = A.clientId AND
CKP.policyId = A.policyId AND
CKP.policyName = A.policyName AND
CKP.policyType = A.policyType AND
CKP.scheduleType = A.scheduleType AND
( CKP.statusCode = 0 OR CKP.statusCode = 1 ) ) > 0 AND
A.scheduleName != 'user_backup' AND
A.statusCode not in (0,1,190,199,230,239,240,800,1000) AND
A.policyName NOT LIKE 'SLP_%' AND A.type IN (0,22,28) AND
A.scheduletype not in (-1,2)
Group by A.clientName,A.masterServerId,A.policyName,B.friendlyName,policyType,scheduleType,clientid,policyid
ORDER BY B.friendlyName , A.clientName
SELECT
domain_JobArchive.policyName as "Policy Name",
domain_JobArchive.clientName as "Client Name",
domain_Client.hardwareDescription as "Platform",
domain_Client.versionLabel as "Version",
domain_JobArchive.scheduleName as "Schedule Name",
adjust_timestamp(domain_ScheduledJob.scheduledTime,10800000) as "Job Scheduled Time",
UTCBigIntToNomTime(domain_JobArchive.startTime) as "Job Start Time",
UTCBigIntToNomTime(domain_JobArchive.endTime) as "Job End Time",
SecToTime(DATEDIFF(minute,UTCBigIntToNomTime(domain_JobArchive.startTime),UTCBigIntToNomTime(domain_JobArchive.endTime))) as "Job Duration(Minutes)",
(CASE
WHEN domain_JobArchive.state = 3 AND domain_JobArchive.statusCode = 0 THEN 'Successful'
WHEN domain_JobArchive.state = 3 AND domain_JobArchive.statusCode = 1 THEN 'Partial'
WHEN domain_JobArchive.state = 3 AND domain_JobArchive.statusCode > 1 THEN 'Failed'
ELSE 'Failed'
END) as "Job Status",
nb_JobFilesArchive.fileinfo as "Files",
CAST(domain_JobArchive.bytesWritten/1024/1024/1024 as NUMERIC(20,2)) as "Job Size(MB)",
domain_JobArchive.statusCode as "Status Code"
FROM domain_JobArchive, lookup_JobState, domain_ScheduledJob, nb_JobFilesArchive, domain_MasterServer, domain_Client
WHERE domain_ScheduledJob.jobid = domain_JobArchive.id
AND domain_JobArchive.masterserverId = nb_JobFilesArchive.masterserverId
AND domain_JobArchive.clientName = nb_JobFilesArchive.clientName
AND domain_JobArchive.id = nb_JobFilesArchive.jobID
AND domain_MasterServer.id = domain_JobArchive.masterServerId
AND domain_JobArchive.clientName = domain_Client.name
AND domain_JobArchive.masterserverId = domain_Client.masterserverId
AND domain_JobArchive.state =lookup_JobState.id
AND DATEDIFF(hour,UTCBigIntToNomTime(domain_JobArchive.endTime), GETDATE()) <=24
AND domain_JobArchive.policyName != ''
SELECT
domain_Job.clientName as "Client Name",
domain_Client.hardwareDescription as "Client OS",
lookup_JobType.name as "Job Type",
lookup_JobState.name as "Job Status",
count(domain_Job.statusCode) as "Number of entries",
domain_Job.policyName as "Policy Name",
max(UTCBigIntToNomTime(domain_Job.startTime)) as "Job Start Time",
max(UTCBigIntToNomTime(domain_Job.endTime)) as "Job End Time",
max(DATEDIFF(minute,UTCBigIntToNomTime(domain_Job.startTime),UTCBigIntToNomTime(domain_Job.endTime))) as "Job Duration(Minutes)",
max(domain_Job.bytesWritten/1024/1024/1024) as "Job Size(MB)",
max(domain_Job.filesBackedUp) as "Job File Count",
max(domain_Job.throughput) as "Job Throughput (KB/Sec)",
domain_Job.statusCode as "Status Code",
lookup_JobStatusCode.name as "Status Code Description"
FROM
domain_Job, domain_Client, lookup_JobType, lookup_JobState, lookup_JobStatusCode
WHERE
domain_Job.type = lookup_JobType.id AND
domain_Job.statusCode > 0 AND
domain_Job.statusCode = lookup_JobStatusCode.id AND
domain_Job.id = domain_Job.ParentJobID AND
domain_Job.state = lookup_JobState.id AND
domain_Job.clientName = domain_Client.name AND
DATEDIFF(hour,UTCBigIntToNomTime(domain_Job.endTime), GETDATE()) <=24 AND
domain_Job.policyName != ''
GROUP BY domain_Job.clientName,domain_Client.hardwareDescription, domain_Job.policyName, domain_Job.statusCode, lookup_JobStatusCode.name, lookup_JobType.name, lookup_JobState.name
SELECT
COALESCE(CAST(SUM(domain_JobArchive.bytesWritten)/1024.0/1024.0/1024.0 AS NUMERIC (20,2)), 0) AS "Written (GB)",
COALESCE(CAST(SUM(domain_JobArchive.preSISSize)/1024.0/1024.0/1024.0 AS NUMERIC (20,2)), 0) AS "Pre Dedup Size (GB)",
COALESCE(CAST((sum(domain_JobArchive.preSISSize) - sum (domain_JobArchive.bytesWritten))/(sum(domain_JobArchive.preSISSize)+1)*100 AS NUMERIC(20,2)),0) as "Dedupe %",
DATEFORMAT(cast(UTCBigintToNOMTime(domain_JobArchive.endTime) as DATETIME), 'yyyy-mm-dd') as "Jobs End Time",
lookup_PolicyType.name as "Policy Type",
lookup_JobType.name as "Job Type"
FROM
domain_JobArchive, lookup_JobType, lookup_PolicyType
WHERE
lookup_PolicyType.id = domain_JobArchive.policyType AND
lookup_JobType.id = domain_JobArchive.jobType AND
DATEDIFF(hour,UTCBigIntToNomTime(domain_JobArchive.endTime), GETDATE()) <= 24
GROUP BY "Jobs End Time", "Policy Type", "Job Type"
ORDER BY "Jobs End Time"
SELECT
COALESCE(CAST(SUM(domain_JobArchive.bytesWritten)/1024.0/1024.0/1024.0 AS NUMERIC (20,2)), 0) AS "Written (GB)",
COALESCE(CAST(SUM(domain_JobArchive.preSISSize)/1024.0/1024.0/1024.0 AS NUMERIC (20,2)), 0) AS "Pre Dedup Size (GB)",
COALESCE(CAST((sum(domain_JobArchive.preSISSize) - sum (domain_JobArchive.bytesWritten))/(sum(domain_JobArchive.preSISSize)+1)*100 AS NUMERIC(20,2)),0) as "Dedupe %",
DATEFORMAT(cast(UTCBigintToNOMTime(domain_JobArchive.endTime) as DATETIME), 'yyyy-mm-dd') as "Jobs End Time",
domain_JobArchive.mediaServerName as "Media",
(CAST(AVG(domain_DiskPoolHistory.usableSize)/1024/1024/1024/1024 as NUMERIC(20,2))) as "Space left, TB",
(CAST(AVG(domain_DiskPoolHistory.usedCapacity)/1024/1024/1024/1024 as NUMERIC(20,2))) as "Size used, TB"
FROM
domain_JobArchive, domain_DiskPoolHistory
WHERE DATEDIFF(day,UTCBigIntToNomTime(domain_JobArchive.endTime), GETDATE()) <= 14
AND DATEFORMAT(cast(UTCBigintToNOMTime(domain_JobArchive.endTime) as DATETIME), 'yyyy-mm-dd') = DATEFORMAT(cast(UTCBigintToNOMTime(domain_DiskPoolHistory.snapshotTime) as DATETIME), 'yyyy-mm-dd')
AND domain_DiskPoolHistory.serverType = 'PureDisk'
AND domain_DiskPoolHistory.storageServerName = domain_JobArchive.mediaServerName
GROUP BY "Jobs End Time", "Media"
ORDER BY "Jobs End Time", "Media"
SELECT
COALESCE(CAST(SUM(domain_JobArchive.bytesWritten)/1024.0/1024.0/1024.0 AS NUMERIC (20,2)), 0) AS "Written (GB)",
COALESCE(CAST(SUM(domain_JobArchive.preSISSize)/1024.0/1024.0/1024.0 AS NUMERIC (20,2)), 0) AS "Pre Dedup Size (GB)",
COALESCE(CAST((sum(domain_JobArchive.preSISSize) - sum (domain_JobArchive.bytesWritten))/(sum(domain_JobArchive.preSISSize)+1)*100 AS NUMERIC(20,2)),0) as "Dedupe %",
DATEFORMAT(cast(UTCBigintToNOMTime(domain_JobArchive.endTime) as DATETIME), 'yyyy-mm-dd') as "Jobs End Time",
domain_JobArchive.mediaServerName as "Media",
domain_JobArchive.policyName as "Policy"
FROM
domain_JobArchive
WHERE DATEDIFF(day,UTCBigIntToNomTime(domain_JobArchive.endTime), GETDATE()) <= 14
AND "Policy" IN (SELECT name FROM nb_Policy)
GROUP BY "Jobs End Time", "Media","Policy"
ORDER BY "Jobs End Time", "Media","Policy"