Foros del Web » Programando para Internet » ASP Clásico »

Tiempo de respuesta de una consulta MS SQL

Estas en el tema de Tiempo de respuesta de una consulta MS SQL en el foro de ASP Clásico en Foros del Web. Hola, estoy trabajando en paginas asp 3.0 que consultan por medio de dns a una base de datos Microsoft Sql 7.0; el problema que tengo ...
  #1 (permalink)  
Antiguo 11/06/2003, 16:49
Avatar de Leonardo A. Sanchez  
Fecha de Ingreso: julio-2000
Ubicación: Mexico D.F.
Mensajes: 151
Antigüedad: 24 años, 9 meses
Puntos: 0
Tiempo de respuesta de una consulta MS SQL

Hola, estoy trabajando en paginas asp 3.0 que consultan por medio de dns a una base de datos Microsoft Sql 7.0; el problema que tengo es que cuando elaboro consultas esta base de datos es muy grande 4.6 GB y se demora mucho en devolverme resultados; quisiera saber si existe algun modo de que el servidor sql me sirviera los primeros datos al servidor iis y asi se me fuera cargando la pagina mas rapido en lo que calcula el resto del listado; o que me preparara la consulta y la fuera mandando por grupos de registros, en fin algun modo de bajar radicalmente el tiempo que se demora en mostrarle el resultado de una consulta.

Por ejemplo, listo una tabla, donde me dice que contiene 57000 registros, y solo le pido me pueste los primeros 15, cuando le pido que me muestre los siguiente 15 se demora mucho.

Estoy programando con Macromedia Ultradex MX. y uso los recordsets que me brindan los ayudantes
__________________
En las manos de su manejador, la vida de Michael Jordan vale unos 20 millones, en las manos de Dios, cuanto crees que valdria tu vida? Entregasela y el hara de tu vida la mas valiosa del mundo entero.
  #2 (permalink)  
Antiguo 11/06/2003, 17:01
Avatar de maestro  
Fecha de Ingreso: febrero-2002
Ubicación: España
Mensajes: 2.364
Antigüedad: 23 años, 2 meses
Puntos: 1
Leonardo eso no es una base de datos, ES UNA VENGANZA DEL INFIERNO , vamos a ver, ¿ que tienes en esas bases la agenda telefonica de todo tu pais ?

Deberias replantearte el crear varias tablas o almacenar los registros de otra forma o eliminar registros antiguos.

Me parece un numero excesivo incluso para cosas avanzadas como ORACLE o SQL SERVER

No obstante para obtener los datos de forma paginada (de 100 en 100, por ejemplo) aqui te dejo enlaces:
http://aspfacil.com/articulos/verarticulo.asp?id=41

Y para ver un numero determinado de registros en una SQL puedes usar esto
SQL=" Select top 10 * from tutabla where tucampo="patata" "
__________________
Jose Maria Fernandez
[email protected]
Http://www.expansionweb.net
  #3 (permalink)  
Antiguo 12/06/2003, 10:08
Avatar de Leonardo A. Sanchez  
Fecha de Ingreso: julio-2000
Ubicación: Mexico D.F.
Mensajes: 151
Antigüedad: 24 años, 9 meses
Puntos: 0
Estamos de acuerdo

Hola, pues si la verdad es como la venganza de los datos zombi, es un horror!!! , pero la cosa es que todas las tablas son chicas, excepto una en la que se almacenan datos capturados de la operación de la red, imaginate en una red con 3000 o 5000 eventos diarios , pues por eso se crece tanto; sin embargo puenso que es buena la idea que me das de vaciar los mas viejo en algun otro lado , no se; tengo que verificarlo con mi equipo de desarrollo. Pero por lo pronto no puedo hacer mas que tratar de eficientar las consultas.

Te agradezco y si alguie mas tiene una idea, son bien recibidas.
__________________
En las manos de su manejador, la vida de Michael Jordan vale unos 20 millones, en las manos de Dios, cuanto crees que valdria tu vida? Entregasela y el hara de tu vida la mas valiosa del mundo entero.
  #4 (permalink)  
Antiguo 18/06/2003, 04:31
Avatar de Subotai  
Fecha de Ingreso: mayo-2003
Ubicación: Irúnforge
Mensajes: 198
Antigüedad: 22 años
Puntos: 1
Desde luego el problema de una bd mal diseñada tiene mala solucion, al menos nada facil, yo creo que deberias rediseñar la bd entera y despues exportar los datos a la nueva bd...
Es necesario almacenar tantos datos? Son accedidos tan regularmente como para mantenerlos en tablas?
no se que recomendarte.
montatelo para crear una jerarquia de tablas que engloben la tablota que tienes ahora.
Por ejemplo... sabes como funcionan los transaccionales en oracle?
podrias hacer algo parecido pero diferente.
te explico
En oracle puedes tener mas de un transaccional que puede estar agrupado en varios para sugurar la consistencia en caso de caida o accidente. Hay un procesode fondo que va grabando datos en los discos del grupo transaccional, cuando un grupo se llena pasa al siguiente grupo y otro proceso va salvando la informacion de todas las transacciones confirmadas. bien
Lo que te propongoes lo siguiente:
Te gustaria tener en vez de una Super-tabla del averno(como tienes ahora) un monton de tablas de un tamaño determinado, el que tu quieras, seguro que es mas apetecible...
para hacer esto vas a tener que tirar de procedimientos almacenados y disparadores(en sql desencadenadores)
si tu tablota tiene como pk un autonumerico mas facil pues no tienes que crearlo.
creaate un procedimiento almacenado que inserte registros en una tabla (cuyo nombre tomara de otra tabla donde almacenaras los diferentes nombres de tablas que van a tener la tablas nuevas) hasta un numero determinado, en el momento que pase de dicho numero tomara el nombre de la siguiente tabla que debera estar creada de antemano.

en la tabla de nombres seria conveniente tener el rango de registros que almacena (los valores del autonumerico), esta tabla funcionara como un indice de tablas, me entiendes?
vamos que basicamente creas una bd para manejar una super-tabla.
La verdad es que es un poco peliagudo pues para hacer las consultas deberia haber otro procedimiento almacenado que maneje el rango del registro (con el autonumerico) y en base a esto obtener el nombre de la tabla donde se encuentra el registro que quieres.
Al final lo que conseguimos es reducir el tamaño de los indices, en lugar de tener un megaindice tenemos muchos mas pero mas reducidos.
lo malo es que si tu bd era grande...ahora lo sera todavia mas!!!
pero realizara trabajos mas ligeros en lugar de uno solo muuuy pesado.
tienes que mirar los pros y los contras, si te merece la pena o no.
es un trabajo de chinos!!!!!!!!
cero que a estas alturas ya te habra desanimado mi "idea" admito que es un poco descabellada pero como lo solucionarias tu?
si ya lo has arreglado me encantaria saber que fue lo que hicistes
espero tu respuesta
agur
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:44.