dba_tableSpace
Retrieve table space usage information for specific tables or all tables within a Teradata database to monitor storage allocation and capacity planning.
Instructions
Get table space used for a table if table name is provided or get table space for all tables in a database if a database name is provided."
Arguments: database_name - database name table_name - table name
Returns: ResponseType: formatted response with query results + metadata
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| database_name | No | ||
| table_name | No |
Implementation Reference
- Handler function executing the dba_tableSpace tool. It queries DBC.AllSpaceV view to retrieve current and peak permanent space usage, skew percentage for specified database/table or all.def handle_dba_tableSpace(conn: TeradataConnection, database_name: str | None = None, table_name: str | None = None, *args, **kwargs): """ Get table space used for a table if table name is provided or get table space for all tables in a database if a database name is provided." Arguments: database_name - database name table_name - table name Returns: ResponseType: formatted response with query results + metadata """ logger.debug(f"Tool: handle_dba_tableSpace: Args: database_name: {database_name}, table_name: {table_name}") with conn.cursor() as cur: if not database_name and not table_name: logger.debug("No database or table name provided, returning all tables and space information.") rows = cur.execute("""SELECT DatabaseName, TableName, SUM(CurrentPerm) AS CurrentPerm1, SUM(PeakPerm) as PeakPerm ,CAST((100-(AVG(CURRENTPERM)/MAX(NULLIFZERO(CURRENTPERM))*100)) AS DECIMAL(5,2)) as SkewPct FROM DBC.AllSpaceV GROUP BY DatabaseName, TableName ORDER BY CurrentPerm1 desc;""") elif not database_name: logger.debug(f"No database name provided, returning all space information for table: {table_name}.") rows = cur.execute(f"""SELECT DatabaseName, TableName, SUM(CurrentPerm) AS CurrentPerm1, SUM(PeakPerm) as PeakPerm ,CAST((100-(AVG(CURRENTPERM)/MAX(NULLIFZERO(CURRENTPERM))*100)) AS DECIMAL(5,2)) as SkewPct FROM DBC.AllSpaceV WHERE TableName = '{table_name}' GROUP BY DatabaseName, TableName ORDER BY CurrentPerm1 desc;""") elif not table_name: logger.debug(f"No table name provided, returning all tables and space information for database: {database_name}.") rows = cur.execute(f"""SELECT TableName, SUM(CurrentPerm) AS CurrentPerm1, SUM(PeakPerm) as PeakPerm ,CAST((100-(AVG(CURRENTPERM)/MAX(NULLIFZERO(CURRENTPERM))*100)) AS DECIMAL(5,2)) as SkewPct FROM DBC.AllSpaceV WHERE DatabaseName = '{database_name}' GROUP BY TableName ORDER BY CurrentPerm1 desc;""") else: logger.debug(f"Database name: {database_name}, Table name: {table_name}, returning space information for this table.") rows = cur.execute(f"""SELECT DatabaseName, TableName, SUM(CurrentPerm) AS CurrentPerm1, SUM(PeakPerm) as PeakPerm ,CAST((100-(AVG(CURRENTPERM)/MAX(NULLIFZERO(CURRENTPERM))*100)) AS DECIMAL(5,2)) as SkewPct FROM DBC.AllSpaceV WHERE DatabaseName = '{database_name}' AND TableName = '{table_name}' GROUP BY DatabaseName, TableName ORDER BY CurrentPerm1 desc;""") data = rows_to_json(cur.description, rows.fetchall()) metadata = { "tool_name": "dba_tableSpace", "database_name": database_name, "table_name": table_name, "total_tables": len(data) } logger.debug(f"Tool: handle_dba_tableSpace: metadata: {metadata}") return create_response(data, metadata)