- Este tópico contém 5 respostas, 3 vozes e foi atualizado pela última vez 16 anos, 4 meses atrás por
hudsona.
-
AutorPosts
-
31 de outubro de 2009 às 4:50 pm #90615
fs_abreu
ParticipantePessoal bom dia.
Por causa de um trabalho na faculdade estou pesquisando já a algum tempo, tanto na internet, com em livros a realização de volumetria no BD Oracle.
Encontrei muito sobre como realiza-la em um banco já existente, mas nada referente a um banco que ainda será criado (planejar a volumetria).
Cheguei a encontrar no livro “ERwin 4.0 – Modelagem de Dados” um pequeno capitulo sobre volumetria, que inclusive gostei muito, pois trata de uma forma simples e objetiva, mas o mesmo infelizmente é direcionada para o SQL Server e eu precisaria especificamente para o Oracle.
Bom como sou iniciante no assunto Banco de Dados estou precisando de uma ajuda da comunidade oracle para conclusão desse trabalho…
Alguem poderia indicar algum livro que falaria sobre o assunto, pois pesquisei no Manual do DBA, tanto para as versões 10G e 11G, mas não encontrei nada específico.
Desde já fico grato.
4 de novembro de 2009 às 12:59 am #90689hudsona
ParticipanteA Questão da volumetria é muito váriavel.
Para se pensar em planejar a mesma ,você precisa pensar de como vai ser a estrutura do seu ambiente, transações e etc.
Nesse seu trabalho você tem algum ponto de partida ? Algum ambiente ? algum mini-mundo o qual você realizou a modelagem e pretende montar o projeto fisíco ?Você precisa ter uma idéia (aproximada) da intensidade a qual os dados vão ser manipulados e tratados para depois pensar em planejar a volumetria do banco de dados.
Att
4 de novembro de 2009 às 5:32 am #90690fs_abreu
ParticipanteObrigado pelo retorno.
Bom o ambiente na verdade é simples…
Vamos dizer que meu BD terá uma única tabela e nessa tabela terei campos do tipo char, varchar2 e number.
Apartir daí eu teria que ter uma estimativa de quanto espaço essa tabela ocupara quanto tiver por volta de 100.000 registros (valor apenas de exemplo).
Devido a pesquisa que realizei descobri que existem várias ferramentas que fazem isso automaticamente, já apartir da modelagem e tambem sei que para um BD já existente, existem scripts prontos.
O grande problema é que o trabalho, até por questão de aprendizado, precisa ser feito de forma manual, sem ajuda de ferramenta, no máximo um excel da vida e esse acabou sendo a pedra no sapato, pois conforme informei inicialmente, tanto na internet como em livros, não encontrei nada didático para me auxilar na realização desse trabalho.
Mais uma vez obrigado pelo retorno
4 de novembro de 2009 às 10:55 pm #90729sosa
ParticipanteEntão, você mesmo já deu a resposta…
Com base em uma planilha, crie as estruturas de dados que você vai ter e dê um tamanho a cada tipo de dado. Se tiver índices, para cada um você estima novamente o valor dos campos indexados como se fosse uma nova tabela. Exemplificando:
tabela A
campo1 number(10) — 10 bytes
campo2 varchar2(100) — 100 bytesíndiceA
campo1Então cada linha da tabelaA leva 110 bytes aproximadamente. O índice leva mais 10 bytes, cada linha leva 120 bytes, mas vamos contar separadamente por objeto. Crie esta tabela em banco fisicamente e veja a diferença de bytes para o modelo lógico. Você terá o percentual de diferença entre o modelo físico e o lógico, arredonde e use nos seus cálculos de estimativa.
Agora o volume. O ideal é de acordo com a cardinalidade de sua tabela verificar um número médio de combinações que você pode armazenar. Como é um trabalho acadêmico, você pode criar um mini mundo e estabelecer regras para estimar isto da melhor forma possível para você como disse o colega acima.
4 de novembro de 2009 às 11:12 pm #90730fs_abreu
ParticipanteBlz entendi vlw.
5 de novembro de 2009 às 12:48 am #90732hudsona
ParticipanteQuando você for verificar o tamanho da tabela no oracle , após a sua criação verá que existe uma grande diferença do calculo acima:
Use a query para verificar o tamanho da tabela :
SELECT tablespace_name, segment_name,
round(sum(bytes/1024/1024),2) Tamanho_em_MB
FROM dba_segments
WHERE segment_name=’TESTE’
AND segment_type = ‘TABLE’
GROUP BY owner, tablespace_name, segment_name;Pesquise sobre as colunas da visão do dicionario de dados V$DBA_SEGMENTS e entenderá o porquê.
Att
-
AutorPosts
- Você deve fazer login para responder a este tópico.