Skip to main content
Glama
Teradata

Teradata MCP Server

Official
by Teradata

dba_tableSpace

Retrieve table space usage for specific tables or entire databases in Teradata systems to monitor storage allocation and optimize database performance.

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
NameRequiredDescriptionDefault
database_nameNo
table_nameNo

Implementation Reference

  • The handler function that implements the core logic of the 'dba_tableSpace' tool. It executes SQL queries against DBC.AllSpaceV to retrieve table space usage information, supporting queries for all tables, by table name, by database, or specific table in a database. Formats results using rows_to_json and create_response with metadata including the tool name.
    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)

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Teradata/teradata-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server