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 é: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

OraDirect. NET - Test 1.FetchImage Removed

...

Artigos relacionados

...

hiddentrue

...


Resultado:

OraDirect. NET - Test 1.FetchImage Added

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. FillImage Added

3º Teste - Execução Múltipla

Executa um número específico Xde vezes o comando INSERT.

O teste usa a tabela DETAIL.


Resultado:

OraDirect. NET - Test 3. Multi executingImage Added

4º Teste - Chamada a uma Stored Procedure

Esse teste demonstra um número específico X de chamadas a uma Stored Procedure com parâmetros. Os Parâmetros são passados cada vez que a Store Procedure é chamada. A Stored Procedure foi criada antes dos testes de Execução (4º Teste)

Nome da Stored Procedure: Master_Insert

Parâmetros a sêr submetidos: p_Code, p_Field1, p_Field2, p_Field3


Resultado:

OraDirect. NET - Test 4. Stored procedure callImage Added


Caso queira conferir o artigo oficial do teste, acesse DotConnect for Oracle Performance.

Links Úteis

Caso tenha algum problema na comunicação entre o AppServer (Host) e o banco de dados, consulte o artigo CannotConnect ao utilizar Direct mode (Oracle).