De acordo com os anúncios da midia após a IBM desistir de adquirir a Sun, a Oracle anunciou a intenção de aquisição.
O que mais me deixa curioso é o futuro do Mysql, apesar de pouco contato com o produto ele possui uma participação expressiva no mercado de soluções embarcadas , principalmente nos pequenos ISVs.
Vejam alguns numeros sobre o Mysql:
- 70.000 Downloads por Dia!!
- Mais de 12.000.000 de instancias em producao!! (Claro que isto inclui as instalacoes open-source).
Se a IBM tivese comprado a Sun com certeza o Mysql seria continuado, pois este e o perfil da IBM, manter software legado , o Mysql seria integrado a Divisao de IM e iria coexistir com o DB2 e Informix, com este cenário seria possivel que a IBM voltasse para a primeira posição no market share de bancos de dados.
Em relação ao suporte do Mysql, quando a empresa foi adquirida pela Sun muitas pessoas de suporte e desenvolvimento se desligaram da empresa, inclusive um dos fundados (monty) foi atuar em uma empresa startup e agora se dedica ao MariaDb.
Inclusive o próprio monty ja postou algo em seu blog:
http://monty-says.blogspot.com/2009/04/to-be-free-or-not-to-be-free.html
Com esta aquisição a Oracle abocanhou 2 tecnologias open-source de uma só vez, que foram o Java e o Mysql, agora a coisa fica menos interessante para a SAP e IBM que pregam o uso de java extensivamente.
Historicamente falando de tecnologia de banco de dados a Oracle ja Adquiriu:
- RDB da Digital , foi o que deu muita base para o OPS (Parallel Server)
- Berkeley DB
- Timesten (In-memory database)
- Mysql
Agora a Oracle se torna uma empresa completa com soluções que vão de Hardware, Software para infra-estrutura a ERP etc.
Sera que agora a Oracle quer ser a Digital Corporation e peitar a IBM?
Vamos aguardar as cenas do próximo capitulo.
Vagner
terça-feira, 21 de abril de 2009
segunda-feira, 6 de abril de 2009
Alter In-Place
Alter In-Place é uma daquelas features que ninguém sabe que existe até no dia que é preciso fazer um alter table no Oracle ou Db2.
Veja a tabela abaixo:
create table tabela1
( codigo integer,
campo1 char(30)
)
Aqui neste ponto insermos 10GB de dados na Tabela!!!
Agora por uma mudança na área de negócio a tabela irá receber mais uma coluna, porém ela será criada antes da coluna campo1.
alter table tabela1
add (novo_campo integer) before campo1;
Quanto tempo o Informix demorou para adicionar uma coluna na tabela? 1 Segundo!!!
Como isto é possivel magia negra? Não, pra quem é safo sabe que o Informix apenas fez o versionamento da estrutura da tabela, os dados antigos estão com a mesma estrutura, os novos inserts farão com que os dados sejam inseridos no novo lay-out.
Se é tão fácil assim porque no Oracle/Db2 tenho que recriar a tabela para fazer este tipo de alteração?
É simples, nos outros RDBMS a estrutura da tabela é armazenada fisicamente no mesmo bloco com os dados, isto é bom se olharmos no caso de um crash onde a partition page seja destruida, os dados continuam no disco e é possivel extrair com as ferramentas de suporte avançado.
Então a estrutura do Informix é pior?
Claro que não, o produto foi projetado para operar com esforço reduzido de administração, com este tipo de feature é possivel criar appliances (soluções) onde não é necessário intervenção manual.
Resumindo um bom Arquiteto de Soluções ou um bom Desenvolvedor pode criar soluções embutidas e espalhar sua solução por ai sem ter que se preocupar com o banco de dados.
Se eu escrevo solução embarcada porque não usar Mysql ou Postgress?
Bom o Mysql acabou de ser adquirido pela Sun, o Postgress é questão de tempo até alguem adquirir, o sonho do open-source acabou, só é bom para o fornecedor que economizou milhões em pesquisa e desenvolvimento que foi feito pela comunidade open-source.
Voltando ao comando alter table do Informix, existem três tipos de alter in-place:
Slow Alter
Neste caso o Informix efetua o reorg da tabela inteira, caso a tabela seja muito grande pode-se correr o risco de long-transaction, um exemplo pode ser um alter table que altera o tipo de dados de uma coluna de varchar(20) para char(40).
In-Place Alter
Quando ocorre alteracao na estrutura da tabela e o Informix efetua o versionamento do layout, assim nao executando reorg da tabela.
Fast Alter
O fast alter ocorre quando:
- ocorre alteracao do next extent size
- uma constraint é criada ou dropada
- o lock mode da tabela é alterado
- um atributo da tabela é alterado para único.
Como sempre quem quiser mais informações sobre alter in-place acesse:
http://publib.boulder.ibm.com/infocenter/idshelp/v115/index.jsp
O objetivo deste post foi por em cena uma feature bacana que muitas vezes ninguém nem sabe que existe.
Veja a tabela abaixo:
create table tabela1
( codigo integer,
campo1 char(30)
)
Aqui neste ponto insermos 10GB de dados na Tabela!!!
Agora por uma mudança na área de negócio a tabela irá receber mais uma coluna, porém ela será criada antes da coluna campo1.
alter table tabela1
add (novo_campo integer) before campo1;
Quanto tempo o Informix demorou para adicionar uma coluna na tabela? 1 Segundo!!!
Como isto é possivel magia negra? Não, pra quem é safo sabe que o Informix apenas fez o versionamento da estrutura da tabela, os dados antigos estão com a mesma estrutura, os novos inserts farão com que os dados sejam inseridos no novo lay-out.
Se é tão fácil assim porque no Oracle/Db2 tenho que recriar a tabela para fazer este tipo de alteração?
É simples, nos outros RDBMS a estrutura da tabela é armazenada fisicamente no mesmo bloco com os dados, isto é bom se olharmos no caso de um crash onde a partition page seja destruida, os dados continuam no disco e é possivel extrair com as ferramentas de suporte avançado.
Então a estrutura do Informix é pior?
Claro que não, o produto foi projetado para operar com esforço reduzido de administração, com este tipo de feature é possivel criar appliances (soluções) onde não é necessário intervenção manual.
Resumindo um bom Arquiteto de Soluções ou um bom Desenvolvedor pode criar soluções embutidas e espalhar sua solução por ai sem ter que se preocupar com o banco de dados.
Se eu escrevo solução embarcada porque não usar Mysql ou Postgress?
Bom o Mysql acabou de ser adquirido pela Sun, o Postgress é questão de tempo até alguem adquirir, o sonho do open-source acabou, só é bom para o fornecedor que economizou milhões em pesquisa e desenvolvimento que foi feito pela comunidade open-source.
Voltando ao comando alter table do Informix, existem três tipos de alter in-place:
Slow Alter
Neste caso o Informix efetua o reorg da tabela inteira, caso a tabela seja muito grande pode-se correr o risco de long-transaction, um exemplo pode ser um alter table que altera o tipo de dados de uma coluna de varchar(20) para char(40).
In-Place Alter
Quando ocorre alteracao na estrutura da tabela e o Informix efetua o versionamento do layout, assim nao executando reorg da tabela.
Fast Alter
O fast alter ocorre quando:
- ocorre alteracao do next extent size
- uma constraint é criada ou dropada
- o lock mode da tabela é alterado
- um atributo da tabela é alterado para único.
Como sempre quem quiser mais informações sobre alter in-place acesse:
http://publib.boulder.ibm.com/infocenter/idshelp/v115/index.jsp
O objetivo deste post foi por em cena uma feature bacana que muitas vezes ninguém nem sabe que existe.
Assinar:
Postagens (Atom)