Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #5  
Antiguo 30-11-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.070
Poder: 32
jhonny Va camino a la famajhonny Va camino a la fama
Bueno, acabo de hacer una prueba que quizá sea insuficiente pero nos ayudara a crearnos una idea del asunto:

Para realizar esta prueba he utilizado...
  • FB 2.1 Beta 2.
  • Los componentes, IBTable (Para realizar los insert), IBQuery (Para ejecutar el procedimiento almacenado), por consiguiente el IBDatabase y el IBTransaction.
  • Delphi 2007 for Win32.

* En la base de datos he creado lo siguiente:

Tabla
=====

Código SQL [-]
create table ib_vs_sp (
    conteo  integer not null
);

alter table ib_vs_sp add constraint pk_ib_vs_sp primary key (conteo);

Procedimiento almacenado
========================
Código SQL [-]
CREATE PROCEDURE SP_INS_IB_VS_SP 
as
declare variable i integer;
begin
  I = 0;
  while (I <= 100000) do
  begin
    insert into ib_vs_sp (CONTEO) values(:I);
    I = :I + 1;
  end
end

* En Delphi coloque dos botones para ejecutar cada cosa y para tomar los Ticks del procesador... tambien dos labels para mostrar los resultados.

Boton para el .Post del TIBTable
================================
Código Delphi [-]
var
  Ticks, I :Cardinal;
begin
  IBTable1.Close;
  IBTable1.Open;
  
  Ticks := GetTickCount; //Comienza el conteo de Ticks...
  for I := 0 to 100000 do
  begin
    IBTable1.Insert;
    IBTable1CONTEO.AsInteger := I;
    IBTable1.Post;
  end;
  Label2.Caption := IntToStr(GetTickCount - Ticks); //Termina solo teniendo en cuenta el proceso de insercción.

  Label6.Caption := 'Termino';
end;

Boton para ejecutar el procedimiento almacenado
===============================================

Código Delphi [-]
var
  Ticks :Cardinal;
begin
  IBQuery1.Close;
  Ticks := GetTickCount; //Comienza el conteo de Ticks...
  IBQuery1.ExecSQL;//Termina solo teniendo en cuenta el proceso de insercción.
  Label4.Caption := IntToStr(GetTickCount - Ticks);
  Label5.Caption := 'Termino';
end;



* Como pueden ver la prueba la hago en ambos casos, simplemente insertando 100000 registros.


Antes de hacer click en cada boton me cerciore que fuera lo "primero" que hacia el programa y que fuera el "unico" programa en ejecución en mi maquina... Osea, hice click en el primer boton, obtuve el resultado, cerre la aplicación, volví a abrirla e hice click en el otro botón.

Los resultados finales fueron los siguientes:

Con el IBTable
==============
72156 Ticks


Con el SP
=========
64532 Ticks

Bueno, Se que no es una prueba optima pero nos dara alguna idea .
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/

Última edición por jhonny fecha: 30-11-2007 a las 17:13:29.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Procedimientos almacenados AS/400 Carlos A Ortega DB2 1 12-12-2006 00:32:39
procedimientos almacenados davidgaldo SQL 7 09-11-2006 17:28:33
procedimientos almacenados datorar Conexión con bases de datos 8 03-01-2006 17:05:43
procedimientos almacenados Gabriel2 SQL 1 13-01-2005 14:50:09
Procedimientos almacenados VS UDF rqc Firebird e Interbase 6 18-03-2004 01:29:46


La franja horaria es GMT +2. Ahora son las 00:12:01.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi