sexta-feira, 23 de novembro de 2012

Ver conteúdo de uma Procedure - Oracle

 

Segue duas maneiras para visualização do “corpo” de uma procedure no Oracle

  1. Script 1

SET SERVEROUTPUT ON SIZE 200000
declare

begin
  FOR CR IN (select *
              from DBA_source u
             where u.type = 'PROCEDURE'
               AND U.OWNER = 'NOME_USUARIO'
               AND U.NAME LIKE '%NOME_PROCEDURE%' ) LOOP
              
     DBMS_OUTPUT.put_line(CR.TEXT);
              
  END LOOP;
end;

Obs: Substituir NOME_USUARIO pelo owner e NOME_PROCEDURE pelo nome da procedure.

 

2. Script 2

SELECT dbms_metadata.get_ddl( 'PROCEDURE','USP_GOMM_CRIA_MVIEW') FROM DUAL;

Obrigado

terça-feira, 13 de novembro de 2012

Index Clustered X Nonclustered- SqlServer

 

Segue algumas das diferenças entre os dois tipos de index do SqlServer:

O tipo de index Clustered realiza a ordenação dos dados com os valores da coluna que foi selecionada para fazer parte do index, ou seja, a ordem é realizada com os próprios dados da coluna pertencente ao index. Dessa forma as informações são gravadas na tabela física na mesma ordem do index facilitando bastante a localização de registros na tabela.

Por ordenar fisicamente os dados na tabela de acordo como o valor da coluna do index, para cada tabela podemos ter apenas um index Clustered.

Apesar de melhorar o desempenho na localização de um registro, temos um tempo extra gasto com inclusões ou exclusões de dados, isso acontece pois caso seja incluído ou excluído um registro pode ser que a ordem seja alterada e que ocorra um reposicionamento dos dados.

Em uma tabela pode existir index Clustered e Nonclustered, mas devemos lembrar de sempre criar primeiramente o index Clustered já que com sua criação todos os dados serão reposicionados na tabela para assumir a ordem da coluna que ira compor o index.

O tipo de index Nonclustered funciona de maneira diferente do Clustered, ou seja, no momento da criação do index as informações físicas da tabela não são reposicionadas, ficando assim o armazenamento de ordem aleatória.

É indicado o uso de index Nonclustered quando há necessidade de localizar dados que possuem diferentes tipos de critérios, ou seja, é indicado quando na localização de registros o filtro realizada utiliza diferentes campos podendo ter um ou mais index Nonclustered para cada critério selecionado no filtro da query.

Obrigado