Pregunta

acceso a varias tablas de forma remota a través de DB Link. Son muy normalizaron y los datos de cada uno es eficaz en fecha. De los millones de registros en cada tabla, sólo un subconjunto de ~ 50k son los registros actuales.

Las mesas son manejados internamente por un producto comercial que va a lanzar un gran ataque si añado índices o alteraciones realice en sus tablas de ninguna manera.

¿Cuáles son mis opciones para acelerar el acceso a estas tablas?

¿Fue útil?

Solución

Se podría tratar de crear un vista materializada de algún subconjunto de las tablas sobre el DB enlace y consulta a continuación de aquellos.

Otros consejos

Creo que estás entre la espada y la pared aquí, pero en el pasado la siguiente ha trabajado para mí:

Puede tirar de una instantánea de los datos actuales en los intervalos especificados, cada hora o cada noche o lo que sea obras, y añadir sus índices a sus propias tablas, según sea necesario. Si necesita acceder a los datos en tiempo real,, entonces puede intentar tirar todos los registros actuales en una tabla temporal y la indexación según sea necesario.

La sobrecarga adicional de la copia de una base de datos en su propio puede empequeñecer el beneficio real, pero vale la pena un tiro.

tendrá que buscar en los planes. Es posible que pueda cambiar el orden de la unión, añadir criterios, o proporcionar consejos para hacerlo más rápido, pero sin explicar el plan, usted no sabe por qué es lento, por lo que ni siquiera sabemos si se puede hacer más rápido.

Podría tomar un volcado diaria de los registros que necesita en sus propias bases de datos / tablas?

Los datos del archivo que ya no es actual. (O si eso no es aceptable, datos que supera un umbral estancamiento adecuado para sus necesidades.)

¿Qué pasa con la creación de un materializada / vista indizada? Eso podría ayudar un poco.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top