none
melhorar qualidade de query RRS feed

  • Pergunta

  • Tenho uma query 

    onde em uma tabela tenho o produto com id produto

    em outra a categoria do produto id produto e id categoria

    e em uma outra o tipo de produto id tipo de produto, id produto

    sendo que um produto pode conter diversas categoria 

    por exemplo produto AAA

    produto  categoria   tipo

    AAA       ab              1

    AAA       xx              1

    AAA       xa              2

    BBB       yy              1

    usaria o Inner join e pronto 

    a pergunta é existe uma maneira melhor para torna la mais rapida?

    abraço

    terça-feira, 20 de dezembro de 2016 00:03

Respostas

Todas as Respostas

  • Para aumentar a performace vai depender de varios fatores,

    vc pode fazer com JOINS sem problema , mas tambem pode fazer com o CROSS APPLY 

    segue o exemplo 

    DECLARE @Produtos TABLE
        (
          produto VARCHAR(MAX) ,
          idCategoria INT NOT NULL ,
          tipo SMALLINT
        );
    
    DECLARE @Categorias TABLE
        (
          idCategoria INT ,
          categoria VARCHAR(MAX)
        );
    
    INSERT  INTO @Categorias
            ( idCategoria, categoria )
    VALUES  ( 1, 'ab' ),
            ( 2, 'xx' ),
            ( 3, 'xa' ),
            ( 4, 'yy' );
    
    INSERT  INTO @Produtos
            ( produto, idCategoria, tipo )
    VALUES  ( 'AAA', 1, 1 ),
            ( 'AAA', 2, 1 ),
            ( 'AAA', 2, 2 ),
            ( 'BBB', 3, 1 ),
            ( 'BBB', 4, 1 );
    		
    
    
    
    SELECT  P.produto ,
            P.tipo,
    		C.categoria
    FROM    @Produtos AS P
            CROSS APPLY ( SELECT    C.idCategoria ,
                                    C.categoria
                          FROM      @Categorias AS C
                          WHERE     C.idCategoria = P.idCategoria
                        ) AS C;


    Wesley Neves

    terça-feira, 20 de dezembro de 2016 11:38
  • Deleted
    terça-feira, 20 de dezembro de 2016 12:06
  • Tentei os index 

    mas não teve mto efeito 

    Mesmo assim mto obrigado galera

    a solução foi separar mesmo as querys e consumi las só quando necessário

    quarta-feira, 11 de janeiro de 2017 23:00
  • Deleted
    quinta-feira, 12 de janeiro de 2017 09:39