none
Utilizando Hash keys RRS feed

  • Pergunta

  • tarde...

     

    Pessoal, temos vários ambientes aqui pesados de carga para DW. Esses ambientes utilizam muitas tabelas com indices em campos varchar, sendo que estas tabelas chegam a 30, 40 milhões de linhas. Em um segundo momento, já estamos viabilizando um estudo para  expurgar esses dados ou até a utilização de views indexadas diminuindo o range dos joins...mas como eu disse em um segundo momento. Eu estava lendo sobre a utilização de hask keys nesses casos, usando o checksum para fazer uma unica entrada a esses campos nos indices. Eu gostaria de saber , fora o uso de espçao, se é realmente performatico, se existe algum problema..etc.

    Outra coisa, eu estava vendo que por exemplo vc tem um campo nome e endereço no indice...usando hash keys vc cria um novo campo com o checksum destes dois carinhas  e poe um indice somente neste campo com chekcsum ?...como funciona ?

     

    Obrigado !!!!

    quinta-feira, 19 de julho de 2007 17:23

Respostas

  • esse e o problema, o algorimo tem que estar 100%, caso nao esteja vc. pode terproblemas de retorno, entao a ideia seria talvez, usa um unique identify por linha, mais esse tipo de dados e muito grande ( porem muito seletivel o que ja seria um cadidado para indice ), vc. ja pensou um remodelar ( denormalizando as estaticas e criando campos que receberao os dados atualizados ) depois com tabelas de historico colocando em join mesmo mais ai se possivel com campos inteiros que podem ser convertidos no momento do update das tabelas historico. uso este modelo aqui e a perfomance tem dido muito boa e logico que o espaco utilizado e sempre maior mais acho que neste caso vale a pena das uma estatuda.

     

    espero ter colaborado.

     

    Abs;

    sexta-feira, 20 de julho de 2007 10:37

Todas as Respostas

  • desculpe não entendi pode explicar melhor ?

     

    Grato

     

    quinta-feira, 19 de julho de 2007 19:08
  • É uma técnica de "databse design" e performance no qual vc utiliza o HASH que nada mais é  um resultado inteiro de algum algoritmo aplicado a uma determinada string. No sql server o algoritmo de hash que pode ser usado é o pela função checksum.Eu estava lendo que essa técnica além de "desocupar espaços" causados pelos indices em campos varchar em tabelas com milhões de linhas, aumenta a performance pois vc não aplicaria um indice em campos varchar (composto) e sim no hash criado pelo checksum eu só não entendi como que a consulta é feita, se cria-se o indice somen te pelo campo hash ou pelos outros campos (o que no meu ver não teria o porque do hash intaum), e se as colisões de hash são constantes e se isso pode atrapalhar nessa técnica. Gostaria de mais informações sobre essa técnica, se ela é realmente viável..etc

     

     

     

    quinta-feira, 19 de julho de 2007 19:22
  • esse e o problema, o algorimo tem que estar 100%, caso nao esteja vc. pode terproblemas de retorno, entao a ideia seria talvez, usa um unique identify por linha, mais esse tipo de dados e muito grande ( porem muito seletivel o que ja seria um cadidado para indice ), vc. ja pensou um remodelar ( denormalizando as estaticas e criando campos que receberao os dados atualizados ) depois com tabelas de historico colocando em join mesmo mais ai se possivel com campos inteiros que podem ser convertidos no momento do update das tabelas historico. uso este modelo aqui e a perfomance tem dido muito boa e logico que o espaco utilizado e sempre maior mais acho que neste caso vale a pena das uma estatuda.

     

    espero ter colaborado.

     

    Abs;

    sexta-feira, 20 de julho de 2007 10:37
  • Inatum Marcelo, já tem um projeto pra se trabalhar com historicos, mas ainda vai demorar um pouco...só para você ter uma idéia, além de todos os campos serem varchar, tem-se  joins entre 8, 9 tabelas e algumas com 50, 60 milhões de linhas para se trazer 100 mil...eu andei criando algumas views indexadas para ajudar nos processos mais criticos e ajudou bastante, mas não posso colocar isso como um padrão pois senão meu problema mais pra frente vai ser o mesmo..mas valeu pela idéa, vou estar fazendo uns testes com hash keys..andei lendo mais sobre isso..valeu galera
    sexta-feira, 20 de julho de 2007 20:41