Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Informações
iconfalse
titlePERFORMANCE
HTML
<br/>

Este trecho envolve conteúdo extremamente técnico.


Iremos mostrar abaixo, os resultados dos testes de comparação de performance, realizados pela empresa Devart, utilizando o "dotConnect for Oracle" (DirectMode) em relação a outros providers ADO .NET, como: "Oracle Client""OLE DB" e "ODP.NET".

  • Todos os testes foram realizados em um ambiente que utilizava o Sistema Operacional Windows 2000 Professional;
  • Servidor: Intel P4 2.4 / 512 Mb RAM, Oracle9i Enterprise Edition Release 9.2.0; 
  • Estação de Trabalho: Intel P4 2.0 / 512 Mb RAM, Oracle client 9.2.0;

Operações realizadas em banco:

Bloco de código
languagesql
firstline1
titleCreatePerf
linenumberstrue
collapsetrue
CREATE TABLE Master (
  Code NUMBER,
  Field1 VARCHAR(100),
  Field2 VARCHAR(100),
  Field3 VARCHAR(100)
);

CREATE TABLE Detail (
  Code NUMBER,
  Master NUMBER,
  Field1 VARCHAR(100),
  Field2 VARCHAR(100)
);

CREATE TABLE Loaded (
  Code NUMBER,
  Field1 VARCHAR(100),
  Field2 VARCHAR(100),
  Field3 VARCHAR(100),
  Field4 VARCHAR(100),
  Field5 VARCHAR(100)
);

declare
  i INTEGER;
begin
  for i in 1..1000 loop
    INSERT INTO Master (
       Code,
       Field1,
       Field2,
       Field3)
    VALUES (
       i,
       '01234567890123456789',
       '12345678901234567890',
       '23456789012345678901');
  end loop;

  for i in 1..10000 loop
    INSERT INTO Detail (
       Code,
       Master,
       Field1,
       Field2)
    VALUES (
       i,
       mod(i,1000) + 1,
       '01234567890123456789',
       '12345678901234567890');
  end loop;

  COMMIT;
end;
/

CREATE INDEX Detail_IND ON Detail (Master);
/

CREATE OR REPLACE
PROCEDURE Master_Insert (
  p_Code NUMBER,
  p_Field1 VARCHAR2,
  p_Field2 VARCHAR2,
  p_Field3 VARCHAR2
)
is
begin
  NULL;
end;
/


Os teste realizados foram:

1° Teste - Obtenção dos Dados

Esse teste demonstra a obtenção de várias linhas começando com 1000. Para realizar esse teste a classe DataReader é usada diretamente. Nesse teste o valor padrão do parâmetro Fetch Block Size foi usado.


O trecho do código SQL utilizado nesse teste é:

Bloco de código
languagesql
firstline1
titlefetch.test
linenumberstrue
SELECT * FROM Detail WHERE RowNum <= :Recs


Resultado:

OraDirect. NET - Test 1.Fetch


Test 2. Preechimento dos Dados

Esse teste demonstra o preenchimento de um DataSet com por um DataAdapter com várias linhas.


O trecho do código SQL utilizado nesse teste é:

Bloco de código
languagesql
firstline1
titlefill.test
linenumberstrue
SELECT * FROM Detail WHERE RowNum <= :Recs


Resultado:

OraDirect. NET - Test 2. Fill

...