IBM DB2 Query Toolbox - Loner Ratio - how many tables have no relationships



Desenvolvido por DORNELLES Carlos Alberto - Analista de Sistemas - Brasília DF. - cad_cobol@hotmail.com

IBM Db2 Query Toolbox - Loner Ratio - how many tables have no relationships

Esta consulta lista tabelas que não possuem chaves estrangeiras, o que significa que não estão referenciando nenhuma tabela ou não estão no lado "muitos" do FK.
This query listed tables that have no foreign keys, meaning they are not referencing any table or are not on the "many" side of FK.

A consulta abaixo lista algo um pouco diferente - tabelas que não fazem referência e não são referenciadas por outras tabelas.
Algo que chamávamos de Mesas do Solitário.
Este diagrama ilustra o conceito:

Query below lists something a little different - tables that are not referencing and are not referenced by other tables.
Something we called Loner Tables.
This diagram illustrates the concept:

Saiba mais sobre Loner Tables
Learn more about Loner Tables

Consulta - Query

SELECT TABLE_COUNT
,      LONER_TABLES
,      CAST(100 * LONER_TABLES / TABLE_COUNT AS DECIMAL (14,2)) CONCAT '%' 
       AS LONER_RATIO
  FROM (SELECT COUNT(DISTINCT TAB.TABSCHEMA CONCAT '.' CONCAT TAB.TABNAME) 
               AS TABLE_COUNT
        ,      SUM(CASE WHEN  CONST.CONSTNAME IS NULL AND  REF.CONSTNAME IS NULL THEN 1
                   ELSE 0 END) AS LONER_TABLES
          FROM SYSCAT.TABLES TAB
               LEFT OUTER JOIN SYSCAT.TABCONST CONST 
                 ON CONST.TABSCHEMA = TAB.TABSCHEMA 
                AND CONST.TABNAME = TAB.TABNAME AND CONST.TYPE ='F'
               LEFT OUTER JOIN SYSCAT.REFERENCES REF 
                 ON REF.REFTABSCHEMA = TAB.TABSCHEMA  
                AND REF.REFTABNAME = TAB.TABNAME 
         WHERE TAB.TYPE ='T'
           AND TAB.TABSCHEMA NOT LIKE 'SYS%'
       ) LONER_RATIO 

Colunas

  • table_count - número de tabelas no banco de dados
  • loner_tables - número de Loner Tables no banco de dados
  • loner_ratio - Taxa de solitários -% de tabelas de solitários no banco de dados

Linhas

  • Escopo das linhas: a consulta retorna uma linha

Columns

  • table_count - number of tables in database
  • loner_tables - number of Loner Tables in the database
  • loner_ratio - Loner Ratio - % of Loner Tables in the database

Rows

  • Scope of rows: query returns one row

Resultado - Sample results

Loner Ratio in GSDB database is 9% - i.e. 9% of tables are not related with FKs to any other table.


Copyright © Dataedo.