Translate

lundi 6 avril 2015

(Tip) Identifier la version installée de UCM ?


Le "Tip" de la journée...

      Dès que nous avons des nouveaux clients il est important de pouvoir identifier et reconnaître les produits installés, si jamais vous avez un client qui a installé Oracle WebCenter et qui pour une raison inconnue il n'est pas capable de vous dire quelle est la version actuelle installée, vous pouvez faire la vérification par vous même...Bien sûr en ayant au moins les accès.




Ici vous pouvez voir la version installée, même la version de la base de données et la version de java configurée.

En plus, en faisant clic sur "Enabled Component Details" vous pouvez voir la version installée pour chaque composante






FK sans Indexes


Des fois lorsque vous faites des vérifications il est important de vérifier si les FK ont une indexe de renforcement créé afin d'éviter des problèmes de performance, voici un script qui peut vous être utile.

Bien sûr, après cette première vérification il faudrait valider si les colonnes ne font pas partie d'un autre index ou s'il y a d'autres raisons qui pourraient "justifier" un manque d'indexe.

Voici le script :

SELECT QRY.OWNER, QRY.TABLE_NAME, QRY.CONSTRAINT_NAME, QRY.INDEX_NAME, QRY.CONSCOLUMNS, QRY.INDCOLUMNS
  FROM (
    SELECT LIST_CONST.OWNER, LIST_CONST.TABLE_NAME, LIST_CONST.CONSTRAINT_NAME, LIST_IND.INDEX_NAME,
           LIST_CONST.CONSCOLUMNS, LIST_IND.INDCOLUMNS 
     FROM (SELECT BB.OWNER, BB.TABLE_NAME, BB.CONSTRAINT_NAME, 
                  LTRIM(MAX(SYS_CONNECT_BY_PATH(BB.COLUMN_NAME,',')) KEEP (DENSE_RANK LAST ORDER BY curr),',') AS CONSCOLUMNS 
            FROM (SELECT B.OWNER, B.TABLE_NAME, B.CONSTRAINT_NAME, C.COLUMN_NAME, C.POSITION, 
                         ROW_NUMBER() OVER (PARTITION BY B.CONSTRAINT_NAME ORDER BY C.POSITION)   AS CURR, 
                         ROW_NUMBER() OVER (PARTITION BY B.CONSTRAINT_NAME ORDER BY C.POSITION)-1 AS PREV 
                    FROM DBA_CONSTRAINTS B, DBA_CONS_COLUMNS C 
                   WHERE B.OWNER           = C.OWNER            AND 
                         B.CONSTRAINT_NAME = C.CONSTRAINT_NAME  AND 
                         B.CONSTRAINT_TYPE = 'R' 
                 ) BB 
            GROUP BY BB.OWNER, BB.TABLE_NAME, BB.CONSTRAINT_NAME 
            CONNECT BY PREV = PRIOR CURR AND BB.CONSTRAINT_NAME = PRIOR BB.CONSTRAINT_NAME 
            START WITH CURR = 1
           ) LIST_CONST, 
          (SELECT AA.TABLE_OWNER, AA.TABLE_NAME, AA.INDEX_NAME, 
                  LTRIM(MAX(SYS_CONNECT_BY_PATH(AA.COLUMN_NAME,',')) KEEP (DENSE_RANK LAST ORDER BY curr),',') AS INDCOLUMNS 
            FROM (SELECT A.TABLE_OWNER, A.TABLE_NAME, A.INDEX_NAME, A.COLUMN_NAME, A.COLUMN_POSITION, 
                         ROW_NUMBER() OVER (PARTITION BY A.INDEX_NAME ORDER BY A.COLUMN_POSITION)   AS CURR,
                         ROW_NUMBER() OVER (PARTITION BY A.INDEX_NAME ORDER BY A.COLUMN_POSITION)-1 AS PREV
                    FROM DBA_IND_COLUMNS A, DBA_INDEXES AA 
                   WHERE A.INDEX_OWNER = AA.OWNER        AND 
                         A.INDEX_NAME  = AA.INDEX_NAME 
                 ) AA 
            GROUP BY AA.TABLE_OWNER, AA.TABLE_NAME, AA.INDEX_NAME 
            CONNECT BY PREV = PRIOR CURR AND AA.INDEX_NAME = PRIOR AA.INDEX_NAME 
            START WITH CURR = 1 
           ) LIST_IND 
     WHERE LIST_IND.TABLE_OWNER (+)  = LIST_CONST.OWNER         AND 
           LIST_IND.TABLE_NAME  (+)  = LIST_CONST.TABLE_NAME    AND 
           LIST_IND.INDCOLUMNS  (+)  LIKE LIST_CONST.CONSCOLUMNS || '%' 
      ) QRY 
WHERE QRY.INDEX_NAME IS NULL 
ORDER BY QRY.OWNER, QRY.TABLE_NAME ;