Pular para o conteúdo
Visualizando 5 posts - 1 até 5 (de 5 do total)
  • Autor
    Posts
  • #95083
    Anônimo

      Ola

      Tenho uma dúvida sobre particionamento, vocês podem me ajudar ?

      Quando eu faço particionamento de tabelas é preciso mudar também a sql que fazem acesso a essa tabela, ou não é preciso mudar em nada as sqls ?

      Tenho Oracle 10.2.0.4 e SO AIX

      Agradeço

      Marco Aurelio

      #95084
      Avatar photoRegis Araujo
      Participante

        Fala Marco.. bom dia..!

        Então, na verdade o aconselhavel em selects q envolvam tabelas particionadas, é vc sempre usar a chave de particionamento para fazer o seu select…

        Vou dar um exemplo..

        Vamos dizer q eu tenho uma tabela onde são registradas todas as vendas de uma loja.. esta tabela tem cerca de 10 milhoes de registros, eu particionei esta tabela por MES e possuo dados de 2009 inteiro… ou seja.. tenho 1 tabela com 12 partições..

        Ai eu vou montar um select e no WHERE eu faço pesquisa por CLIENTE.. o meu particionamento não adiantou de nada… pois de qualquer jeito vai ser necessário varrer toda a tabela (12 partiçoes) para achar determinado cliente..

        Agora eu coloco uma clausula AND passando MES = 2 (fevereiro)..

        Vc concorda comigo que agora eu não vou mais precisar ler 12 partições.. correto.. vou ler apenas 1 partição inteira para achar determinado cliente..

        Isto vai me dar ganho de performance, já que não vou precisar ler 10 milhoes de linhas.. devo ler aproximadamente 800 mil linhas mais ou menos..

        Ou seja.. vc vai precisar ajustar os seus SELECTS para colocar a clausula WHERE pela chave de particionamento.. mas somemente se o select permitir isto.. pois em muitos casos.. realmente é necessário fazer um FULL SCAN na tabela toda para achar determinado registro… Então vai depender da necessidade e de como vc particionou suas tabelas..

        Bom.. espero que tenha lhe ajudado..

        Abraços..!

        #95086
        brunopb
        Participante

          oi cara.. nao precisa mudar seus sqls nao… o oracle faz tudo

          #95096
          David Siqueira
          Participante

            Opa!!!..
            Então, dependendo do tipo de particionamento que você escolher, na hora que você for realizar uma query nestas tabelas e de acordo com seu WHERE a partição acessada ou as partições acessadas serão aquelas que satisfizerem a sua condição, uma boa maneira de você ver isso na prática é usando um EXPLAIN PLAN, você verá que por exemplo se seu particionamento for por range de datas ele ira acessar a partição da tabela que corresponde as datas que você estiver usando no seu Where.

            Abraço.

            #95110
            fsitja
            Participante

              O ideal é que seja feito o oposto: durante a modelagem física das suas tabelas você tenha uma noção de como serão feitas as principais consultas a essas tabelas, para então projetar índices e particionamento.

              Ou seja, a grosso modo, seus SQLs é que motivam ou definem sua estratégia de particionamento, e não o contrário.

              Quando falo SQL, é necessário considerar também características de transações que modificam as tabelas, pensando nos inserts, updates e deletes também.

            Visualizando 5 posts - 1 até 5 (de 5 do total)
            • Você deve fazer login para responder a este tópico.