none
Optimizacion query con operaciones en el where RRS feed

  • Pregunta

  • Hola a todos, por favor me pueden ayudar con una mejor opcion de optimizacion de las siguientes partes del query:

    1. and (am_cuota + am_gracia - am_pagado) <> 0

    2. substring(op_toperacion,1,3) not in ('004','047') teniendo en cuenta que op_toperacion es de tipo in.

    select     op_oficina,
        op_oficial,
        Producto     = pt_producto,
        SaldoCapital = sum(am_cuota + am_gracia - am_pagado)
    into    #cartera_01_ndi_pv01
    from    ca_amortizacion B,
        ca_rubro_op     C,
        ca_dividendo,
        ca_operacion,
        ca_producto_toperacion
    where  am_operacion  = ro_operacion
    and am_concepto      = ro_concepto
    and di_operacion     = am_operacion
    and di_dividendo     = am_dividendo
    and di_maduracion    like '%PV01'
    and di_estado        not in (3, 13)
    and ro_tipo_rubro    = 'C'
    and (am_cuota + am_gracia - am_pagado) <> 0
    and op_operacion     = B.am_operacion
    and substring(op_toperacion,1,3) not in ('004','047')
    and op_estado        =  8        
    and op_toperacion    = pt_tipo_producto
    group by  op_oficina,  
          op_oficial,
          pt_producto


    CRIS

    martes, 8 de mayo de 2018 2:56

Todas las respuestas

  • Hola CRISCHVC:

    (NOT OP_TOPERACION LIKE '004%' AND NOT OP_TOPERACION LIKE '047%') sustityendo a

    and substring(op_toperacion,1,3) not in ('004','047').

    Si como dices op_toperacion es int y no varchar, entonces no creo que te pase por un 004, en todo caso será 4.

    Un saludo

    martes, 8 de mayo de 2018 6:06
  • - Con cuales indices cuentas para dar soporte a esta sentencia?

    - Que tal la distribucion de datos en esas columnas que usas en la clausula WHERE?

    Si usas la expresion " (am_cuota + am_gracia - am_pagado) <> 0" de forma frecuente, entonces crear una columna calculada que a su vez se use en un indice filtrado podria ser de ayuda.

    En cuanto a la operacion de cadena sobre la columna [op_toperacion], la sugerencia dada por Javi puede ser de ayuda, a pesar de la inconsistencia planteada dado el tipo de la columna.


    AMB

    Some guidelines for posting questions...

    AYÚDANOS A AYUDARTE, guía básica de consejos para formular preguntas

    martes, 8 de mayo de 2018 12:16