Magna Concursos
2448517 Ano: 2012
Disciplina: TI - Banco de Dados
Banca: FUNDATEC
Orgão: PROCERGS

CREATE TABLE TB_PESSOA(
CO_PESSOA NUMBER(10) NOT NULL,
NO_PESSOA VARCHAR2(100) NOT NULL,
NU_CNPJ_CPF VARCHAR2(14),
ST_CLIENTE CHAR(1) NOT NULL,
ST_FORNECEDOR CHAR(1) NOT NULL);

ALTER TABLE TB_PESSOA ADD CONSTRAINT
PK_PES PRIMARY KEY(CO_PESSOA) USING
INDEX TABLESPACE TS_INDICES;

COMMENT ON COLUMN
TB_PESSOA.CO_PESSOA IS 'Chave primária da
tabela TB_PESSOA';

CREATE TABLE TB_DOCUMENTO(
NU_DOCUMENTO VARCHAR2(10) NOT NULL,
CO_PESSOA NUMBER(10) NOT NULL,
TP_PAGAMENTO CHAR(1) NOT NULL,
QT_PARCELAS NUMBER(2),
VL_DOCUMENTO NUMBER(14,2));

ALTER TABLE TB_DOCUMENTO ADD
CONSTRAINT FK_PES_DOC FOREIGN
KEY(CO_PESSOA) REFERENCES
TB_PESSOA(CO_PESSOA);

COMMENT ON COLUMN
TB_DOCUMENTO.NU_DOCUMENTO IS 'Chave
primária da tabela TB_DOCUMENTO';

Figura 5(a) - Declarações SQL executadas em um banco de dados Oracle 11g

DECLARE
X TB_PESSOA.CO_PESSOA%TYPE;
BEGIN
X:= P_CODIGO_CLIENTE;
EXECUTE IMMEDIATE
'SELECT SUM(NVL(VL_DOCUMENTO,0)) ' ||
'INTO : P_TOTAL ' ||
'FROM TB_DOCUMENTO ' ||
'WHERE CO_PESSOA = ' ||
TO_CHAR(X) INTO V_TOTAL_CLIENTE;
END;

Figura 5(b) - Trecho de código, em PL/SQL

Enunciado 3572536-1

Figura 5(c) - Parte do Plano de Execução, visto após ajustes na tabela "TB_DOCUMENTO"

Ao analisar o código, em PL/SQL, mostrado na Figura 5(b), o DBA resolveu otimizar esse código, sem alterar o resultado dessa consulta.
Assinale, dentre as alternativas abaixo, a opção que apresenta a melhor otimização na execução da consulta em questão, considerando que, atualmente, a tabela "TB_PESSOA" possui um milhão de registros e a tabela "TB_DOCUMENTO" possui cem mil registros.

 

Provas

Questão presente nas seguintes provas

Analista de TI - Banco de Dados

60 Questões