Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-01-2012
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.806
Poder: 22
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
No veo el código. Deberás ponerlo entre[ delphi ] y [ /delphi ].

Parece que es:
Código Delphi [-]
with Rprt.adoqryDtsRprt do 
begin 
  Close; 
  SQL.Clear; 
  // 20111010 FEOL Se añade los nuevos parámetros. 
  SQL.Add('SET DATEFORMAT DMY ' + #13 + #10 + 
    DevuelveSP(IntToStr(iIdntfcdrRprt))+' '+ 
    IntToStr(iIdntfcdrRprt)+', '+ 
    QuotedStr(DateToStr(dtetmepckrFchDsd.Date))+', '+ 
    QuotedStr(DateToStr(dtetmepckrFchHst.Date))+', '+ 
    sDsgls+', 0, 0,'+
    sPcntsEgrsds+', 0, '+ 
    sFechaPivote); 
  wsNmbrArchv := SQL.Text; 
  Open; 
end;
  • Tu problema puede ser que la transacción tenga un tiempo de timeout "pequeño" para tu requerimiento. (Mira ADOQuery.CommandTimeOut)
  • También puede ser que otra transacción colisione con la del listado y genere un error.
  • Puede ser también que la cantidad de líneas que devuelve el procedimiento sean demasiadas. Prueba a poner el AdoQuery.CursorLocation = clUseServer.
Responder Con Cita
  #2  
Antiguo 05-01-2012
Avatar de TiammatMX
TiammatMX TiammatMX is offline
Miembro
 
Registrado: jun 2006
Ubicación: Universo Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Puebla\Heróica Puebla de Zaragoza\Jardines de San Manuel\Home
Posts: 746
Poder: 21
TiammatMX Va camino a la fama
Cita:
Empezado por duilioisola Ver Mensaje
  • Tu problema puede ser que la transacción tenga un tiempo de timeout "pequeño" para tu requerimiento. (Mira ADOQuery.CommandTimeOut)
TimeOut a 0, o sea, a infinito. Por ese lado, descartamos el problema.

Cita:
Empezado por duilioisola Ver Mensaje
  • También puede ser que otra transacción colisione con la del listado y genere un error.
No uso transacciones, son SP's que sólo producen datos.

Cita:
Empezado por duilioisola Ver Mensaje
  • Puede ser también que la cantidad de líneas que devuelve el procedimiento sean demasiadas. Prueba a poner el AdoQuery.CursorLocation = clUseServer.
Devuelve solamente 88 filas, el más largo de ellos.
__________________
Felipe Eduardo Ortiz López. Delphi programmers does it recursively...

"Un programador, es un creador de universos en donde sólo él es responsable. Universos de complejidad prácticamente ilimitada que se puede crear en forma de programas de ordenador." - Joseph Weizenbaum.

Témele a los profetas... y a aquellos que están listos para morir por "la verdad", ya que como regla general hacen morir a muchos otros con ellos, frecuentemente antes que ellos, y a veces en lugar de ellos. — Umberto Eco
Responder Con Cita
  #3  
Antiguo 05-01-2012
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 21
Chris Va por buen camino
Estimado Colega, sin ánimo de ofender, sinceramente pienso que un Stored Procedure que dure casi media hora es inaceptable. A cómo ha comentado Casimiro arriba, es mejor que busques como optimizar el tiempo de respuesta de ése procedimiento. Tienes que hacer un análisis exhaustivo de él y ver que índices son necesarios para mejorar su rendiemiento y además debes fijarte que las clausulas SQL sean las óptimas.

Saludos,
Chris
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #4  
Antiguo 05-01-2012
Avatar de TiammatMX
TiammatMX TiammatMX is offline
Miembro
 
Registrado: jun 2006
Ubicación: Universo Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Puebla\Heróica Puebla de Zaragoza\Jardines de San Manuel\Home
Posts: 746
Poder: 21
TiammatMX Va camino a la fama
Cita:
Empezado por Chris Ver Mensaje
Estimado Colega, sin ánimo de ofender, sinceramente pienso que un Stored Procedure que dure casi media hora es inaceptable...
Chris
Aquí entramos en el terreno del "debería", situación que no es muy agradable. DEBERÍA tardar menos tiempo en ejecutarse, pero por la cantidad de información que procesa (datos de todo el año referentes a estadísticas médicas) ésto no es posible, DEBERÍA ser optimizado, pero el DBA que lo creó ha realizado TODAS las modificaciones técnicas que han sido posibles (y algunas imposibles) y no se ha logrado bajar un segundo el tiempo de respuesta. "Inaceptable" me parece un concepto muy duro.

Cita:
Empezado por Chris Ver Mensaje
...A cómo ha comentado Casimiro arriba, es mejor que busques como optimizar el tiempo de respuesta de ése procedimiento. Tienes que hacer un análisis exhaustivo de él y ver que índices son necesarios para mejorar su rendiemiento y además debes fijarte que las clausulas SQL sean las óptimas...
Créeme que el equipo de trabajo del cual soy parte ha buscado una solución a éste problema en particular, especialmente por que corresponde al desarrollo de nuestro cliente principal..., pero en éste momento no hemos encontrado una solución viable, excepto tal vez montar una Cray2 como servidor de datos...
__________________
Felipe Eduardo Ortiz López. Delphi programmers does it recursively...

"Un programador, es un creador de universos en donde sólo él es responsable. Universos de complejidad prácticamente ilimitada que se puede crear en forma de programas de ordenador." - Joseph Weizenbaum.

Témele a los profetas... y a aquellos que están listos para morir por "la verdad", ya que como regla general hacen morir a muchos otros con ellos, frecuentemente antes que ellos, y a veces en lugar de ellos. — Umberto Eco
Responder Con Cita
  #5  
Antiguo 05-01-2012
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.671
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Si das por hecho que se han realizado todas las pruebas posibles, y se han tomado todas las medidas necesarias, y TODOS los métodos posibles para mejorarlos... y das por hecho de que no se puede hacer nada más... ¿entonces por qué preguntas?
Creo que hay que ser más humilde, TODOS tenemos mucho que aprender.
Hay muchísimas cosas que se pueden hacer, suponiendo que sea imposible mejorar más el store procedure y la base de datos, por ejemplo: ¿qué sistema operativo usa el servidor?.
Responder Con Cita
  #6  
Antiguo 05-01-2012
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 21
Chris Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
por ejemplo: ¿qué sistema operativo usa el servidor?.
Debe ser un Windows ...

Ya en serio, es Windows! El compañero está utilizan SQL Server según me pareció leer.

Saludos!
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #7  
Antiguo 05-01-2012
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.671
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Pues entonces "ajo y agua" .
No puedes usar un Cray porque windows no funciona ahí.
Si usaras firebird, postgresql, etc. entonces sí puedes instalar un servidor con linux, ya sea uno pequeñito, como en uno de los más potentes mainframes que existen.
Responder Con Cita
  #8  
Antiguo 05-01-2012
Avatar de TiammatMX
TiammatMX TiammatMX is offline
Miembro
 
Registrado: jun 2006
Ubicación: Universo Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Puebla\Heróica Puebla de Zaragoza\Jardines de San Manuel\Home
Posts: 746
Poder: 21
TiammatMX Va camino a la fama
Cita:
Empezado por Casimiro Notevi Ver Mensaje
...por ejemplo: ¿qué sistema operativo usa el servidor?.
Windows Server 2003...

jejejeje Y lo del Cray2 era broma..., así de desesperados estamos...
__________________
Felipe Eduardo Ortiz López. Delphi programmers does it recursively...

"Un programador, es un creador de universos en donde sólo él es responsable. Universos de complejidad prácticamente ilimitada que se puede crear en forma de programas de ordenador." - Joseph Weizenbaum.

Témele a los profetas... y a aquellos que están listos para morir por "la verdad", ya que como regla general hacen morir a muchos otros con ellos, frecuentemente antes que ellos, y a veces en lugar de ellos. — Umberto Eco
Responder Con Cita
  #9  
Antiguo 05-01-2012
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 21
Chris Va por buen camino
Cita:
Empezado por tiammat Ver Mensaje
Aquí entramos en el terreno del "debería", situación que no es muy agradable. DEBERÍA tardar menos tiempo en ejecutarse, pero por la cantidad de información que procesa (datos de todo el año referentes a estadísticas médicas) ésto no es posible, DEBERÍA ser optimizado, pero el DBA que lo creó ha realizado TODAS las modificaciones técnicas que han sido posibles (y algunas imposibles) y no se ha logrado bajar un segundo el tiempo de respuesta. "Inaceptable" me parece un concepto muy duro.
Fíjate que en términos de optimización:
Código SQL [-]
select * from tabla where cast(campo_entero as string) = '00004'
No es lo mismo que
Código SQL [-]
select id, cliente_nombre from tabla where cast(campo_entero as string) = '00004'
Ni tampoco
Código SQL [-]
select id, cliente_nombre from tabla where campo_entero = 4

No estoy diciendo que tu SP haga este tipo de desperdicio de recursos, sino que hay ciertos comandos SQL que con solo delimitar los campos se optienen incrementos cosiderables. Además, por experiencia propia he visto que la sintaxis influye en ciertos casos. Recuerdo una vez que obtuve un decremento en el tiempo de espera de alrededor de 5,000% optimizando el SQL y agregando algunos índices y quitando algunos no necesarios.

Saludos,
Chris
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
crear Stored Procedure desde delphi Milperrimo Firebird e Interbase 4 03-02-2008 18:52:53
stored procedure con mysql y delphi 7 didier Internet 2 13-10-2006 03:36:38
Ver los Stored Procedure tgsistemas SQL 0 06-04-2004 17:18:22
Stored Procedure tgsistemas SQL 1 27-02-2004 13:10:33
Ver resultado de un Stored Procedure desde Delphi ElCherchu Conexión con bases de datos 6 10-06-2003 09:51:55


La franja horaria es GMT +2. Ahora son las 22:44:52.


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