Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MS SQL Server
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-05-2010
Avatar de look
look look is offline
Miembro
 
Registrado: sep 2007
Ubicación: The Shire
Posts: 656
Poder: 17
look Va camino a la fama
Sobre Transacciones en SQL

Hola compañeros veran tengo el siguiente problema con mi sistema de facturacion. el probla radica en la lentitud del sistema a medida que este lleva un tiempo en uso.
normalmente para guardar una factura utilizo el siguiente codigo
Código Delphi [-]
if not (Database1.InTransaction) then Database1.StartTransaction;
          try
             /// proceso de calculo 
            database1.Commit;
          except
            on E: Exception do
            begin
                  DATABASE1.ROLLBACK;
                  Application.MessageBox( PCHAR('Ocurrio un error.'+#13+'Intente mas tarde.'+#13+E.MESSAGE), 'Error',MB_ICONERROR );
                  exit;
            end;
          END;
estube leyendo la cara oculta de delphi y la biblia de delphi de marco c.
aparente mente he llegado a una conclusion pero no estoy seguro, la cosa es que segun estube leyendo es que las transacciones deben de ser lo mas cortas posibles, ahora ¿realmente esto mejora el rendimiento?, porque en realidad creo que si tengo algo larga la transaccion, mi sistema trabaja con muchos pc's clientes y amedida que trabajan , el rendimiento va bajando.
¿ de que manera trabajan ustedes con sus sistemas? me vendria bien sus sabios consejos. tambien leei por alli que se pueden utilizar procedimientos almacenados en la base para mejorar el rendimiento pero... no tengo idea de como hacerlo... espero sus comentarios...
saludos.




__________________
all your base are belong to us
Responder Con Cita
  #2  
Antiguo 04-05-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.293
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Bueno, creo que las dos cosas/palabras que definen las transacciones. Atómicas, puesto que esa es su definición y pequeñas por lógica.

Una transaccion es una serie de operaciones que el sistema asegura que se harán de forma atómica, es decir, sin la intervención de ningun otro proceso desde el inicio al final y además el sistema asegura que todas esas operaciones se "harán todas" o no se "hará ninguna". Para conseguir eso el sistema puede bloquear a otros procesos si es necesario y además debe mantener una información adicional (sobrecarga) por si en algun momento ha de "deshacer" todo lo que lleva hecho en una transacción.

Eso significa que, cuanto mayor es la transacción (más larga), es más probable que un mayor número de procesos relacionados sufran bloqueos y que la información asociada a la transacción sea mayor y afecte al rendimiento.

Por lo tanto, una transacción debe ser siempre lo más pequeña posible.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 08-05-2010
Avatar de look
look look is offline
Miembro
 
Registrado: sep 2007
Ubicación: The Shire
Posts: 656
Poder: 17
look Va camino a la fama
Cita:
Empezado por Neftali Ver Mensaje
Bueno, creo que las dos cosas/palabras que definen las transacciones. Atómicas, puesto que esa es su definición y pequeñas por lógica.

Una transaccion es una serie de operaciones que el sistema asegura que se harán de forma atómica, es decir, sin la intervención de ningun otro proceso desde el inicio al final y además el sistema asegura que todas esas operaciones se "harán todas" o no se "hará ninguna". Para conseguir eso el sistema puede bloquear a otros procesos si es necesario y además debe mantener una información adicional (sobrecarga) por si en algun momento ha de "deshacer" todo lo que lleva hecho en una transacción.

Eso significa que, cuanto mayor es la transacción (más larga), es más probable que un mayor número de procesos relacionados sufran bloqueos y que la información asociada a la transacción sea mayor y afecte al rendimiento.

Por lo tanto, una transacción debe ser siempre lo más pequeña posible.
hola. gracias compañero, efectivamente tenia mucho que ver lo de las transacciones largas , gracias por tu ayuda.... saludos
__________________
all your base are belong to us
Responder Con Cita
Respuesta



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
ejercicio teorico sobre transacciones macro32 Conexión con bases de datos 0 23-04-2008 01:01:01
Consulta sobre transacciones Ezecool Conexión con bases de datos 3 08-05-2007 17:45:41
Transacciones joanajj Conexión con bases de datos 1 14-05-2006 12:58:57
dudas sobre transacciones..... inexperto Conexión con bases de datos 2 18-11-2004 20:24:31
Duda sobre Transacciones Tama MS SQL Server 3 16-06-2004 10:58:05


La franja horaria es GMT +2. Ahora son las 17:09:54.


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