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 por 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 é:This test demonstrates fetch of various amounts of rows started since 1000. To perform this test DataReader class is used directly. In this test the default value of Fetch Block Size parameter was used. SQL statement to be executed for testing

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


Resultado:

OraDirect. NET - Test 1.Fetch


Solução

Artigos relacionados

...