OQL Query for getting the total size of DB

1
Hi Mendix Forum fellowship,  Does anyone know of how to write a OQL Query that would retrieve the info of the current total size of DB?  I’m getting the error when I want to perform the following query:  Query and error message ---------------------- SELECT pg_size_pretty( pg_database_size('41e4e34b-e326-472e-8c17-e0defbb9924c')) FROM Frigotermika.Product; An error occurred while executing OQL: ERROR: database "41e4e34b-e326-472e-8c17-e0defbb9924c" does not exist ---------------------- Let me know if someone has any idea.  Thanks in advance,  Kind regards, Aleksandar
asked
2 answers
1

Indeed, it is SQL. This is what I have been using:

SELECT 
    t.NAME AS TableName,
    s.Name AS SchemaName,
    p.rows AS RowCounts,
    SUM(a.total_pages) * 8 / 1024 AS TotalSpaceMB, 
    SUM(a.used_pages) * 8 / 1024 AS UsedSpaceMB, 
    (SUM(a.total_pages) - SUM(a.used_pages)) * 8 / 1024 AS UnusedSpaceMB
FROM 
    sys.tables t
INNER JOIN      
    sys.indexes i ON t.OBJECT_ID = i.object_id
INNER JOIN 
    sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id
INNER JOIN 
    sys.allocation_units a ON p.partition_id = a.container_id
LEFT OUTER JOIN 
    sys.schemas s ON t.schema_id = s.schema_id
WHERE 
    t.NAME NOT LIKE 'dt%' 
    AND t.is_ms_shipped = 0
    AND i.OBJECT_ID > 255 
GROUP BY 
    t.Name, s.Name, p.Rows
ORDER BY 
    t.UsedSpaceMB DESC 

This will give an overview of all tables in the database and their related number or records and total size.

answered
0

You can not do this with OQL, use SQL instead. https://docs.mendix.com/howto/extensibility/howto-datastorage-api 

answered