A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

III – Oracle 9i Indexação. Índices Baseados em Funções É um índice baseado no valor de retorno de uma expressão ou função –A função pode ser um método.

Apresentações semelhantes


Apresentação em tema: "III – Oracle 9i Indexação. Índices Baseados em Funções É um índice baseado no valor de retorno de uma expressão ou função –A função pode ser um método."— Transcrição da apresentação:

1 III – Oracle 9i Indexação

2 Índices Baseados em Funções É um índice baseado no valor de retorno de uma expressão ou função –A função pode ser um método de instância (na seqüência, consideraremos somente método de instância) O método para cada objeto é pré-computado e seu valor de retorno é armazenado para a chave do índice objeto –Com isto, os valores das funções são recuperados do índice, sem que os métodos tenham que ser computados de novo

3 Índices Baseados em Funções (2) Índices baseados em funções melhoram o desempenho de consultas que têm uma função na cláusula WHERE

4 CREATE OR REPLACE TYPE emp_objtyp AS OBJECT ( nome VARCHAR2(32), salario NUMBER, MEMBER FUNCTION bonus RETURN NUMBER DETERMINISTIC ) / CREATE OR REPLACE TYPE BODY emp_objtyp IS MEMBER FUNCTION bonus RETURN NUMBER DETERMINISTIC IS BEGIN RETURN self.salario *.1; END; /

5 CREATE TABLE emp_objtab OF emp_objtyp / CREATE INDEX bonus_idx ON emp_objtab x (x.bonus()) / SELECT VALUE(e) FROM emp_objtab e WHERE e.bonus() > 2000 / Obs: o valor de x é do tipo REF

6 Índices Baseados em Funções (5) Suponha primeiramente que o índice bonus_idx não tivesse sido criado. Para processar a consulta, Oracle deve computar bonus(), em tempo real, para cada objeto da object table emp_objtab, tornando a consulta onerosa, provavelmente Agora, o índice bonus_idx foi criado. Os resultados de bonus() são simplesmente obtidos do índice, com evidentes ganhos de desempenho

7 Índices Baseados em Funções (6) É necessário que a função sempre retorne o mesmo valor para cada objeto –Cláusula DETERMINISTIC A cláusula DETERMINISTIC é uma promessa do projetista que a função sempre retorna o mesmo valor para o conjunto de argumentos de entrada do método de um objeto Suponha que o salário de um empregado mude, ou que o percentual do bônus seja alterado. Neste caso, o índice deve ser removido e em seguida reconstruído, sempre com a cláusula DETERMINISTIC, que é obrigatória nestes casos


Carregar ppt "III – Oracle 9i Indexação. Índices Baseados em Funções É um índice baseado no valor de retorno de uma expressão ou função –A função pode ser um método."

Apresentações semelhantes


Anúncios Google