SQL Server 2012 e PostgreSQL 9 Comparação detalhada de métodos e recursos Whitepaper do SQL Server Publicado: Abril de 2012 Aplica-se a: SQL Server 2012 Introdução: O debate sobre implementar softwares comerciais ou softwares open source acontece há anos. Softwares open source como o PostgreSQL normalmente são gratuitos ou têm um preço muito baixo. No entanto, até quem acha que está economizando ao implementar softwares open source concorda que "gratuito" não significa "sem custos". Embora o custo inicial do software e das licenças seja baixo ou nem exista, o custo geral da implementação e da manutenção pode ser alto. Além disso, as taxas de suporte e consultoria podem ser maiores do que a maioria das organizações espera, o que eleva o TCO (total cost of ownership - custo total de propriedade). Por outro lado, softwares comerciais como o Microsoft SQL Server 2012 atingem um desempenho geral superior porque as equipes que trabalham nos produtos investem milhares de horas de dedicação e milhões de dólares em pesquisa e desenvolvimento para que as empresas tenham suas necessidades atendidas e possam executar seus aplicativos mais importantes. A Microsoft sabe quais são os requisitos das organizações e os satisfaz construindo recursos nas múltiplas versões do SQL Server. Este whitepaper compara em seis categorias os principais recursos da última versão do SQL Server 2012 e do PostgreSQL 9. O objetivo da comparação é ajudar o cliente a escolher o banco de dados mais apropriado para seus aplicativos. SQL Server 2012 comparado com o PostgreSQL 9 Direitos autorais As informações contidas neste documento representam a visão atual da Microsoft Corporation sobre os temas discutidos na data da publicação. Como a Microsoft deve responder às mudanças das condições de mercado, este documento não deve ser interpretado como um compromisso da parte da Microsoft, e a Microsoft não pode assegurar a exatidão de qualquer informação apresentada após a data da publicação. Este white paper destina-se a fins informativos. A MICROSOFT NÃO OFERECE GARANTIAS EXPRESSAS, IMPLÍCITAS OU ESTATUTÁRIAS QUANTO ÀS INFORMAÇÕES DESTE DOCUMENTO. Este documento é fornecido "como está" ("as-is"). As informações e visões expressas neste documento, incluindo URLs e outras referências a sites da Web, podem sofrer alterações sem aviso prévio. Você pode utilizar este documento por sua conta e risco. O cumprimento de todas as leis pertinentes de direitos autorais é de responsabilidade do usuário. Sem limitar os direitos sob o direito autoral, nenhuma parte deste documento pode ser reproduzida, armazenada em, ou inserida em um sistema de recuperação de dados, ou transmitida de qualquer forma ou por qualquer meio (eletrônico, mecânico, fotocópia, gravação ou outro), ou para qualquer fim, sem a permissão expressa por escrito da Microsoft Corporation. A Microsoft pode deter patentes, solicitações de patentes, as marcas comerciais, os direitos autorais ou outros direitos de propriedade intelectual pertinentes ao objeto deste documento. Salvo expressamente disposto em qualquer contrato de licença escrito da Microsoft, o fornecimento deste documento não confere a você qualquer licença em relação a essas patentes, marcas comerciais, direitos autorais ou outras propriedades intelectuais. © 2012 Microsoft Corporation. Todos os direitos reservados. Microsoft e SQL Server são marcas comerciais do grupo de empresas Microsoft. Todas as outras marcas comerciais são de propriedade de seus respectivos proprietários. 2 SQL Server 2012 comparado com o PostgreSQL 9 Conteúdo Sumário executivo ............................................................................................................. 4 Edições do Produto............................................................................................................ 5 SQL Server 2012............................................................................................................ 5 PostgreSQL 9................................................................................................................. 5 Comparação de recursos.............................................................................................. 5 Mecanismo .................................................................................................................... 6 Recursos corporativos ................................................................................................... 9 Segurança ...................................................................................................................... 11 Ferramentas.............................................................................................................. 12 Data Warehouse, Business Intelligence e Big Data ...................................................... 14 Suporte............................................................................................................................ 15 Conclusão .......................................................................................................................... 16 Referências ....................................................................................................................... 16 3 SQL Server 2012 comparado com o PostgreSQL 9 Sumário Executivo Este whitepaper mostra que o SQL Server 2012 tem recursos melhores que os do PostgreSQL nas seguintes categorias: mecanismo, recursos corporativos, segurança, ferramentas, data warehouse, business intelligence, big data e suporte. Além disso, como os softwares open source costumam ser desenvolvidos pelos membros voluntários da comunidade, alguns problemas são frequentes: Introdução de bugs no software. Muitos desenvolvedores da comunidade contribuem para o código aberto do PostgreSQL. Quando não há conhecimento ou garantia da qualificação desses desenvolvedores, é comum a introdução de bugs no produto. Empresas de software comercial como a Microsoft, por outro lado, asseguram a qualificação dos desenvolvedores que contribuem para a criação de seus produtos. Resposta às ameaças de segurança. A Microsoft tem equipes de engenheiros dedicados apenas a responder às ameaças de segurança, de modo que as atualizações são disponibilizadas quase que imediatamente após a exposição de uma vulnerabilidade. Desse modo, o SQL Server tem o menor índice de vulnerabilidades de segurança entre os produtos de banco de dados nos últimos 10 anos, de acordo com o NIST. No caso dos softwares open source, é difícil ou impossível saber a quem solicitar atualizações de segurança ou quando elas estarão disponíveis. Gerenciamento inadequado de programas e projetos. O gerenciamento de programas da Microsoft faz uma ponte entre os desenvolvedores de software e os clientes. O gerenciamento de projetos cuida dos requisitos relacionados ao projeto do software, que inclui o planejamento de recursos. A Microsoft tem gerentes de programas e projetos que trabalham em tempo integral em áreas específicas dos produtos. Os membros da comunidade open source, no entanto, têm outras atividades profissionais e não têm tempo para se dedicar tanto ao produto. Dessa forma, é mais difícil manter os projetos de softwares em dia e de acordo com os requisitos. Testes inadequados por não haver hardware disponível. O teste de qualquer software requer várias configurações diferentes de hardware. Como os softwares open source são desenvolvidos pela comunidade e não existe um suporte corporativo, normalmente não há um ambiente de laboratório específico para testar adequadamente os hardwares. Não há suporte do fornecedor de hardware. A Microsoft trabalha em conjunto com fabricantes de hardware como a HP, a Dell e a Intel para garantir a compatibilidade e o suporte do SQL Server com base nas especificações. Por outro lado, é bastante limitado o suporte que garante a compatibilidade dos hardwares com os bancos de dados open source como o PostgreSQL. Embora haja aspectos positivos no PostgreSQL 9, este whitepaper mostra que o SQL Server 2012 é a melhor opção para todos os requisitos das empresas e todos os tipos de aplicativo, incluindo os de missão crítica, que requerem alto desempenho, escalabilidade, alta disponibilidade, segurança, gerenciamento, suporte e capacidade de tomar decisões melhores com base nos dados. 4 SQL Server 2012 comparado com o PostgreSQL 9 Edições do Produto SQL Server 2012 O Microsoft SQL Server 2012 é uma plataforma de informação "cloud-ready" (pronta para a nuvem) que ajuda a revelar insights inovadores em toda a organização e a criar, com a confiabilidade necessária, soluções que estendem os dados a todas as instalações locais (onpremises) e à nuvem pública. Empresas de pequeno, médio e grande porte podem se beneficiar com o SQL Server 2012. Sejam quais forem os requisitos corporativos ou orçamentários, há sempre uma edição apropriada no SQL Server 2012. Uma das principais vantagens de ter múltiplas edições é o fato de serem produzidas com o mesmo mecanismo de banco de dados: Enterprise para aplicativos de missão crítica e data warehousing de grande escala Business Intelligence, uma edição nova, que oferece autoatendimento e serviços corporativos avançados de BI Standard para recursos básicos de banco de dados, relatório e análise Express Edition, uma edição de escala menor que pode ser adquirida gratuitamente por download ou distribuição de ISVs (independent software vendors - fornecedores independentes de software) PostgreSQL 9 O PostgreSQL 9 (incluindo o 9.1) está disponível em apenas uma edição, que contém todos os recursos básicos descritos anteriormente. Outras empresas comerciais cobram pelo licenciamento/suporte de funcionalidades adicionais do produto. O PostgreSQL não contém muitos dos recursos de nível corporativo necessários para executar aplicativos de missão crítica altamente disponíveis, como AlwaysOn, clustering e operações online. Os principais recursos do PostgreSQL são descritos na próxima seção. Comparação de Recursos Devido à grande quantidade de recursos do SQL Server 2012 e do PostgreSQL 9, a comparação foi dividida nas seguintes categorias: mecanismo, recursos corporativos, segurança, ferramentas, data warehouse, business intelligence, big data e suporte. Usamos os símbolos a seguir para indicar o nível de suporte de cada recurso no SQL Server 2012 e no PostgreSQL 9: 5 - Recurso totalmente suportado - Recurso parcialmente suportado - Recurso não suportado SQL Server 2012 comparado com o PostgreSQL 9 Mecanismo O mecanismo de um sistema de banco de dados é a tecnologia básica que processa os dados. Ele manipula todas as inserções, atualizações, exclusões e seleções, bem como a otimização, a indexação e todos os outros processos de nível básico suportados por uma tecnologia de banco de dados. A comparação dos recursos de mecanismo é mostrada na Tabela 1. Recurso 6 PostgreSQL 9 SQL Server 2012 Comentários Ajuste automático O ajuste automático otimiza o banco de dados para maximizar o desempenho. Isso elimina a carga administrativa dos DBAs. Integridade referencial cascata Atualiza ou exclui dados automaticamente em tabelas aninhadas que participam de relações de chave estrangeira. em Exibições indexadas As exibições indexadas oferecem o melhor desempenho nas visualizações dos bancos de dados. Múltiplas Instâncias "Múltiplas instâncias" se refere à capacidade de um único servidor de hospedar mais de uma instância do servidor de banco de dados. Múltiplos Idiomas Capacidade de exibir mensagens em outros idiomas além do inglês. Também controla a classificação de data, hora, moeda e cadeia de caracteres. Regras Permite controlar os valores válidos que podem ser armazenados em uma coluna da tabela. Procedimentos armazenados (Stored Procedures) Permite encapsular instruções SQL complexas em um único procedimento que pode ser chamado nos aplicativos ou dentro de outras instruções SQL. Transações Capacidade de tratar um conjunto de instruções SQL como uma única unidade de trabalho, permitindo que exatamente todas ou nenhuma das instruções seja cumprida. Disparadores (Triggers) Notificam ou disparam automaticamente quando determinados eventos ocorrem no banco de dados, tais como a alteração dos dados de uma tabela. SQL Server 2012 comparado com o PostgreSQL 9 Recurso 7 PostgreSQL 9 SQL Server 2012 Comentários Funções definidas pelo usuário Método de fornecimento de meios programáticos para funcionalidades complexas alinhados às instruções SQL. Tipos de dados definidos pelo usuário Capacidade de criar um tipo de dado não disponível "de fábrica" e que corresponda aos requisitos da empresa. Exibições Método de abstração e filtragem de colunas ou linhas específicas em uma tabela subjacente, mas que continua parecendo uma tabela nas consultas SQL. Lógica UPSERT O SQL Server suporta a operação UPSERT (combinação de atualização e inserção em uma única cláusula) usando a instrução MERGE. Consulta paralela O SQL Server oferece consultas paralelas para otimizar a execução de consultas e as operações de indexação. Consulta federada distribuída O SQL Server suporta consultas distribuídas que acessam dados de múltiplas fontes heterogêneas. Suporte a XML e processamento de XML nativos O SQL Server armazena dados XML como um tipo nativo, o que permite a indexação e a consulta com tecnologias padrão como o XQuery. Disponível sem custos A edição Express do SQL Server está disponível gratuitamente. Suporte entre plataformas O PostgreSQL 9 pode ser executado no Unix e no Linux, bem como no Windows. O SQL Server só pode ser executado no Windows. Estratégia de armazenamento de dados em múltiplas linhas Os dados são armazenados de uma forma que garante o bom desempenho em ambientes de alta transação. Service Broker O SQL Server Service Broker é usado para comunicações assíncronas com outros aplicativos. Pesquisa de texto completo Capacidade de catalogar os dados que compõem uma coluna de texto SQL Server 2012 comparado com o PostgreSQL 9 Recurso PostgreSQL 9 SQL Server 2012 Comentários para facilitar a consulta. Tabela organizada por índice O SQL Server usa índices clusterizados (tabelas organizadas por índice) na chave primária por padrão. Índices filtrados Os índices filtrados fornecem pesquisas de alto desempenho em subconjuntos de dados no SQL Server. Coluna computada persistente No SQL Server esta coluna é computada a partir de uma expressão que pode usar outras colunas na mesma tabela. FileTable Dá suporte ao espaço de nomes de arquivos do Windows e à compatibilidade dos dados de arquivos armazenados no SQL Server com os aplicativos do Windows. Tipo de dado hierárquico Facilita o armazenamento e a consulta de dados hierárquicos no SQL Server XEvents Sistema geral de manipulação de eventos para SQL Server e Windows Server. Integração de CLR O CLR hospedado no Microsoft SQL Server (chamado de integração de CLR) permite a criação de procedimentos armazenados, disparadores, funções definidas pelo usuário, tipos definidos pelo usuário e agregados definidos pelo usuário no código gerenciado. Database Mail integrado Permite o envio de e-mails em massa a partir dos bancos de dados do SQL Server. Tabela 1: Comparação de recursos de mecanismo. 8 SQL Server 2012 comparado com o PostgreSQL 9 Recursos corporativos "Recursos corporativos" refere-se aos recursos avançados necessários em empresas de médio e grande porte. Esses recursos normalmente não são usados em empresas pequenas. Sem dúvida, o SQL Server 2012 se destaca nos recursos corporativos. A comparação dos recursos corporativos é mostrada na Tabela 2. Recurso Suporte a 64 bits 9 PostgreSQL 9 SQL Server 2012 Comentários Tanto o PostgreSQL quanto o SQL Server suportam 64 bits. Exibições particionadas distribuídas Método de acesso eficiente aos bancos de dados federados. Clustering de Failover O PostgreSQL não se integra ao sistema operacional para fornecer clustering de failover, mas é possível obter um certo nível de alta disponibilidade no uso de clustering em algumas plataformas UNIX. AlwaysOn O SQL Server suporta múltiplos servidores secundários ativos, tanto síncronos quanto assíncronos. Log Shipping Aplica as transações do log a outro servidor para aumentar a disponibilidade. Replicação O PostgreSQL suporta a replicação mestre/escravo com limitações. O SQL Server suporta replicações transacionais, de instantâneos e de mesclagem. Suporte a múltiplos dispositivos O SQL Server pode ser executado em dispositivos móveis. O PostgreSQL tem um consumo de memória (footprint) relativamente alto e não é portado especificamente para funcionar em dispositivos portáteis pequenos. Compactação avançada Compacta os dados para reduzir o tamanho do banco de dados e melhorar o desempenho das cargas de trabalho com muita E/S no SQL Server. Backups online Os backups podem ser realizados sem colocar o banco de dados offline. SQL Server 2012 comparado com o PostgreSQL 9 Suporte a SAN Processamento de eventos complexos Qualidade de dados Gerenciamento de dados mestres O SQL Server StreamInsight oferece recursos de processamento de eventos complexos. O SQL Server Data Quality Services permite corrigir, enriquecer, padronizar e eliminar a duplicação de dados com um método controlado pelo conhecimento. O SQL Server Master Data Services é uma solução para gerenciamento de dados mestres. Inclusão de memória e CPU a Quente No SQL Server é possível adicionar CPU e memória durante a execução. Alteração de esquemas online O SQL Server permite alterar esquemas do banco de dados durante a execução. Administrador de Recursos O SQL Server fornece limites inferiores e superiores de gerenciamento de recursos para consistências de desempenho. Tabela 2: Comparação de recursos corporativos. 10 É possível usar SAN nos dois produtos, mas o SQL Server tem suporte embutido para redes de área de armazenamento. SQL Server 2012 comparado com o PostgreSQL 9 Segurança A segurança é uma das principais preocupações de qualquer usuário. O SQL Server 2012 tem recursos de segurança mais avançados. A comparação dos recursos de segurança é mostrada na Tabela 3. Recurso PostgreSQL 9 SQL Server 2012 Comentários Suporte a Active Directory Ambos os produtos têm suporte a Active Directory com autenticação Kerberos. Baseado em função Os usuários podem ser agrupados segundo as funções que assumem no banco de dados. É possível, então, atribuir permissões a essas funções. Criptografia SSL Criptografia de conexões TCP/IP com o banco de dados para aumentar a segurança. Segurança de procedimentos armazenados Capacidade de aplicar permissões de segurança aos procedimentos armazenados. Segurança de tabelas Capacidade de aplicar permissões de segurança às tabelas. Segurança de exibições Capacidade de aplicar permissões de segurança às exibições. Auditoria O SQL Server tem recursos de auditoria abrangentes. Criptografia transparente de dados O SQL Server tem suporte para criptografia de E/S em tempo real e descriptografia de dados e arquivos de log. Server permite armazenar O SQL Gerenciamento centralizado de chaves Tabela 3: Comparação de recursos de segurança 11 chaves de criptografia em dispositivos de módulos de segurança de hardware. SQL Server 2012 comparado com o PostgreSQL 9 Ferramentas As ferramentas de um sistema de banco de dados ajudam a gerenciá-lo com facilidade e eficiência. O SQL Server tem muito mais ferramentas de banco de dados e se destaca na capacidade de gerenciar um ou mais SQL Servers. A comparação dos recursos de ferramentas é mostrada na Tabela 4. Recurso 12 PostgreSQL 9 SQL Server 2012 Comentários Administração centralizada A administração de um ou mais servidores é realizada em um só local centralizado. Depurador SQL integrado O depurador é integrado ao ambiente de desenvolvimento. Profiler Ferramenta para medir e monitorar o desempenho e a integridade do servidor. Ferramenta de consulta gráfica Ferramentas gráficas (GUI) para consultar o banco de dados. Orientador de otimização de banco de dados O SQL Server usa as cargas de trabalho atuais para determinar a melhor forma de otimizar o banco de dados. Repetição distribuída Ferramenta que reproduz o rastreamento capturado e simula cargas de trabalho de missão crítica em um ambiente de teste atualizado para avaliar o impacto das atualizações de hardware e sistema operacional. SQL Server 2012 comparado com o PostgreSQL 9 Recurso PostgreSQL 9 SQL Server 2012 Comentários Assistentes gráficos O SQL Server tem vários assistentes para orientar o usuário em tarefas administrativas. O PostgreSQL tem algumas caixas de diálogo que são chamadas de Assistentes. Monitor gráfico de atividades O PostgreSQL não tem uma ferramenta GUI nativa de monitoramento de desempenho. Servidores de Gerenciamento Central O PostgreSQL não tem a capacidade de executar instruções SQL ao mesmo tempo em grupos de servidores. Utilitário do SQL Server Gerencie o ambiente do SQL Server como um todo com resumos e dados detalhados sobre políticas de subutilização e super utilização para vários parâmetros de chave, tais como CPU e espaços de arquivo. Gerencie os servidores usando diretivas O Gerenciamento Baseado em Diretivas permite gerenciar uma ou mais instâncias do SQL Server com base em políticas abrangentes. Assistente para planejamento de manutenção O assistente para planejamento de manutenção do SQL Server cria um fluxo de trabalho com as tarefas necessárias para garantir a otimização, o backup regular e a ausência de consistências no banco de dados. Conexão de Administrador Dedicada O SQL Server permite que o administrador solucione os problemas nos bancos de dados sobrecarregados. Aplicativo da camada de dados O SQL Server pode empacotar aplicativos de banco de dados (esquemas, objetos e dados) em uma única unidade de implantação. Tabela 4: Comparação de recursos de ferramentas. 13 SQL Server 2012 comparado com o PostgreSQL 9 Data Warehouse, Business Intelligence e Big Data Data warehouse, Business Intelligence e Big Data constituem a capacidade de tomar decisões melhores nos negócios com base nos dados disponíveis. Os usuários estão sempre tentando identificar tendências nos dados. No entanto, podem existir tendências que o analista de negócios não sabe procurar. A capacidade de carregar dados de diversas fontes, processá-los e analisá-los é uma enorme vantagem do SQL Server. A Microsoft fez investimentos grandes em pesquisa e desenvolvimento nessa área, e o SQL Server 2012 oferece mais recursos desse tipo que o PostgreSQL 9. A comparação é mostrada na Tabela 5. Recurso PostgreSQL 9 SQL Server 2012 Comentários Índice columnstore in-memory xVelocity Oferece um desempenho de 10 a 100 vezes mais rápido nas consultas de data warehousing. Change Data Capture O SQL Server permite capturar inserções, atualizações e exclusões aplicadas às tabelas. Data Warehouse Alliance O SQL Server tem uma aliança de fornecedores de Data Warehousing. Arquiteturas de referência de data warehouse O SQL Server tem múltiplas arquiteturas de referência de data warehouse de vários fornecedores de hardware. Data Warehouse Appliances O SQL Server tem múltiplos appliances de data warehouse de vários fornecedores de hardware. Integration Services, também conhecido como ETL. Embora não tenha nenhuma ferramenta de ETL (extract, transform, and load - extração, transformação e carregamento), o PostgreSQL permite a importação de arquivos de texto. O SQL Server tem recursos de ETL abrangentes e robustos. Drivers de alta velocidade O SQL Server tem suporte para destinos Oracle e Teradata de alto desempenho. Analysis Services (OLAP) Capacidade de construir cubos de banco de dados OLAP, ROLAP e MOLAP. Data Mining O SQL Server tem suporte para algoritmos de data mining estruturados. Text Mining O SQL Server tem suporte para algoritmos de data mining de texto não estruturados. SQL Server English Query é a English Query 14 SQL Server 2012 comparado com o PostgreSQL 9 Recurso PostgreSQL 9 SQL Server 2012 Comentários capacidade de consultar o banco de dados usando uma sintaxe em inglês em vez da sintaxe SQL. Reporting Services O SQL Server tem uma solução de relatório gráfica para diversos tipos de usuários. PowerPivot O SQL Server tem uma integração profunda com o Microsoft Excel e permite a consulta e a visualização de dados em bancos de dados OLAP e OLTP. O SQL Server vem com adaptadores Hadoop para o processamento de Big Data. Suporte a Big Data Tabela 5: Comparação de recursos de Data Warehouse, Business Intelligence e Big Data. Suporte Suporte confiável é uma das principais razões para usar um software comercial e não um de código aberto. Os softwares open source podem ser difíceis de arquitetar e implementar sem suporte. Poucas empresas fornecem o mesmo nível de suporte da Microsoft. A comparação dos recursos de suporte é mostrada na Tabela 6. Recurso PostgreSQL 9 SQL Server 2012 Comentários Periódicos de terceiros Uma ampla variedade de periódicos está disponível para o SQL Server. Para o PostgreSQL, há uma quantidade limitada de periódicos. Treinamento em Sala de Aula O treinamento em sala de aula para o SQL Server é oferecido em centros de treinamento certificados. O treinamento em sala de aula disponível para o PostgreSQL é limitado. Pesquisa e desenvolvimento financiados por empresas O PostgreSQL solicita contribuições financeiras. Suporte por email Suporte via e-mail dos clientes. Suporte de ISP Suporte disponível em diversos hosters. 15 SQL Server 2012 comparado com o PostgreSQL 9 Recurso PostgreSQL 9 SQL Server 2012 Comentários Suporte a grupos de notícias Suporte disponível através de grupos de notícias. Suporte telefônico O SQL Server tem suporte disponível via telefone. Suporte do fornecedor de hardware O SQL Server tem suporte dos fornecedores de hardware certificados para executar o Windows e o SQL Server. Suporte de missão crítica A Microsoft oferece o Suporte Premier de Missão Crítica para o SQL Server. Tabela 6: Comparação de recursos de suporte. Conclusão O SQL Server se destaca em vários aspectos quando comparado ao PostgreSQL 9. Tem muito mais recursos que o PostgreSQL 9 nas categorias de mecanismo, recursos corporativos, segurança, ferramentas, data warehouse, business intelligence, big data e suporte. Portanto, o SQL Server é a escolha ideal para todos os aspectos dos negócios e todos os tipos de aplicativo, incluindo os de missão crítica. O download e a instalação dos softwares open source como o PostgreSQL 9 são gratuitos, mas os problemas inerentes a esses produtos podem elevar seu custo total de propriedade. Referências: Site do SQL Server: http://www.microsoft.com/brasil/sqlserver Site do PostgreSQL: http://www.postgresql.org/ 16