- Feed completo
- Feed dos comentários
- Feed do Fórum
- Feed Canal Games
- Feed Canal Fotografia
- Feed Canal Mobile
- Receba o Meio Bit via e-mail
Mantenha-se informado sobre as nossas novidades com nosso newsletter semanal, todas as segundas-feiras
Já há algum tempo surgiu um fenômeno bem interessante : Versões gratuitas de bancos de dados client/server proprietários.
O primeiro foi o MSDE - Microsoft Database Engine - A versão gratuita do SQL Server 7.0. O MSDE, porém, não possuia interface gráfica e precisava ser manipulado ou a partir do Enterprise Manager (ferramenta que acompanha uma versão paga do SQL Server) ou a partir do Visual Studio.
O MSDE evoluiu para MSDE 2000 e na versão 2005 do SQL Server mudou por completo para SQL Server 2005 Express.
Em novembro de 2005 a Oracle, que não tinha a menor intenção de ficar para trás, lançou o Oracle Database XE na versão 10g. Com edições para Windows e Linux, o Oracle XE, assim como o SQL Server Express, é gratuito.
Já a IBM foi a última a aderir a esta nova moda, lançando o DB2 Express-C em janeiro de 2007.
Desta forma temos 3 grandes servidores de bancos de dados, proprietários, gratuitos, entre os quais podemos escolher.
Porém a primeira pergunta que todos farão é : Por que limitar a escolha a estes 3 servidores proprietários, por que não incluir os servidores livres como MySQL, PostGree PostGreSQL, entre outros ?
A escalabilidade (não apenas performance, mas suporte a grandes volumes) de soluções de bancos de dados sempre foi uma grande preocupação das empresas. Como saber se estão escolhendo a solução de banco de dados adequada ? Mudar uma solução de banco de dados definitivamente não é algo que se faça todo dia.
Para auxiliar as empresas na escolha do servidor de dados a ser utilizado foi criada uma organização chamada TPC - Transaction Processing Council - com o objetivo de analisar soluções completas de banco de dados. O trabalho basicamente é estabelecer recordes de performance/escalabilidade em uma solução de banco de dados e publicar tais recordes.
Tudo é feito de forma altamente controlada, com inúmeras regras sobre como cada experiência deve ser tratada e publicada. Se isso já não fosse suficiente para que os resultados tenham confiabilidade, então basta observar a página de membros do TPC : Com empresas concorrentes como IBM, Oracle e Microsoft fazendo parte do TPC, isso garante a confiabilidade dos resultados, já que cada concorrente acabará fiscalizando o resultado do trabalho dos demais. Neste ponto um a parte para o fato de que o Cin/UFPE é um membro associado do TPC, mostrando mais uma vez o pioneirismo Pernambucano.
Tudo bem, mas e dai ? Onde o TPC entra nesta história ?
Se analisarmos os top 10 bancos de dados em relação a performance, veremos que Oracle, SQL Server e DB2 ocupam toda a lista, com diferentes edições e variações de hardware e plataforma de aplicações (observando que essa lista muda com freqência).
Se analisarmos a lista dos top 10 pela relação preço/performance veremos que apenas o DB2 não aparece, a lista fica dividida entre Oracle e SQL Server.
Então, voltando a pergunta, por que limitar a escolha a estes três servidores de banco ?
Resposta simples : Porque, tendo opções gratuitas, são os 3 servidores de banco que melhor oferecem suporte ao crescimento da aplicação. Isso fica definitivamente demonstrado pelos índices TPC. Migrar a aplicação para uma edição do servidor com maior recurso será uma tarefa simples quando a aplicação crescer.
Antes que comecem a pensar em algum tipo de teoria da conspiração contra outros servidores de bancos de dados, é bom lembrar que além de várias notórias apoiadoras do software livre participarem do TPC, alguns dos principais resultados que vocês puderam observar nas imagens acima foram obtidos em sistema operacional Linux.
Existem, porém, dois motivos que poderiam levar a uma escolha de outros servidores de dados (mySQL, PostGree PostGreSQL, entre outros) que não os acima :
- Grande impacto do conhecimento existente na equipe em relação ao TCO (Total Cost of Ownership) da solução
- Sua empresa é uma empresa de desenvolvimento de software, desenvolvem soluções complexas e desejam a liberdade de alterar o código fonte do servidor de banco, assim como o google fez, mas fez para uso interno, não para a ferramenta de busca (http://br-linux.org/linux/google-disponibiliza-suas-melhorias-internas-do-mysql)
Caso em sua análise você não recaia em nenhum dos dois casos acima, não vejo porque não se limitar aos 3 servidores de dados gratuitos - SQL Server, Oracle ou DB2 - na hora de escolher um servidor de dados. Isso porque escolhendo um dos 3, estaremos evitando criar uma limitação ao crescimento das aplicações. É claro que é quase impossível prever qual limitação será essa e se realmente virá a existir um dia ou se o banco escolhido vai dar conta do recado, mas os índices TPC mostram claramente os 3 melhores servidores do mercado e todos os três possuem edições gratuitas.
Então, tendo decidido por escolher entre um dos 3, leve em conta os seguintes pontos para decidir qual escolher :
- Recursos disponíveis na versão gratuita x espectativa de crescimento da aplicação. Todos os 3 são limitados em suas versões gratuitas e essa limitação determinará quando você irá precisar migrar para uma edição paga.
- Custo da versão paga para a qual será necessário fazer a migração
- Conhecimento da equipe de desenvolvimento
- Produtividade da ferramenta (tanto para desenvolvimento como para administração)
Vamos então fazer uma tabela comparativa destes 3 servidores de dados :
|
SQL Server |
DB 2 |
Oracle |
|
|
Infra-estrutura |
|||
| Memória | 1GB | 2GB | 1GB |
| Processadores | 1 | 1 (dual core) | 1 |
| Tamanho do Banco | 4 GB (por banco) | Ilimitado | 4GB (soma total) |
| Sistemas Operacionais | Windows | Linux/Windows | Linux/Windows |
|
Recursos do Servidor |
|||
| Busca Textual | Sim | Não | Sim |
| Ferramenta de Relatórios | Sim | Não | Não |
| Replicação | Sim | Não | Sim |
Por fim, só para dar mais um motivo para brigarem comigo nos comentários : Sem dúvida este é mais um exemplo de como o pioneirismo comercial da Microsoft forçou os concorrentes a aderirem a este recurso, possibilitando que pequenas aplicações dispensem a compra de grandes servidores e ainda assim não sofram horrores se algum dia precisarem ser migradas para um servidor maior.
Para finalizar, seguem abaixo links com informações sobre os 3 servidores :
DB2 Express-C
http://www-306.ibm.com/software/data/db2/express/about.htmlOracle XE
http://www.oracle.com/technology/products/database/xe/index.htmlSQL Server Express
http://msdn2.microsoft.com/pt-br/express/aa718378.aspx
Obs : Esta matéria foi inspirada em informações publicadas nos comentários da matéria "Coisas que quase ninguém sabe sobre a Microsoft". Assim como este artigo, outros ainda serão produzidos, os 272 comentários foram muito produtivos. Me adiantando a pergunta : Não, isso não é matéria patrocinada.
Caracas... esse tópico tomou dois quilômetros da primeira página do MeioBit. Poxa, coloquem o post quebrado da próxima vez...
Grato.
Sinto cheiro de sangue neste post.
Anyway Dennes, boa matéria, uso o MSDE há alguns anos e não sabia dessas informações. Vou explorar estes links aí antes de fazer alguma pergunta.
Obrigado...
-----------
Esta é minha assinatura :)
"Porém a primeira pergunta que todos farão é : Por que limitar a escolha a estes 3 servidores proprietários, por que não incluir os servidores livres como MySQL, Postgree, entre outros?"
São 2 perguntas. Ou 2 versões da mesma. Que não foram respondidas satisfatoriamente. E PostgreSQL tá escrito errado.
É quase um consenso entre o pessoal que trabalha com servidores de bancos de dados (eu não sou um :( ) que o o MySQL é imbatível em velocidade (embora sofra em muitas outras coisas) e de que o Microsoft SQL Server é ruim a beça.
Imbatível pra velocidade em que tamanho de base?
Benchmarks podem ser muitos tendenciosos nessa área, o Oracle mesmo é famoso por ser robusto e aguentar o tranco em aplicações com muita concorrência e com bases muito grandes.
Outra a coisa a se pensar é em como foi criada a base. O MySQL ate a versão 4. alguma coisa não tinha integridade referencial, não tinha suporte a subselect, não tinha suporte a funções e etc.
Dessa maneira é muito fácil ser rápido :)
Não tenho nada contra o MySQL, mas o melhor banco de dados Open Source é o PostGreeSQL. O motivo do mysql ser mais usado acho que é facilidade.
O grande motivo do MySQL ser mais usado que o PostgreSQL é o fato de o MySQL ter uma versão nativa pra Windows há muito tempo, coisa que o PostgreSQL só tem há uns 2 anos. Antes tinha que instalar o cygwin e instalar o PostgreSQL dentro dele, um procedimento um tanto que trabalhoso e, muitas vezes, não possível de ser realizado em servidores de produção.
Seja livre, use software livre.
Opa, disso eu não sabia. Mas tinha ouvido falar que a versão windows possuia um desempenho inferior a versão linux.
[]'s
Eu frequento listas de postgres a muito tempo.
Foi incrível quando começaram a lançar instaladores do PG para Windows. O nível da lista ficou abaixo de um ralo. Toda hora aparecendo algum ser "como instalo no XP, no NT ?". Depois ainda dizem que se tem preconceito com os nobres usuários Winodws :).
Sobre o desempenho...
Por ordem de desempenho: FreeBSD, Linux e Windows.
No Linux e nos xBSD ainda pode se jogar com o desempenho se você instalar um ou outro sistema de arquivos que são mais ou menos eficientes.
Oi, Bigode !
Obrigado pelo aviso sobre o PostGreSQL, vou corrigir.
Desconfie de todo tipo de consenso, em especial na área de informática, onde tudo muda muito rapidamente.
O MySQL pode aparentar ser "imbatível em velocidade" porque muitas instalações padrões do MySQL são feitas com o sistema transacional desativado. Não precisando fazer locks durante as pesquisas, ele fica muito rápido, mas sem integridade transacional. Se adicionar nele um sistema transacional (existem alguns) a performance cairá.
O mesmo efeito em relação ao sistema transacional pode-se obter de diferentes formas com os demais servidores de banco, ocorre que como servidores de banco o sistema transacional é uma funcionalidade padrão.
Porém o MySQL nem merecia ser citado no artigo, já que para criação de aplicações comerciais trata-se de um banco pago.
Quanto ao "SQL Server é ruim a beça" - basta ver os gráficos do índice TPC. Digo ainda que escrevi o artigo em uma má época : SQL Server briga de igual para igual com Oracle e DB 2 e já esteve por várias vezes no topo do índice TPC.
[]'s
---------------------
CidadaoCarioca
BufaloInfo
Bem, é exatamente por isso que ele é imbatível em velocidade, por causa da integridade referencial :P
Bem, o MySQL é tão pago quanto o Microsoft SQL Server Gratuito, ou mais. Ele é distribuído por gpl, tu paga se tu quiser suporte.
Dennes, esse índice tpc só testa 4 bancos, os que tu citou e mais um da sybase, sendo que alguns tem várias versões e revisões. Até que eu saiba todos são proprietários. Então ele não ajuda em nada a responder a(s) pergunta :P.
O que eu escutei do Microsoft SQL Server (talvez seja uma versão mais antiga) era que ele travava a tabela inteira quando tu modificava um registro, enquanto o oracle e postgresql só travavam o registro em si. E que era difícil pra trabalhar com ele por causa disso. Bem, talvez ele melhorou, o IIS também a um tempo atrás era um pepino.
Ironman_BR - chiu, o maior banco de dados do mundo roda em myqsl, provavelmente numa versão cheia de gambiarra pra ficar mais rápido ainda. Mas realmente o postgresql, oracle e companhia são bem mais confiáveis.
Oi, Bigode !
"Bem, o MySQL é tão pago quanto o Microsoft SQL Server Gratuito, ou mais. Ele é distribuído por gpl, tu paga se tu quiser suporte."
Esta enganado a respeito disso.
O MySQL apenas é gratuito se ao distribuir seu sistema você fizer a distribuição do fonte do seu sistema junto. Neste caso pode utiliza-lo gratuitamente.
Porém se desejar utilizar o MySQL para criar sistemas comerciais, com código fechado, você precisa pagar por ele, dentro de seus planos de compra. Isso porque o driver de acesso ao MySQL está sob licença GPL - propositalmente - e será compilado e incorporado em sua aplicação. Portanto sua aplicação inteira passa a ter que estar sob licença GPL ou adquirir a versão paga do MySQL.
Essa questão é claramente explicada aqui : http://www.mysql.com/company/legal/licensing/faq.html
"Dennes, esse índice tpc só testa 4 bancos, os que tu citou e mais um da sybase, sendo que alguns tem várias versões e revisões. Até que eu saiba todos são proprietários. Então ele não ajuda em nada a responder a(s) pergunta"
A ausência é, de fato, uma resposta. Você não vê na documentação do TPC nenhum lugar em que ele determine que apenas faz testes de bancos proprietários ou que fica limitado a esses bancos, pelo contrário, você vê o TPC aberto a qualquer um que deseje fazer os testes.
"O que eu escutei do Microsoft SQL Server (talvez seja uma versão mais antiga) era que ele travava a tabela inteira quando tu modificava um registro"
Boatos se espalham indevidamente.
1) Isso aconteceu antes de eu ser maior de idade.
2) Não tem nada a ver com recursos do SQL Server, mas com má programação e aceitação de configurações default.
Você não deve confiar em boatos na área tecnologica.
"o IIS também a um tempo atrás era um pepino"
Um tempo atrás ? O IIS versão 6 foi lançado em 2003 (portanto quase 5 anos atrás) e o número de boletins de segurança criticos não ocupa nem metade dos dedos de uma mão.
"o maior banco de dados do mundo roda em myqsl"
De onde você concluiu isso ? A questão sobre o google ?
Aqui você gerou um boato perigoso. As documentações sobre a relação do google com mySQL são muito claras ao afirmar que o google não usa mySQL para seu banco de busca na web, usa para outros recursos internos, indefinidos, os quais nunca saberemos quais são.
[]'s
---------------------
CidadaoCarioca
BufaloInfo
Tem um parametro no MSSQL que determina que se "n" porcento da tabela for requisitada para alteraçao ele fará lock por tabela e não por pagina, ainda assim havia o SELECT...NOLOCK para nao travar e depois mais tarde com a implementacao do lock por linha (antes era só pagina ou tabela) facilitou a vida dos usuarios-acho que isso se deu no MSSQL2000. Hoje o lock por tabela só se dá se for com um comando explicito.
O MSSQL era muito ruim apesar de ferramentas graficas boas, me lembro que corrompia direto tabelas que usassem campo identity onde tive que substitui-los por int e calcular, tambem tinha um database temp que se corrompesse simplesmente voce nao rodava mais o banco e coisas desse naipe, apesar disso ele evoluiu muito, arrancou fora conceitos de administração unix (uso de devices) e tunnings que nao faziam muito sentido. Mas na minha opniao outros BDs Livres são melhores dependendo da aplicação e do perfil da empresa.
O MySQL para mim é só para tratar de aplicações LAMP/GPL onde cai como uma luva no quesito simplicidade, porque no quesito velocidade é apenas uma lenda, o PG e o Firebird são muito mais rápido sob o mesmo hardware, fiz esse um tempo atras com o MySQL4 e a menos que muita coisa tenha ocorrido no MySQL5 ainda é a mesma coisa.
Oi, Hamacker !
"Tem um parametro no MSSQL que determina que se "n" porcento da tabela for requisitada para alteraçao ele fará lock por tabela e não por pagina,"
O que é "requisitada para alteração" para você ?
Muita gente confunde isso com a exibição de dados para o usuário e permitir que o usuário navegue nos dados, quando na verdade não é nada disso.
A requisição para alteração acontece em procedimentos dentro do servidor, quer seja uma transação programada na forma de stored procedure ou uma instrução única de update, por exemplo. De qualquer forma, estamos falando de algo que será executado sem intervenção do usuário, conte essa execução em milisegundos.
"ainda assim havia o SELECT...NOLOCK para nao travar"
A única coisa útil na realização do Select com Nolock é o aumento na performance de execução do Select pelo fato de não ser necessário que a base de dados registre em suas tabelas de sistema a existência dos locks. Performance, quando integridade não for fundamental.
"tambem tinha um database temp que se corrompesse simplesmente voce nao rodava mais o banco"
O tempDB sempre foi utilizado para dar suporte a aplicações client/server com cursores no servidor, um legado que hoje evitamos utilizar.
Quando o serviço do SQL Server é reiniciado, o tempDB é deletado e re-criado e isso ocorre mesmo em versões antigas. Aplicações client/server sim, podem ter problemas dependendo de volume, como foram construidas, etc...
[]'s
---------------------
CidadaoCarioca
BufaloInfo
Tente trabalhar com um banco de 5gb em MySQL e depois venha dizer que ele é rápido, o MySQL é perfeito com BD para internet, para aplicações mais robustas ele não serve.
__________________________________________________
" Não se trata do quão forte você bate, mas sim do quão forte você possa suportar os golpes e seguir em frente..." (Rocky Balboa)
Postgree (sic e sci)????
Não conheço esse SGBD (DBMS).
Não entendi essa (ou é mais uma informação tendenciosa)... Se eu entendi, o texto diz (ou insinua) que as bases de dados de código aberto "não aguentariam o tranco de grandes aplicações", e que por isso seria melhor usar as versões "gratuitas" dos SGBDs proprietários. Então como vão explicar o fato de que para todas as aplicações "sérias" do governo do Paraná para o qual trabalho são baseadas no PostgreSQL? E ele funciona muito bem diga-se de passagem, nunca ouvi do pessoal do data warehouse nenhum comentário que teriam que trocar para um SQL Server ou similar "porquê a base estaria ficando grande/complexa demais". E o MySQL - usando-se o MyISAM (Transações só com o InnoDB) - é rápido mesmo, tanho que costuma ser a opção preferida para uso em sites e qualquer aplicação onde ser rápido é mais importante do que garantir integridade referencial À nível de base de dados (embora eu seja da opinião de que o InnoDB é rápído também).
Em resumo, isso está me cheirando à conversa para boi dormir...
Concordo, trabalho em uma universidade publica e aqui armazenamos grandes quantidades de dados (grandes mesmo) em MySQL e nunca, NUNCA tivemos problemas de performace ou que fosse necessária a uma mudança pra DB propretário que aliás, não teria nem justificativa para uma mudança destas ;-)
TecnoEvidência
Oi, DarkMaster !
Você deixou escapar dois trechos do texto :
"Migrar a aplicação para uma edição do servidor com maior recurso será uma tarefa simples quando a aplicação crescer."
e
"É claro que é quase impossível prever qual limitação será essa e se realmente virá a existir um dia ou se o banco escolhido vai dar conta do recado, mas os índices TPC mostram claramente os 3 melhores servidores do mercado e todos os três possuem edições gratuitas."
Portanto as aplicações que você citou cairam definitivamente no 2o caso que mencionei. O problema será se um dia crescerem mais do que os bancos que elas utilizam hoje suportam...
Quanto ao uso de dataWarehouse com bancos livres, poderia me fornecer mais informações ? Os servidores que citei possuem ferramentas específicas para trabalhar com warehouse, permitindo a partir do warehouse a criação de cubos, execução de algorítimos de data mining e extração de dados com linguagens específicas para cubos. Existe algo semelhante nos bancos livres (é só curiosidade mesmo, sério) ?
[]'s
---------------------
CidadaoCarioca
BufaloInfo
Como eles fazem os clusters eu não sei dizer, sei apenas que é possível. Como analista de sistemas eu só me envolvo na questão de usar os dados do data warehouse, para responder esta questão eu terei que procurar o nosso DBA.
Oi, DarkMaster !
Não quis dizer cluster, mas sim cubos.
[]'s
---------------------
CidadaoCarioca
BufaloInfo
A partir da versão 8.x o PostgreSQL passou a oferecer suporte a Warehouse e "cubos". Até a versão 7.X não havia esse suporte nativo, mas já existiam módulos.
Uma dúvida ficou no ar, Dennes: fui olhar as tabelas completas no TPC e não encontrei nenhum case com bancos de dados livres. Foi ilusão minha ou os testes não os incluíram mesmo?
Seria interessante comparar as últimas versões de todos os BDs comerciais e livres. Daí podíamos tirar algumas conclusões mais substanciais, como melhor intuir o quanto uma solução compensa sobre a outra considerando várias variáveis, como performance, funções avançadas e custos.
Jaime Balbino
Learning Designer e Consultor em automação do ensino
http://www.dicas-l.com.br/educacao_tecnologia
http://mobeduc.blogspot.com
Oi, Jaim !
Curiosidade : Por que os cubos entre aspas ?
Não, você está certo, realmente não tem nenhum teste com bancos livres.
A questão é que estes testes não são simples de fazer, bem além de meros mortais como nós. Mas uma empresa como a MySQL ou outras diversas poderia fazer sem dificuldade.
A pergunta que ronda diversos comentários aqui é : Por que não fez, se o próprio TPC informa ser aberto a qualquer um (e se não fosse já estava sendo denunciado para tudo quanto é lado) ?
[]'s
---------------------
CidadaoCarioca
BufaloInfo
Acredito que o problema seja o custo de se montar um sistema destes.
Enquanto a Oracle, IBM, Microsoft, RedHat e Novell possuem interesse, e dinheiro, em demonstrar seus produtos em cenários abusivos, projetos como o PostgreSQL ou o MySQL não tem o fôlego financeiro necessário para esse tipo de demonstração de força.
[],
AC
Oi, Ac !
O que eu acho muito estranho...
MySQL é uma empresa, deveria ter condições disso.
De qualquer forma, qualquer banco livre que ajudasse a levar o Red Hat ou o suse para o topo da lista teria o apoio das respectivas empresas...
[]'s
---------------------
CidadaoCarioca
BufaloInfo
RedHat - Sistema Operacional
MySQL -- Banco de dados
????? -- Hardware
Faltaria o cara do Hardware. Acredito, que empresas como HP e IBM ficam temerosas quanto o desempenho desses bancos de dados livres. A mesma história de sempre: se está funcionando não mexa.
Até a Itautec, que mais "humilde" do que as citadas, preferiu desembolsar um dinheiro para um banco de dados proprietário, no sistema que eles publicaram.
O risco de bancar um teste deste é muito alto e não apresenta, em princípio, uma vantagem econômica/competitiva significativa.
Uma máquina dessas, TOP 10, é usada para rodar um SAP da vida. Como não há confiança nos bancos livres, não vai vender.
Uma empresa que compra uma máquina por US$4.000.000 para rodar um aplicativo que custou US$1.000.000, não vai sentir diferença, no bolso, ao pagar mais US$50.000 para um banco de dados de grife.
Acredito nessas razões para não vermos um MySQL, PostgreSQL ou Firebird no TPC.
[],
AC
Quanto ao TPC ser "aberto", segundo este link aqui, na própria página deles, http://www.tpc.org/information/about/join.asp , custa USD15MIL ANUAIS para ser membro efetivo. Não fica claro, porém, se vc precisa ser membro do TPC para submeter um benchmark. Mesmo entidades sem fins lucrativos devem pagar USD1500,00 ANUAIS para se tornarem membros associados (q não têm uma série de direitos).
Se vc tiver de ser membro full, de cara temos o porquê de um PostgreSQL da vida não entrar na jogada, bem como uma das possíveis justificativas da MySQL AB tbém não entrar nessa. Afinal, a MySQL AB não é exatamente essa "potência" comercial.
A última vez q eu olhei a sério os TPC foi em 2001, para a seleção de uma engine de BD. À época, o MS SQL Server estava batendo o Oracle (não lembro as respectivas versões), mas o setup do ambiente era um pouco "heterodoxo". O pessoal de banco conversou com o pessoal da MS e da Oracle e, embora a última admitisse o resultado, afirmava q a configuração do ambiente era, digamos, pouco usual em ambientes de produção.
No final das contas, o q eu lembro das DBMS Magazine e DataMagazine da vida lá da década de 90, mais esse caso q citei acima, e mais algumas conversas da minha (breve) época de DBA, é q as empresas faziam todo um tunning voltado para cada teste específico. Daí todo o investimento em hardware, além do software. Felizmente, amenizado pela métrica de transação/$.
Em suma, não vejo projetos de bancos de dados livres investindo para gerar este tipo de resultado pq seu público-alvo é diferente daquele dos "4 majors". E, só para constar, para apps web vc *não* precisa de uma licença proprietária do MySQL. Ele prevê uma série de *exceções* à GPL em sua (confusa) licença de uso. Inclusive, isso foi causa de gde "gritaria" do pessoal do PHP contra o MySQL.
Por outro lado, **todos** os bancos proprietários e gratuitos são de livre redistribuição junto com uma aplicação de terceiros? Ou o cliente é obrigado a instalar e manter um por conta própria?
Em suma, está me cheirando à um benchmark similar ao que o 3DMark faz com as placas de vídeo... Onde diabos acham que vou acreditar nos benchmarks de um programa patrocinado pela nVidia, uma das principais interessadas em ter boa pontuação no mesmo? Só pode ser piada. E esse caso dos SGDBs está parecendo a mesma coisa
DarkMaster,
Eu nem questiono a validade dos benchmarks TPC, eu questiono sua relevância no contexto de uma compra séria. Por explo, é relevante saber q o banco de dados mais "performático" para testes TPC-H 100GB roda sobre Red Hat Linux e é 400% mais *barato* q a solução Microsoft, se meu ambiente for somente Solaris?
Ou ainda, saber que os 6 *melhores* resultados para TPC-H 300GB rodam sobre Red Hat Linux (e continuam até 400% mais baratos q a solução Microsoft melhor classificada) se meu ambiente é mainframe com Adabas?
Saber, então, que nos TPC-H 1000GB o melhor classificado roda sobre Red Hat Linux, sendo 614% mais *barato* q a solução Microsoft q vem em segundo lugar, jamais teria qqr relevância se eu tivesse apenas MS MCEs trabalhando em meu CPD/IT Center/etc.
Enfim, por melhor q sejam os benchmarks, eles refletem uma situação simulada. Os benchmarks indicam apenas q determinado produto é realmente bom para *aquele* benchmark específico.
Quer comprar? Tem de correr atrás para saber qual a carga de seu ambiente (e fazer um planejamento de capacidade), qual a plataforma aceita na empresa, qual o custo de suporte in-house e outsourced, qual o ciclo de vida das versões do produto, qual o tempo médio entre a liberação de patches, etc e tal.
Se alguém aqui compra um produto olhado *só* testes TPC, ou se monta um benchmark TPC interno ao invés de montar um business case relevante para os processos de negócio da própria empresa, então tem muito dinheiro sendo jogado fora por aí...
[ ]s
"[...]é relevante saber q o banco de dados mais "performático" para testes TPC-H 100GB roda sobre Red Hat Linux e é 400% mais *barato* q a solução Microsoft, se meu ambiente for somente Solaris?"
Muito relevante. Agora você tem informações para pensar em uma reforma do seu ambiente atual.
"[...]saber que os 6 *melhores* resultados para TPC-H 300GB rodam sobre Red Hat Linux (e continuam até 400% mais baratos q a solução Microsoft melhor classificada) se meu ambiente é mainframe com Adabas?"
Se você estiver querendo um substituto para o Adabas e seu Mainframe, sim.
"Enfim, por melhor q sejam os benchmarks, eles refletem uma situação simulada. Os benchmarks indicam apenas q determinado produto é realmente bom para *aquele* benchmark específico."
Esse é o principal benefício e relevância de benchmarks como o TCP. Ele te dá um sistema métrico e alguns exemplos de medidas para avaliar o *seu* sistema.
No teste do TCP, a quantidade de registros no banco de dados é a mesma para todos os sistemas testados. A estrutura das tabelas possuem um conjunto de características em comum: índices, chaves, integridade referencial essas coisas.
Você pode rodar o TPC-C em seu sistema e comparar os resultados com os que foram obtidos e publicados, usando eles como referência de performance.
[],
AC
Oi, Olival !
Neste link : http://www.tpc.org/information/about/faq-generic.asp você observa que não é necessário ser membro do TPC para executar os benchmarks.
"as empresas faziam todo um tunning voltado para cada teste específico"
Com certeza, mas os testes em questão são padronizados pelo TPC e se estiverem fora do padrão são rejeitados, conforme menciona a própria FAQ que indiquei ali acima.
"Ele prevê uma série de *exceções* à GPL em sua (confusa) licença de uso. Inclusive, isso foi causa de gde "gritaria" do pessoal do PHP contra o MySQL."
Todas as excessões previstas na licença do MySQL tem por objetivo permitir que o desenvolvedor licencie softwares sob outras licenças de software livre que, de outra forma, não seriam compatíveis com a GPL do MySQL.
A MySQL determina quais são as licenças que o desenvolvedor pode utilizar caso deseje utilizar o MySQL gratuitamente.
Você encontra isso na FAQ : http://www.mysql.com/company/legal/licensing/faq.html
"Por outro lado, **todos** os bancos proprietários e gratuitos são de livre redistribuição junto com uma aplicação de terceiros? Ou o cliente é obrigado a instalar e manter um por conta própria?"
Os 3 bancos proprietários gratuitos podem ser usados comercialmente. Durante a implantação de uma aplicação no cliente o servidor de dados é implantado em conjunto. Mas é claro que, como todo servidor de dados, é necessária manutenção.
[]'s
---------------------
CidadaoCarioca
BufaloInfo
Oi, Dennes
Separei por partes a resposta.
---------------------------
"Neste link : http://www.tpc.org/information/about/faq-generic.asp você observa que não é necessário ser membro do TPC para executar os benchmarks."
Pois é. Eu só achei essa parte do site depois de dar um Google no assunto. Vc notou q não há nenhum link para o Generic FAQ a partir da home page?
Enfim, de fato, vc não precisa ser membro, mas isso *não* significa q rodar um teste TPC seja "trivial". Vamos aos requisitos:
(a) Obter a última documentação do TPC a partir do "TPC Administrator's office":: Não me parece q seja só um "download das specs" de um site do TPC.
(b) Se familiarizar com todas as regras e políticas sobre como submeter um benchmark TPC. Por explo, q *todos* os benchmarks TPC *devem* ser aprovados por um Auditor TPC:: Será q alguém faz isso de graça ou esse é um daqueles profissionais q cobram taxas de 3 ou 4 dígitos por 1 hora de trabalho?
(c) Aprender a escrever um relatório de "full disclosure" apropriado e submetê-lo ao TPC antes de poder usar o resultado do bechmark publicamente:: E como exatamente a empresa adquire esses skills em redação de relatórios TPC? Será q isso exige investimento da empresa - tempo, dinheiro, pessoal, etc ? Nos próximos itens me parece q isso fica mais claro. ;-)
(d) Entrar em contato com um Auditor TPC para agendar a auditoria do seu benchmark:: Tendo em vista q os "majors" estão sempre rodando algum benchmark, qual será a disponibilidade desses auditores?
(e) Como conselho (não necessariamente obrigação), o TPC aconselha q vc contrate um consultor familiarizado com os testes deles. A lista dos tais consultores pode ser obtida diretamente com o "TPC Administrator's office":: Bom, pra mim fica claro onde entra uma custo direto no processo (ou investimento se vc for uma "major"). Me surpreenderia se esses consultores não fossem (ou tivessem sido) auditores TPC tbém.
Em suma, me parece q continua sendo algo q *certamente* não é pro bico do PostgreSQL ou para o qual uma empresa *relativamente* pequena como a MySQL teria grana pra investir.
Além disso, se a intenção for fazer publicidade do resultado, é preciso testar "em casa" primeiro. Afinal, ao submeter um benchmark ao TPC vc deve concordar com o "full disclosure". As "majors" têm grana para testar "in house" antes de submeter. Duvido q os bancos "livres" (mesmo os comerciais) tenham recursos para tanto.
---------------------------
"Com certeza, mas os testes em questão são padronizados pelo TPC e se estiverem fora do padrão são rejeitados, conforme menciona a própria FAQ que indiquei ali acima."
De fato, mas isso *não* impede o tunning específico. Contanto q sigam as especificações do TPC, as configurações do ambiente de teste podiam abarcar coisas cuja administração em um ambiente de produção real seriam bem mais complexas.
Por explo, no teste de 2001 q eu citei antes, onde o MS SQL Server bateu o Oracle, lembro q a configuração do SQL Server envolvia um setup q privilegiava a velocidade em dentrimento da confiabilidade. É um arranjo válido, mas acredito q **em ambientes de produção típicos**, onde dados íntegros são bem mais críticos, não seria uma configuração fácil de encontrar (de fato, a MS local não nos apontou ninguém q a utilizasse para podermos bater um papo).
---------------------------
"Todas as excessões previstas na licença do MySQL tem por objetivo permitir que o desenvolvedor licencie softwares sob outras licenças de software livre que, de outra forma, não seriam compatíveis com a GPL do MySQL."
Sim, mas meu pto é q estas exceções cobrem o uso do MySQL "GPL" em ambientes web. Obviamente, não é o caso de seu uso "embedded", o qual exige de fato uma licença proprietária.
---------------------------
Agora, acho importante frisar q os testes TPC já deixaram de ser referência para a aquisição de um produto destes **há muiiito tempo**, pois:
(1) Performance é apenas 1 critério e é bastante relativo. Como diz um dos FAQs TPC, "não há uma resposta fácil" para saber se um teste TPC é relevante para o seu ambiente (http://www.tpc.org/tpcc/faq.asp). Engines fantásticas rodam como lesmas em bancos pouco otimizados. E uma query estilo "produto cartesiano" detona qqr um... :-)
(2) Os testes TPC trazem uma relação preço/performance "crua", mas não entram em meandros de contratos de suporte, disponibilidade de profissionais qualificados no seu ambiente, etc. De nada vale o MS SQL Server bater o Oracle se no meu ambiente eu tenho só DBAs Oracle com mais de 10 anos de experiência ou meu ambiente servidor *não* for Microsoft. Qtos bancos de dados Adabas/Natural o Serpro ainda roda em seus mainframes? ;-)
(3) O custo de descarte da tecnologia tbém é bastante importante em determinados ambientes. Neste pto, mesmo os bancos livres tem vantagens limitadas, pois não há uma solução realmente universal e cada um traz particularidades q acabam por se traduzir em algum grau de lock-in (o q eu desenvolvo para MySQL eu *não* levo direto para o PostgreSQL, por explo). Mas, o caso dos bancos proprietários pode ser mais grave conforme seus requisitos de ambiente. Neste caso, o calcanhar de Aquiles do MS SQL Server é justamente só rodar sobre MS Windows e exigir (ou, ao menos, recomendar) uma série de outros componentes da stack MS para poder tirar proveito de suas funcionalidades.
Enfim, testes TPC são interessantes, mas duvido q hoje em dia sejam tão relevantes para decisões de compra. No máximo, servem de parâmetro inicial. E quem usa bancos de dados livres costuma ter vários motivos para isso (ou está satisfeito com sua configuração). Não creio q sejam o público-alvo de testes TPC.
[ ]s
Oi, Olival !
A faq é acessível pela home->about TPC->What is TPC->FAQ
A MySQL não é uma empresa tão pequenininha assim... estamos falando de uma empresa que produz uma base de dados comercial : http://www.mysql.com/company/investors.html
Quanto ao tunning, ok, isso pode gerar uma diferença de 2, 3 posições no ranking ?
"Sim, mas meu pto é q estas exceções cobrem o uso do MySQL "GPL" em ambientes web. Obviamente, não é o caso de seu uso "embedded", o qual exige de fato uma licença proprietária."
Tem certeza ? Não tenho link, nem tenho mais o e-mail, mas lembro de ter feito uma troca de e-mails com uma funcionaria da mySQL em que ela falou algo como ser necessário o provedor comprar uma licença para cada site que usasse o mySQL. Sim, também achei absurdo. Só consultando novamente para obter alguma informação.
Quanto aos itens :
1) É claro que as características da sua aplicação específica vão influenciar completamente o resultado final. Se sua aplicação for mal escrita, não tem jeito. Mas adquirir um banco de dados que dê suporte para sua necessidade de escalabilidade é um bom começo.
2) É fato que a relação custo/performance do TPC é apenas um indicador. Em momento algum disse "Vá ao TPC e escolha o que estiver no topo". Essa relação custo/performance é apenas um leve começo para um cálculo de TCO.
3) Estou na dúvida se entendi este trecho... isso porque um dos pontos de destaque do artigo é justamente iniciar um novo sistema em uma versão gratuita de um banco proprietário para que quando o crescimento da aplicação acontecer não haja a necessidade de uma drástica migração de ambiente. Quanto a Linux/Windows, é uma das escolhas a ser feita no momento de decidir entre essas 3 opções...
Infelizmente não estão sendo relevantes porque são muito pouco conhecidos, como observa-se pela quantidade de comentários que esse post atraiu...
[]'s
---------------------
CidadaoCarioca
BufaloInfo
Oi, Dennes
"A faq é acessível pela home->about TPC->What is TPC->FAQ"
Como eu disse, tem de entrar em 3 níveis para achar... O Google foi mais rápido. :)
"A MySQL não é uma empresa tão pequenininha assim... estamos falando de uma empresa que produz uma base de dados comercial : http://www.mysql.com/company/investors.html"
A MySQL *não* tem capital aberto, portanto suas informações financeiras não estão à disposição em um SEC da vida. Mas, em http://www.intel.com/capital/news/releases/060213.htm tem um press release q diz q ela recebeu até então (fev/2006) **USD39milhões** em capital de risco. A receita da empresa foi de **apenas USD5milhões em 2002** (http://www.builderau.com.au/architect/database/soa/Will-MySQL-become-the-next-Linux-/0,339024547,320276852,00.htm), quando ela tinha recebido uns USD19milhões em capital de risco. Convenhamos, isso é "micro-empresa" perto dos concorrentes citados no artigo. Infelizmente, não encontrei dados recentes sobre a receita deles, mas, mesmo q tivesse, não temos dados para saber se eles operam no vermelho ou se já estão dando lucro. Além disso, o número de empregados da empresa parece ser relativamente pequeno (coisa de menos de 200 pessoas), mas não tenho um link para essa info.
Enfim, produzir uma "base de dados comercial" não significa q ela venda horrores e tenha um lucro magistral. Vale lembrar q ainda tem muita gente usando a versão GPL por aí. Sem contar os q usam a engine mais antiga (q vêm com as distros comerciais), ainda livre de algumas restrições posteriores de licenciamento.
"Quanto ao tunning, ok, isso pode gerar uma diferença de 2, 3 posições no ranking ?"
Depende. O "tunning" aqui envolve até mesmo a escolha do servidor onde o benchmark irá rodar. Pra mim não adianta nada saber q o Oracle rodando sobre um HP Superdome com 64 cpus e 128 núcleos é super rápido. Assim, a diferença pode ser beeem maior q simplesmente 2 a 3 posições.
Em todo caso, no final das contas, o q eu aprendi com testes TPC e com a convivência com diversas engines é q os "majors" já estão cabeça-a-cabeça faz tempo. Testes TPC já não servem para distinguir um do outro em ambientes "convencionais". A menos q vc realmente tenha um Superdome de 128 núcleos no seu Data Center. :)
"Tem certeza ? (...) uma troca de e-mails com uma funcionaria da mySQL em que ela falou algo como ser necessário o provedor comprar uma licença para cada site que usasse o mySQL."
Tenho certeza q não é preciso. Em primeiro lugar, há uma certa confusão pq a MySQL até 2001 liberava as bibliotecas clientes em LGPL, permitindo q vc fizesse até mesmo software proprietário q conectasse em um banco MySQL GPL e redistribuisse tudo junto em uma mesma mídia numa boa (contanto q o banco não estivesse "embutido" em sua app). Então eles mudaram o licenciamento dos clientes para GPL, barrando esse tipo de uso e gerando uma confusão danada.
Para apps web, o seu site *não* representa uma "redistribuição" do software. Vc *não* está oferecendo *o* software, vc está oferecendo um *serviço*. É isso q permite ao Google usar kernels Linux altamente customizados em seus clusters e não ter de entregar esse código pra ninguém.
Talvez eles tenham passado essa informação tbém pq os drivers deles são GPL, mas, até aí, vc sempre pode usar um driver para o MySQL q venha de outro fornecedor (não tem um no próprio MS .Net?). No fundo, acho q a MySQL AB força a barra na questão dos sites para vender mais licenças proprietárias e serviços de suporte (um pacote só), q é a principal fonte de receita deles.
"3) Estou na dúvida se entendi este trecho..."
Apenas comentei q o custo de descarte é importante. A questão não é apenas começar "pequeno" (mesmo pq para alguns não há essa opção). O problema é se o seu banco de dados exige um investimento em infra-estrutura q tornará a migração dele para um concorrente algo praticamente impossível. Citei o MS SQL Server por questões óbvias (só roda em um sistema operacional). Mas, a Oracle tbém adora tentar verticalizar suas ofertas. E quase todos os seus produtos acabam por embutir alguma engine de banco Oracle no meio, mesmo q seja sob a justificativa de servir apenas de "infra-estrutura". Ou seja, o investimento acaba sendo maior do q apenas na engine q vc queria comprar inicialmente.
"Infelizmente não estão sendo relevantes porque são muito pouco conhecidos, como observa-se pela quantidade de comentários que esse post atraiu..."
Aqui eu discordo. Benchmarks como o TPC são utilizados principalmente para apoiar aquisição de software ou hardware específico. A falta de comentários aqui pode simplesmente significar q esta não é a seara dos frequentadores deste fórum (se fosse um fórum de DBAs, por explo, tenho certeza de q teria lotado de comentários). Tenho uns 15 anos de janela em questões correlatas e sempre vi os TPC aparecendo aqui e ali.
A questão é q lá pelo final dos anos 90 a relevância dos TPC foi sendo cada vez mais questionada e seu uso deixado de lado (lembre-se q o TPC-A e B já caíram em desuso, e há quem diga q o TPC-C está próximo do seu fim). Quer dizer, eles continuam sendo um "ponto de entrada" na hora de avaliar as engines ou o hardware onde os testes rodam, mas como as configurações de alto desempenho envolvem máquinas fora da realidade de muita gente, acabam por ser irrelevantes para muitos "mortais".
[ ]s
O "cubos" ficou entre aspas porque só tinha visto esta estrutura referenciada no inglês.
Quanto ao TPC, a referencia que dei anteriormente demonstra que as características de aplicação deste benchmark já eram conhecidas pela comunidade ao ponto dela referenciar sua própria contribuição a ele.
Deve ser uma questão de custos mesmos e de falta de interesse baseado nos nichos específicos de mercado (baixo custo e necessidades menos críticas, por exemplo).
Um abraço,
Jaime Balbino
Learning Designer e Consultor em automação do ensino
http://www.dicas-l.com.br/educacao_tecnologia
http://mobeduc.blogspot.com
Com certeza parece conversa pra boi dormir, esse TPC é uma união dos 3 mais afetados pelos bancos abertos e ta com cara que vai virar mais um GetTheFacts...
Se existe toda uma metodologia, porque não convidar representantes dos outros Bancos? E comparar todos? Deve ser porque eles não são grátis, são livres!!! hehehhehe
Eu vi uma palestra na Pycon sobre o que o governo do Paraná fez. Resumindo, a solução de banco em cluster do PostgreSQL ficou 30% mais rápida que a do Oracle. E claro que não deve ter sido fácil, mas imaginem que a equipe de implementação aprendeu...
davidkwast.blogspot.com
Oi, David !
É uma pena que não tenha visitado o link para a página dos participantes do TPC. São ao todo 21 participantes - e não 3 - sendo, como citei, muitos apoiadores do software livre, tal como a Sun.
A questão de muitos dos exemplos terem sido feitos com Linux já demonstra que não há distinção.
Já neste aqui TPC FAQ você descobre o seguinte :
- Qualquer empresa pode se tornar membro do TPC
- Não é preciso ser membro do TPC para realizar um benchmark
Se alguem tiver alguma informação adicional, com devido link, sobre porque não existem benchmarks com bancos livres, isso é muito útil.
---------------------
CidadaoCarioca
BufaloInfo
A comunidade livre criou outro benchmark compatível com o TCP-H e mais amplo, o OSDL-DBT3. Acho que e mais fácil encontrar BDs livres testados sob este padrão.
A fonte foi esta análise do Postgres 7.x:
dspace.c3sl.ufpr.br/dspace/bitstream/1884/662/1/Eduardo_Cunha_de_Almeida.pdf
Jaime Balbino
Learning Designer e Consultor em automação do ensino
http://www.dicas-l.com.br/educacao_tecnologia
http://mobeduc.blogspot.com
Oi, Jaim !
O TPC-H é um padrão de benchmark para bases OLAP, não para bases OLTP. Quer dizer : Este padrão de benchmark apenas faz o benchmark para uso de datawarehouse.
Analisar o PostGreSQL para datawarehouse envolve muitas outras coisas. Por exemplo, para datawarehouse o SQL Server possui o Analysis Server, que faz trabalho com cubos e implementa algorítimos de data mining, além de possuir uma linguagem específica para resolver problemas com cubos, que de outra forma seriam muito difíceis de solucionar.
Todos esses recursos teriam que ser considerados como parte de TCO (a favor ou contra) de acordo com a produtividade que