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 comando 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

2º Teste - Preechimento dos Dados

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


O comando 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

3º Teste - Execução Múltipla

Executa um número específico de vezes o comando INSERT X* vezes.

Informações
iconfalse
titleOBS

Onde X não é especificado na documentação original.


O teste usa a tabela DETAIL.


Resultado:

OraDirect. NET - Test 3. Multi executing

4º Teste - Chamada a uma Stored Procedure

Esse teste demonstra um número x de chamadas This test demonstrates call specified number of times stored procedure with parameters. Parameters are passed each time on calling stored procedure. Before test execution stored procedure was explicitly prepared.

Stored procedure name: Master_Insert

Parameters to be passed: p_Code, p_Field1, p_Field2, p_Field3

OraDirect. NET - Test 4. Stored procedure callImage Added


Solução

Artigos relacionados

...