none
Indice com valor default null RRS feed

  • Pergunta

  • tenho na tabela de clientes

    o campo codFornecedor int default null

    é o campo para relacionar com a tabela de fornecedores

    e nesta tabela de clientes tenho um indice não único com o campo codFornecedor

    a pergunta é?

    o fato de codFornecedor admitir default null não é ruim para um indice?

    quarta-feira, 22 de maio de 2013 18:00

Respostas

  • Eriel, partindo do principio que este campo tem a capacidade de ser uma chave (se não for) que é capaz de identificar um unico registro e ser relacionamento com outras tabelas não vejo motivo para este campo permitir valores nulos.

    Com relação ao indice acredito que irá prejudicar se realmente tiver campos nulos, se somente for permitido mas não tiver nulos não faria diferença (acredito eu)...


    Alexandre Matayosi Conde Mauricio.

    • Marcado como Resposta erial quarta-feira, 22 de maio de 2013 18:13
    quarta-feira, 22 de maio de 2013 18:12

Todas as Respostas

  • Eriel, partindo do principio que este campo tem a capacidade de ser uma chave (se não for) que é capaz de identificar um unico registro e ser relacionamento com outras tabelas não vejo motivo para este campo permitir valores nulos.

    Com relação ao indice acredito que irá prejudicar se realmente tiver campos nulos, se somente for permitido mas não tiver nulos não faria diferença (acredito eu)...


    Alexandre Matayosi Conde Mauricio.

    • Marcado como Resposta erial quarta-feira, 22 de maio de 2013 18:13
    quarta-feira, 22 de maio de 2013 18:12
  • Erial,

    Sim e não, concordo com o Alexandre no fato de não ser prejudicial, ainda mais pelo fato de que se seu negócio exige tal regra você deve aceitar a fazer acontecer.

    Em relação ao valor nulo em relação ao indice...Os valores nulso vão para o indice e tendem a realizar o processo de index seek em uma busca com predicado. Seu maior "problema" estará na atualização de um campo nulo, o que faria com que o indice crescesse e talvez a necessidade de alteração em sua estrutura, portanto minha recomendação é: Sim, pode criar o indice neste campo deixando-o como default null, mas o indice sobre este campo exclusivamente mantenha em torno de 90% de fill_factor (Caso o campo venha a receber atualizações posteriores claro, se não deixe como 100% mesmo e não haverá diferença).


    Fabrizzio A. Caputo
    MCT
    Certificações:
    Oracle OCA 11g
    MCITP SQL Server 2008 Implementation and Maintenance
    MCITP SQL Server 2008 Developer
    ITIL V3 Foundation
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Email: fabrizzio.antoniaci@gmail.com

    quarta-feira, 22 de maio de 2013 18:19
    Moderador