
Microsoft][ODBC SQL Server Driver]Timeout expired
que puedo hacer, ya que cuando ejecuto la consulta por un par de horas si me muestra el resultado...pero si la hago por dia me manda ese error...como soluciono esto?...agradezco la ayuda!!!!
| |||
![]() ![]() Microsoft][ODBC SQL Server Driver]Timeout expired que puedo hacer, ya que cuando ejecuto la consulta por un par de horas si me muestra el resultado...pero si la hago por dia me manda ese error...como soluciono esto?...agradezco la ayuda!!!! |
| |||
Re: error de ODBC!!! Mary: El rendimiento de una consulta entre distintos servidores, aunque estén enganchados con Linked Server es horrible. Incluso el rendimiento disminuye considerablemente si se trata de distintas bases de datos. Por lo mismo te recomiendo como primera medida de optimización generar un DTS para trasladar los datos desde los otros servidores mediante un DTS. o más fácil aún mediante tablas temporales. Considera traspasar los datos realmente útiles de acuerdo a un filtro (where fecha=... código = ...), que sea efectivamente el filtro de la consulta que estás realizando. Una vez que traspases los datos a tablas temporales, se pueden establecer las relaciones de manera de optimizar aún más. ![]() Ahora bien, una consulta en general no debiera sobrepasar los 30 segs. Si ya se han tomado todas las medidas del caso (tablas temporales, índices, relaciones, etc.) El driver de odbc, el oledb y .net inclusive utilizan un objeto llamado Commmand. Este objeto te permite establecer el tiempo límite de ejecución de una consulta (en segundos) y por defecto toma el valor 30. Cuando se establece con valor 0 no considera el tiempo de timeout: ... objCommand.Timeout=0 ... Saludos! |
| |||
![]() ![]() Asi es, mis servidores ya estan ligados...y acerca de lo DTS no se hace...y si estoy utilizando filtros...aunque se trata de unos 8 mil datos...en cuestion de la tablas temporales te refieres a utilizar vistas y luego todavia filtrar mas aun sobre ellas???...y si es asi, como puedo guardar las vistas que impliquen 3 tablas de 3 servidores distintos, nececita mi usuario tener los permisos para ello???
Código:
A que te refieres con los drivers de obdc, oledb y net?"Ahora bien, una consulta en general no debiera sobrepasar los 30 segs. Si ya se han tomado todas las medidas del caso (tablas temporales, índices, relaciones, etc.) El driver de odbc, el oledb y .net inclusive utilizan un objeto llamado Commmand. Este objeto te permite establecer el tiempo límite de ejecución de una consulta (en segundos) y por defecto toma el valor 30." Cuando se establece con valor 0 no considera el tiempo de timeout: ... objCommand.Timeout=0 ... Y como utilizo el comando objCommand.Timeout=0 dentro de mi consulta?? |
| |||
![]() Hola mary! Las vistas son objetos precompilados que optimizan un poco el rendimiento, pero no realizan copias de los datos que estás utilizando. El problema con consultar desde 3 servidores distintos es que el motor tiene que interactuar con los 3 para resolver la consulta. Por ello lo más recomendable trasladar los datos que vas a utilizar para consultar a un sólo servidor. Cómo? utilizando tablas temporales. Puedes enviar la consulta que estás utilizando? (así te podría explicar mejor) Supongo que cuando ejecutas la consulta y se demora 2 horas lo haces vía analizador de consultas (o Query analyzer), y lo que estás programando está en Visual basic, PHP u otro lenguaje. ![]() mándame los códigos |
| |||
Re: error de ODBC!!! ![]()
Código:
Y en mi aplicacion hago varias consultas de este tipo, esta programada en ASP...ojala con esto me puedas orientar...SELECT TOP 100 PERCENT dbo.E1.CODE, dbo.E1.DIGITO, Msap_1.Medida, Msap_1.Linea, dbo.CAT_TRADE.EQUIPMENT, dbo.CAT_TRADE.SIDEWALL, MAX(dbo.E1.WEIGHT) AS PPROM, COUNT(dbo.E1.CODE) AS CANTIDAD, MIN(dbo.E1.FECHC) AS FECHCMIN, dbo.E1.WAREHOUSE FROM dbo.E1 LEFT OUTER JOIN dbo.CAT_TRADE ON dbo.E1.DIGITO = dbo.CAT_TRADE.DIGITO LEFT OUTER JOIN [SERV-BCODE].Rast.dbo.opUnic opUnic_1 LEFT OUTER JOIN SERV_MONIT.Monitoreo.dbo.Msap Msap_1 ON opUnicos_1.CodComer = Map_1.CodComer ON dbo.E1.IDETIQ = opUnic_1.IdEtiq WHERE (dbo.E1.FECHC > '2/26/2007 00:00:00') AND (dbo.E1.FECHC < '2/26/2007 23:59:00') GROUP BY dbo.E1.CODE, dbo.ES1.DIGITO, dbo.ES1.WAREHOUSE, Msap_1.Medida, Msap_1.Linea, dbo.CAT_TRADE.EQUIPMENT, dbo.CAT_TRADE.SIDEWALL HAVING (dbo.E1.CODE > '0') AND (dbo.E1.WAREHOUSE = 1) ORDER BY dbo.E1.CODE, Masap_1.Medida, Msap_1.Linea ![]() ![]() |
| |||
Re: error de ODBC!!! ![]() "Microsoft][ODBC SQL Server Driver]Timeout expired" y por lo tanto tampoco me muestra el resultado en la aplicacion web (asp)...por otro lado ayer realice la consulta de dicho dia y me mostro el resultado sin problema...eran casi 4 mil datos...pero al querer ejecutar la consulta del dia o dias anteriores...nuevamente fallaba...por que solo se ejecuto la consulta del dia actual y las otras no?? Ademas cuando salio el error y le di click en "help" me recomendaba revisar mi odbc: "ODBC error: <0s>. An ODBC error has been generated. You might have deleted a record that has a foreign key value related to it, or you might have violated a check constraint. For details, refer to your ODBC documentation." Revise el OBDC del servidor local y estas son las caracteristicas: Data Source Name: Local Server
Código:
Tambien permite hacer conexiones remotas con otros servidores y el valor del query time se encuentra en "0"Data Source Description: Server: (local) Database: (Default) Lenguaje (Default) Traslate Character Data: Yes Log Long Running Queries: No Log Driver Statistics: No Use Integrated Security: Yes Use Regional Settings: Yes Repared Statements Option: Drop Temporary procedures on disconnect Use Failover Server: No Use ANSI Quoted Identifiers: Yes Use ANSI Null, Panddings and Warnings: Yes Data Encryption: No 14:29 03/07/2007 Con respecto a los servidores remotos vinculados revise y en ambos tengo el valor de cero tanto para el connection timeout y el query timeout. Inclusive en la alicacion de ASP le puse la instruccion de <% Server.ScriptTimeOut = 1800 %> la cual prolonga el tiempo de consulta (segundos)...pero nada ha funcionado y sigo con el mismo error...que puedo hacer?...que me falta??...ayuda por favor!!!... ![]() ![]() ![]() |