none
Variavel Table Versus Tabela Temporaria Versus Tabela Fisica RRS feed

  • Pergunta

  • Olá,

    Criar Processar e dropar em tabelas físicas é mais vantajoso que em tabelas temporarias ou variaveis table?

    Digo isso porque nas tabelas físicas posso criar índices noncluster.

     

    Grato,

     

    Maurício

     

     

    quarta-feira, 9 de fevereiro de 2011 13:43

Respostas

  • Mauricio,

    com tabelas em formato de variaveis, é necessario usar um alias apos o nome de cada tabela.O teu codigo ficaria assim:

    DECLARE @pessoa TABLE
    (
    id INT,
    nome VARCHAR(32)
    )
    
    DECLArE @pessoa2 TABLE
    (
    id INT,
    nome VARCHAR(32)
    )
    
    insert into @pessoa Values(1,'AndrE');
    insert into @pessoa2 Values(1,'AndrE')
    
    Select 
    a.id, a.nome from @pessoa a
    inner join @pessoa2 b
    on a.id = b.id
    
    
    []'s!


    http://www.diaadiasql.com.br
    • Sugerido como Resposta Renato J. Alves quarta-feira, 9 de fevereiro de 2011 15:56
    • Marcado como Resposta maumauboy quarta-feira, 9 de fevereiro de 2011 17:28
    quarta-feira, 9 de fevereiro de 2011 15:55

Todas as Respostas

  • Tb é possivel criar indices em tabelas temporaria. Variveis com o formato de tabela, essas, não são possiveis criar indices.

    Qual é melhor? depende da situação.

    []'s!

     


    http://www.diaadiasql.com.br
    • Sugerido como Resposta Renato J. Alves quarta-feira, 9 de fevereiro de 2011 13:58
    quarta-feira, 9 de fevereiro de 2011 13:57
  • É possível criar índices noncluster em tabela temporária?

    Outra questão. é possível relizar joins entre duas variaves table, preciso de um exemplo pois não consegui.

     

    Grato,

     

    Maurício

    quarta-feira, 9 de fevereiro de 2011 14:05
  • è possivel sim criar indices em tabelas temporarias. Dá uma olhada nesse link: http://www.sqlteam.com/article/optimizing-performance-indexes-on-temp-tables

     

    Em relação a joins de table variable, olha esse link: http://www.codeproject.com/KB/database/SQLTableVarTricks.aspx

     

    []'s!


    http://www.diaadiasql.com.br
    quarta-feira, 9 de fevereiro de 2011 14:10
  • OBRIGADO PELOS LINKS:

    ANALISANDO O SEGUNDO LINK REPAREI QUE A VARIAVEL TABLE FAZ JOIN COM TABELAS FISICAS. 

     

    QUANDO EU EXECUTO O SCRIPT ABAIXO OCORRE O SEGUINTE ERRO:

    DECLARE

     

    @pessoa TABLE

    (

     

    id

    INT,

    nome

    VARCHAR(32)

     

    )

    DECLArE

     

    @pessoa2 TABLE

    (

     

    id

    INT,

    nome

    VARCHAR(32)

     

    )

    insert

     

    into @pessoa Values(1,'AndrE');

    insert

     

    into @pessoa2 Values(1,'AndrE')

    Select

     

    id, nome from @pessoa

    inner

     

    join

    @pessoa2

    on

     

    @pessoa.id=@pessoa2.id

    Msg 137, Level 15, State 2, Line 16

    Must declare the scalar variable "@pessoa".

     

    GRATO,

    MAURÍCIO

    quarta-feira, 9 de fevereiro de 2011 14:22
  • Mauricio,

    com tabelas em formato de variaveis, é necessario usar um alias apos o nome de cada tabela.O teu codigo ficaria assim:

    DECLARE @pessoa TABLE
    (
    id INT,
    nome VARCHAR(32)
    )
    
    DECLArE @pessoa2 TABLE
    (
    id INT,
    nome VARCHAR(32)
    )
    
    insert into @pessoa Values(1,'AndrE');
    insert into @pessoa2 Values(1,'AndrE')
    
    Select 
    a.id, a.nome from @pessoa a
    inner join @pessoa2 b
    on a.id = b.id
    
    
    []'s!


    http://www.diaadiasql.com.br
    • Sugerido como Resposta Renato J. Alves quarta-feira, 9 de fevereiro de 2011 15:56
    • Marcado como Resposta maumauboy quarta-feira, 9 de fevereiro de 2011 17:28
    quarta-feira, 9 de fevereiro de 2011 15:55
  • Obrigado!

    Simples mesmo.

     

    Grato,

     

    Maurício

     

    quarta-feira, 9 de fevereiro de 2011 17:28