¿Qué son tablas participadas?

El jue., 9 abr. 2020 0:01, <[email protected]> escribió:

> por que no miras "Tablas Particionadas", nosotros tenemos una base de
> 3.200.000.000 de registros y las tenemos separadas por periodo del asiento
> (AAAMM) y la verdad es que andan muy rapido, al margen que a la hora de
> depurar dichas tablas, tambien es rapido
>
>
> Saludos
>
>
>
>
>
> [image: Mailtrack]
> <https://mailtrack.io?utm_source=gmail&utm_medium=signature&utm_campaign=signaturevirality5&;>
>  Remitente
> notificado con
> Mailtrack
> <https://mailtrack.io?utm_source=gmail&utm_medium=signature&utm_campaign=signaturevirality5&;>
>  08/04/20
> 18:52:24
>
> El mié., 8 abr. 2020 a las 17:06, datil400 (<[email protected]>)
> escribió:
>
>> Hola Jesús,
>>
>> He de reconocer que nunca he tenido el tiempo suficiente para ponerme al
>> día en temas como asesor de índices o de rendimiento de la BBDD, a parte de
>> que se ma hace cuesta arriba.
>>
>> Gracias por tus comentarios.
>>
>> El vie., 3 abr. 2020 9:44, Jesus Maria Arzak (DHL ES) <
>> [email protected]> escribió:
>>
>>> Buen Dia
>>>
>>>
>>>
>>> Una cosa muy importante que has de tener en cuenta a la hora de utilizar
>>> el Sql es que cuando utilices un índice tengas en el Where los campos del
>>> índice, no hace falta que tengas todos  pero los que estén sean del índice.
>>>
>>>
>>>
>>> Además es muy muy importante que los pongas ordenados según el orden del
>>> índice.
>>>
>>>
>>>
>>> En el momento que aparecen desordenados o tienes un campo de selección
>>> que no está en el índice el rendimiento baja espectacularmente.
>>>
>>>
>>>
>>> Quizá ya lo sepas pero no lo he visto mencionado .
>>>
>>>
>>>
>>> Un saludo
>>>
>>>
>>>
>>>
>>>
>>> *Jesús Mª Arzak Capilla*
>>>
>>> Solutions Management
>>>
>>> *DHL Parcel Iberia, S.L.U.*
>>>
>>> Paseo Mikeletegi, nº 65
>>> Parque Tecnológico de San Sebastián
>>> E-20009 San Sebastián
>>>
>>> Phone: +34 943 37 81 37
>>>
>>>
>>> * [email protected] <%[email protected]>*
>>>
>>> www.dhlparcel.es
>>>
>>> *GO**GREEN – Environmental protection with DHL*
>>> *Por favor, ten en cuenta el medio ambiente antes de imprimir este
>>> correo*
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> *From:* Forum.help400 [mailto:[email protected]]
>>> *On Behalf Of *Juan Carlos Paredes
>>> *Sent:* jueves, 2 de abril de 2020 21:55
>>> *To:* forum.help400 <[email protected]>
>>> *Subject:* Re: Cómo optimizar la consulta a una vista SQL
>>>
>>>
>>>
>>> Por eso te digo que evites las subselect. Trata de filtrar en la select
>>> final.
>>>
>>> Mira a ver qué te dice el Visual Explain.
>>>
>>> Otra opción es que arranques un monitor de rendimiento sobre el trabajo
>>> y revises las anotaciones. Una de las tareas más pesadas el la apertura y
>>> cierre de ODPs.
>>>
>>> Revisa qué está haciendo el motor de DB2 con eso.
>>>
>>> Obtener BlueMail para Android <http://www.bluemail.me/r?b=15824>
>>>
>>> En 2 abr. 2020, en 21:47, datil400 <[email protected]> escribió:
>>>
>>> Los índices ya están creados, incluso aquellos que aconseja el asesor.
>>>
>>>
>>>
>>> Desde mi punto de vista, son tantos los registros que hay que resumir en
>>> cada subselect (todos?), que es lo que provoca la falta de rendimiento.
>>>
>>>
>>>
>>> Gracias Juan Carlos
>>>
>>>
>>>
>>> El jue., 2 abr. 2020 21:21, Juan Carlos Paredes <[email protected]>
>>> escribió:
>>>
>>>
>>>
>>> Si el valor inicial y final son el mismo en ambas tablas, yo crearía un
>>> índice por ese campo en ambas tablas y otro por la clave de la join.
>>>
>>> Y luego
>>>
>>> Select * from tabla1 join tabla2 on clave1 = clave2 where valor between
>>> valor_inicial and valor_final.
>>>
>>> Espero que ayude.
>>>
>>> Salud y paciencia
>>>
>>> #yomequedoencasa
>>>
>>> Juan Carlos.
>>>
>>> En 2 abr. 2020, en 20:57, datil400 <[email protected]> escribió:
>>>
>>> El tema de los índices está más que revisado, no mejoran el rendimiento.
>>>
>>>
>>>
>>> Los subselects siempre revisan todos los registros. ¿Cómo lo sé? Una
>>> consulta de un tramo pequeño está tardando entrr 30 y 45 minutos. Si
>>> incorporo en los subselects el mismo filtro, tarda segundos.
>>>
>>>
>>>
>>> Me toca aprender cómo se puede transformar un procedimiento almacenado
>>> en una vista. Si fuera posible, ¡claro!
>>>
>>>
>>>
>>> Gracias por tu aportación.
>>>
>>>
>>>
>>> El jue., 2 abr. 2020 18:31, Nicolas Silva <[email protected]> escribió:
>>>
>>> Hola Javier:
>>>
>>>
>>>
>>> Yo me inclinaria para un Stored Procedure debido a que en tu seleccion
>>> tienes parametros, en este caso fechas, y no puedes dejarlos predispuestos
>>> en la vista.
>>>
>>> Tambien, intentaria agregar un indice tipo EVI sobre las tablas para
>>> mejor seleccion de las fechas.
>>>
>>>
>>>
>>> Si el asesor de indices no te lo indica, puedes ejecutar el visual
>>> explain para ver mejor los indices a crear.
>>>
>>>
>>>
>>> Espero puedas resolverlo.
>>>
>>>
>>>
>>> Saludos !!!!
>>>
>>>
>>>
>>>
>>>
>>> El jue., 2 abr. 2020 a las 11:08, datil400 (<[email protected]>)
>>> escribió:
>>>
>>> Hola a tod@s,
>>>
>>>
>>>
>>> no he sabido expresar de mejor manera la consulta que quiero haceros.
>>>
>>>
>>>
>>> Espero que todos vosotros, vuestros familiares y conocidos estéis bien y
>>> viviendo el confinamiento de la mejor manera posible.
>>>
>>>
>>>
>>> Tengo una vista que resume información de varios archivos que contienen
>>> millones de registros, no hable de uno o dos millones, hablo de 200
>>> millones. Por muchos índices y consejos del asesor de índices no consigo
>>> que se ejecute en un tiempo razonable.
>>>
>>>
>>>
>>> Antes de crear un archivo de acumulados o una tabla materializada que me
>>> mantenga siempre calculados los datos quiero probar otras alternativas (si
>>> las hay).
>>>
>>>
>>>
>>> En esos 200 millones de registros sólo quiero tratar un grupo reducido,
>>> por ejemplo el último mes o el último año. Aunque en el select sobre la
>>> vista siempre selecciono el rango que quiero, realmente lo estoy haciendo
>>> sobre el resultado de los cálculos que hace la vista, que siempre los hace
>>> sobre el total de los registros de las tablas.
>>>
>>>
>>>
>>> Además, son cálculos que se hacer por partes dentro de la cláusula WITH.
>>>
>>>
>>>
>>> Lo que intento es que la vista sólo seleccione el grupo de registros de
>>> cada una de las tablas. Un pequeño ejemplo:
>>>
>>>
>>>
>>> WITH
>>>
>>>   RESUMEN_TABLA1
>>>
>>> AS (
>>>
>>>   SELECT * FROM TABLA1 WHERE campo BETWEEN <valor_inicial> AND
>>> <valor_final>
>>>
>>> ),
>>>
>>>   RESUMEN_TABLA2
>>>
>>> AS (
>>>
>>>   SELECT * FROM TABLA2 WHERE campo BETWEEN <valor_inicial> AND
>>> <valor_final>
>>>
>>> )
>>>
>>> SELECT
>>>
>>>   *
>>>
>>> FROM
>>>
>>>   TABLA
>>>
>>> LEFT JOIN
>>>
>>>   RESUMEN_TABLA1 ON clave1 = clave
>>>
>>> LEFT JOIN
>>>
>>>   RESUMEN_TABLA2 ON clave2 = clave
>>>
>>> ;
>>>
>>>
>>>
>>> En la consulta de la vista
>>>
>>>
>>>
>>> SELECT
>>>
>>>   *
>>>
>>> FROM
>>>
>>>   VISTA
>>>
>>> WHERE
>>>
>>>   <valor_inicial> = '2020-01-01' AND <valor_final> = '2020-03-31'
>>>
>>>
>>>
>>> Realmente esto no se puede hacer en SQL pero simularlo. Se me ocurren
>>> algunas soluciones:
>>>
>>>
>>>
>>> 1. Variables globales
>>>
>>>
>>>
>>> Cargar los valores de selección en variables globales que utilice la
>>> vista internamente. Inconveniente, dos trabajos o usuarios distintos no
>>> podrían hacer una consulta concurrente.
>>>
>>>
>>>
>>> 2. Procedimiento almacenado o UDTF
>>>
>>>
>>>
>>> Utilizar el paso de parámetros para seleccionar las filas de los
>>> subselects, pero no sé cómo incoporarlas en una vista para que el usuario
>>> pueda utilizar un Query, ODBC, etc. sin tener que utilizar el procedimiento
>>> o UDTF.
>>>
>>>
>>>
>>> No sé si he sido capaz de explicarme (creo que no), pero ¿alguno
>>> vosotros me puede dar alguna pista de cómo podria hacer lo que propongo?
>>>
>>>
>>>
>>> O simplemente estoy alucinando y es imposible hacerlo.
>>>
>>>
>>>
>>> Saludos a todos y gracias por vuestros comentarios.
>>>
>>>
>>>
>>> Javier
>>>
>>> ____________________________________________________
>>> Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
>>> Forum.Help400 © Publicaciones Help400, S.L.
>>>
>>> ____________________________________________________
>>> Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
>>> Forum.Help400 © Publicaciones Help400, S.L.
>>>
>>> ------------------------------
>>>
>>>
>>> �nete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
>>> Forum.Help400 � Publicaciones Help400, S.L.
>>>
>>> ____________________________________________________
>>> Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
>>> Forum.Help400 © Publicaciones Help400, S.L.
>>>
>>> ------------------------------
>>>
>>>
>>> �nete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
>>> Forum.Help400 � Publicaciones Help400, S.L.
>>>
>>> CONFIDENTIALITY NOTICE: This message is from DHL and may contain
>>> confidential business information. It is intended solely for the use of the
>>> individual to whom it is addressed. If you are not the intended recipient
>>> please contact the sender and delete this message and any attachment from
>>> your system. Unauthorized publication, use, dissemination, forwarding,
>>> printing or copying of this E-Mail and its attachments is strictly
>>> prohibited.
>>> ____________________________________________________
>>> Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
>>> Forum.Help400 © Publicaciones Help400, S.L.
>>
>> ____________________________________________________
>> Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
>> Forum.Help400 © Publicaciones Help400, S.L.
>
> ____________________________________________________
> Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
> Forum.Help400 © Publicaciones Help400, S.L.
____________________________________________________
�nete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
Forum.Help400 � Publicaciones Help400, S.L.

Reply via email to