Esta palestra abordará conceitos e práticas sobre índices no PostgreSQL, incluindo: (1) a teoria por trás dos índices B-tree, (2) casos práticos como índices compostos e parciais, e (3) quando utilizá-los para obter melhor performance. Além disso, serão discutidos outros métodos de acesso como GiST, GIN, Hash e SP-GiST.
O documento discute três casos de migração de bancos de dados comerciais como Oracle para o banco de dados open source PostgreSQL, resultando em reduções significativas de custo de até 93%. Detalha os desafios técnicos e benefícios financeiros de cada caso.
O documento descreve a evolução do Oracle Database ao longo dos anos, incluindo novas funcionalidades em cada versão. Também discute como o trabalho do DBA mudou de administrar manaulmente bancos de dados individuais para gerenciar ambientes complexos de banco de dados, requerendo conhecimentos em várias tecnologias.
TechEd 2010: Escalando aplicações OLTP:Design de aplicação e considerações pa...Fabrício Catae
O documento discute considerações importantes para o hardware e software na escalabilidade de aplicações OLTP no SQL Server. Aborda tópicos como planejamento de capacidade de hardware, processador, memória, disco e rede, além de instâncias e bancos de dados, índices, cache e paralelismo no SQL Server.
O documento apresenta a arquitetura de memória do PostgreSQL, discutindo como os dados são alocados e armazenados na memória e como a memória é dividida e configurada entre os subsistemas. É apresentada a hierarquia de memória do sistema e como os dados são carregados da memória secundária para a memória principal.
Palestra apresenta no PGDay Campinas 2014, apresentando o programa PGAnalytics.
Palestra apresentada por Matheus Espanhol, Matheus Oliveira e Vinícius Schmidt
O documento discute sobre otimização de desempenho em bancos de dados MySQL. Aborda tópicos como indexação de tabelas, particionamento de tabelas e otimização de consultas para melhorar a performance, como criar índices para campos frequentemente usados em consultas e usar o menor tipo de dados possível para economizar espaço.
1) O documento discute o processo de ETL para o caso da empresa World Class Movies, incluindo o desenvolvimento de um modelo de dados em estrela e a automação do processo de extração, transformação e carregamento de dados.
2) São apresentados exemplos de como carregar as dimensões de data, hora e demografia nos dados, bem como a execução remota de transformações para escalabilidade.
3) A automação do ETL é discutida por meio da execução de transformações e jobs via linha de comando e em servidores remotos para disponibilidade e desempen
O documento discute três casos de migração de bancos de dados comerciais como Oracle para o banco de dados open source PostgreSQL, resultando em reduções significativas de custo de até 93%. Detalha os desafios técnicos e benefícios financeiros de cada caso.
O documento descreve a evolução do Oracle Database ao longo dos anos, incluindo novas funcionalidades em cada versão. Também discute como o trabalho do DBA mudou de administrar manaulmente bancos de dados individuais para gerenciar ambientes complexos de banco de dados, requerendo conhecimentos em várias tecnologias.
TechEd 2010: Escalando aplicações OLTP:Design de aplicação e considerações pa...Fabrício Catae
O documento discute considerações importantes para o hardware e software na escalabilidade de aplicações OLTP no SQL Server. Aborda tópicos como planejamento de capacidade de hardware, processador, memória, disco e rede, além de instâncias e bancos de dados, índices, cache e paralelismo no SQL Server.
O documento apresenta a arquitetura de memória do PostgreSQL, discutindo como os dados são alocados e armazenados na memória e como a memória é dividida e configurada entre os subsistemas. É apresentada a hierarquia de memória do sistema e como os dados são carregados da memória secundária para a memória principal.
Palestra apresenta no PGDay Campinas 2014, apresentando o programa PGAnalytics.
Palestra apresentada por Matheus Espanhol, Matheus Oliveira e Vinícius Schmidt
O documento discute sobre otimização de desempenho em bancos de dados MySQL. Aborda tópicos como indexação de tabelas, particionamento de tabelas e otimização de consultas para melhorar a performance, como criar índices para campos frequentemente usados em consultas e usar o menor tipo de dados possível para economizar espaço.
1) O documento discute o processo de ETL para o caso da empresa World Class Movies, incluindo o desenvolvimento de um modelo de dados em estrela e a automação do processo de extração, transformação e carregamento de dados.
2) São apresentados exemplos de como carregar as dimensões de data, hora e demografia nos dados, bem como a execução remota de transformações para escalabilidade.
3) A automação do ETL é discutida por meio da execução de transformações e jobs via linha de comando e em servidores remotos para disponibilidade e desempen
O documento discute o Big Data, definindo seus conceitos principais como Volume, Velocidade, Variedade, Veracidade e Valor. Também aborda as ferramentas Hadoop e Cassandra, explicando o que são, suas características e como instalá-las.
O documento discute melhorias de performance no MySQL 5.6, incluindo: (1) melhorias no otimizador para lidar com subqueries e ordenação de arquivos; (2) novas funcionalidades como thread pool plug-in e performance schema; (3) dicas de tuning do servidor MySQL, como configuração de hardware e variáveis.
Este documento discute o PostgreSQL, incluindo sua instalação, definição de dados, manipulação de dados e funções. Aborda tópicos como criação de bancos de dados, esquemas, tabelas e campos, além de consultas, funções internas e triggers.
O documento fornece um resumo das principais características e novidades das versões 7.X, 8.0, 8.3 e 8.4 do PostgreSQL, incluindo detalhes sobre instalação, configuração e uso de recursos como funções PL/pgSQL, gatilhos, domínios e replicação.
Pentaho Data Mining - FTSL - Fórum de Tecnologia de Software Livre - Serpro -...Marcos Vinicius Fidelis
O documento descreve Marcos Vinicius Fidelis, professor e analista de informática que pesquisa e usa o Pentaho Data Mining (anteriormente conhecido como WEKA) desde 1999. Ele também é entusiasta de software livre e código aberto.
O documento descreve uma palestra sobre a utilização da ferramenta Pentaho Data Mining para realizar análise preditiva em dados de e-commerce. O palestrante apresenta casos de uso bem-sucedidos e mal-sucedidos de mineração de dados em empresas de comércio eletrônico e discute as vantagens da personalização de recomendações para os clientes. Ele também fornece uma introdução aos conceitos e processos básicos de mineração de dados.
Abordagem criativa sobre o ecossistema hadoop
No atual mundo captalista, M Bison, dono do maior e-commerce mundial chamado Shadaloo, decide analisar o perfil de todos os seus clientes; não apenas mostrando os dados comuns do BI, mas analisar também:
- Dados de TODOS os sistemas Legados
- Dados de Navegação
- SAC e Midias Sociais.
Dessa forma ele poderia:
- Criar mecanismo de ofertas personalizadas
- Retenção de clientes que realizam reclamações no SAC
- Identificar relação de entre reclamações no SAC e mídias sociais.
- Analisar fluxo de navegação e proporcionar navegação personalizada por tipo de clientes
Busca de Documentos (Marilia TechDay 2011)Fabrício Catae
O documento apresenta uma agenda para uma conferência sobre busca de documentos e otimização de índices em bancos de dados SQL Server. A primeira parte discute linguagem natural, semântica e aprendizado de máquina para busca de documentos. A segunda parte fala sobre armazenamento de dados, tipos de índices e técnicas para "lipoaspiração" ou otimização de índices para melhorar o desempenho.
O documento discute a evolução dos sistemas corporativos ao longo das décadas, da separação de dados nas décadas de 60-70 à separação de processos e regras a partir da década de 90. Também apresenta conceitos de regras, origens de regras, ferramentas como BRMS e características do Drools como implementação declarativa de regras e diferentes formas de definição de regras.
1. Sistemas de informação geográfica permitem criar consultas interativas, analisar dados espaciais e editar mapas, apresentando resultados visualmente.
2. Camadas de dados espaciais podem incluir hidrografia, rodovias, zonas agrícolas, setores municipais e redes de serviços.
3. Objetos espaciais podem ser representados geometricamente como pontos, linhas, polígonos e coleções mistas.
Jaime Casanova - Domando a la bestia ReplicaciónPGDay Campinas
Muestra como usar la herramienta "repmgr" para administrar un cluster de replicación en PostgreSQL. Desde crear nodos, hasta configurar un procedimiento simple de Failover automático. También incluirá algunas ideas con respecto a la nueva tecnología de 2ndQuadrant: BDR
--
Palestra apresentada por Jaime Casanova no PGDay Campinas 2014
1. O documento discute as capacidades do PostgreSQL como banco de dados NoSQL, incluindo sua habilidade de atuar como banco de dados chave-valor, documental e colunar através de extensões como HSTORE, JSON/JSONB e FDW.
2. Apresenta a história do PostgreSQL desde sua criação na Universidade da Califórnia em Berkeley até as versões mais recentes.
3. Discutem outras extensões e ferramentas como PgREST que aumentam ainda mais as capacidades do PostgreSQL.
PGDay Campinas 2013 - Mineração de Dados com MADlibPGDay Campinas
1) O documento apresenta Everton Gago, um pesquisador que estuda novos métodos de aprendizado de máquina.
2) É discutido a importância da mineração de dados e algumas técnicas como padrão associativo, agrupamento, predição/classificação.
3) O framework MADLib é apresentado como uma ferramenta fácil de usar para aplicar essas técnicas em bancos de dados PostgreSQL/Greenplum de forma paralela.
Gerenciamento de Backup e Recovery com o BarmanCaio Oliveira
O documento discute o uso do Barman para gerenciar backup e recuperação de bancos de dados PostgreSQL. O Barman fornece recursos como backup catalogado, diferencial e políticas de retenção para garantir a integridade e recuperabilidade dos dados. O documento enfatiza a importância de testar regularmente os procedimentos de recuperação para garantir sua eficácia.
PGDay Campinas 2013 - Window Function e CTE – SurpreendentePGDay Campinas
O documento discute Window Functions e Common Table Expressions (CTE) em SQL. O palestrante explica que essas funcionalidades são pouco conhecidas mas úteis para simplificar consultas complexas. Ele apresenta exemplos de como usar CTEs para escrever subconsultas e Window Functions para aplicar funções agregadas sobre grupos de linhas.
O documento discute funções de similaridade e distância entre strings adaptadas para o português brasileiro. Apresenta algoritmos fonéticos como Soundex e Metaphone, e discute a adaptação destes para o português, levando em conta a fonologia da língua. Testes realizados mostraram que a função br_metaphone teve alta precisão, tornando-se eficiente para lidar com erros de digitação. Adaptações são necessárias para que funções de similaridade considerem particularidades da língua portuguesa.
CASE: O PostgreSQL em BI: Milhares de operações diárias consolidadas em "near...PGDay Campinas
O documento descreve um caso de uso do PostgreSQL em um sistema de business intelligence (BI) para uma rede de varejo. O sistema consolida milhares de operações diárias de várias lojas em tempo quase real para fornecer informações de alto nível para tomada de decisões. O PostgreSQL foi escolhido devido ao seu desempenho e recursos avançados. O OBJECTMMRS é usado para integrar dados de diferentes sistemas e garantir a consolidação em tempo quase real. O sistema resultou em informações precisas disponíveis para consulta interna e externa.
PGDay Campinas 2013 - PL/pg…ETL – Transformação de dados para DW e BI usando ...PGDay Campinas
"PL/pg…ETL – Transformação de dados para DW e BI usando linguagem procedural"
- Utilização do pl/pgsql para transformação de dados.
– Motivação: quando e porque fazer ETL via linguagem procedural.
– Como fazer uma carga simples – Loop X SQL complexo.
– Como fazer uma carga com transformação.
– Como transpor linhas e colunas.
– Carregar tabelas do zero.
– Desempenho – seleção da melhor cardinalidade.
– Incrementar tabelas com dados existentes.
– Dados de outras fontes – FDW.
PALESTRANTE
Flavio Henrique Araque Gurgel é consultor e instrutor de bancos de dados da 4Linux, engenheiro eletricista pela Universidade Federal do Paraná (UFPR). Atua em projetos de dimensionamento, tuning de bases de dados e no suporte aos clientes. Atualmente, é líder da área de projetos e consultoria da empresa.
--
Palestra apresentada no PGDay Campinas 2013
Setting up a GeoServer can sometimes be deceptively simple. However, going from proof-of-concept to production requires a number of steps to be taken in order to optimize the server in terms of availability, performance and scalability. The presentation will show how to get from a basic setup to a battle-ready, rock-solid installation.
1) O documento apresenta as principais funcionalidades do Postgres Plus Advanced Server 9.4 e do Postgres Enterprise Manager 5.0. 2) O PPAS 9.4 inclui novos recursos como gerenciamento de recursos CPU e IO, tabelas hash particionadas e melhorias no EDB*Loader, enquanto o PEM 5.0 fornece recursos avançados de monitoramento e gerenciamento. 3) Apresenta casos de uso bem-sucedidos com essas ferramentas e destaca os benefícios do controle de alertas e análise de logs no PEM.
PGDay Campinas 2013 - Implementando o PostgreSQL de maneira escalável e com a...PGDay Campinas
“Implementando o PostgreSQL de maneira escalável e com alta disponibilidade na nuvem da AWS”
Amazon Web Services (AWS) é uma plataforma de cloud computing flexível, elástica e baixo custo. Utilizar PostgreSQL no Amazon Elastic Compute Cloud (EC2) é ideal para quem está acostumado a operar o banco e precisa da flexibilidade que a nuvem traz. Nesta palestra vamos dar dicas e boas práticas de arquitetura para implementar o PostgreSQL na nuvem de uma maneira escalável, pensando também em durabilidade, persistência, alta disponibilidade e tolerança a falhas.
Eduardo HoraiPalestrante: Eduardo Horai é um dos arquitetos de soluções da Amazon Web Services (AWS) com foco na América Latina. Entre suas funções está a de ajudar clientes e parceiros a desenvolver arquiteturas escaláveis, com alta disponibilidade e tolerante a falhas sobre a nuvem da AWS. Ele é graduado em Ciências da Computação na Unicamp e pós em Inovação e Empreendedorismo na Vlerick Management School, na Bélgica.
--
Palestra apresentada no PGDay Campinas 2013
O documento discute o Big Data, definindo seus conceitos principais como Volume, Velocidade, Variedade, Veracidade e Valor. Também aborda as ferramentas Hadoop e Cassandra, explicando o que são, suas características e como instalá-las.
O documento discute melhorias de performance no MySQL 5.6, incluindo: (1) melhorias no otimizador para lidar com subqueries e ordenação de arquivos; (2) novas funcionalidades como thread pool plug-in e performance schema; (3) dicas de tuning do servidor MySQL, como configuração de hardware e variáveis.
Este documento discute o PostgreSQL, incluindo sua instalação, definição de dados, manipulação de dados e funções. Aborda tópicos como criação de bancos de dados, esquemas, tabelas e campos, além de consultas, funções internas e triggers.
O documento fornece um resumo das principais características e novidades das versões 7.X, 8.0, 8.3 e 8.4 do PostgreSQL, incluindo detalhes sobre instalação, configuração e uso de recursos como funções PL/pgSQL, gatilhos, domínios e replicação.
Pentaho Data Mining - FTSL - Fórum de Tecnologia de Software Livre - Serpro -...Marcos Vinicius Fidelis
O documento descreve Marcos Vinicius Fidelis, professor e analista de informática que pesquisa e usa o Pentaho Data Mining (anteriormente conhecido como WEKA) desde 1999. Ele também é entusiasta de software livre e código aberto.
O documento descreve uma palestra sobre a utilização da ferramenta Pentaho Data Mining para realizar análise preditiva em dados de e-commerce. O palestrante apresenta casos de uso bem-sucedidos e mal-sucedidos de mineração de dados em empresas de comércio eletrônico e discute as vantagens da personalização de recomendações para os clientes. Ele também fornece uma introdução aos conceitos e processos básicos de mineração de dados.
Abordagem criativa sobre o ecossistema hadoop
No atual mundo captalista, M Bison, dono do maior e-commerce mundial chamado Shadaloo, decide analisar o perfil de todos os seus clientes; não apenas mostrando os dados comuns do BI, mas analisar também:
- Dados de TODOS os sistemas Legados
- Dados de Navegação
- SAC e Midias Sociais.
Dessa forma ele poderia:
- Criar mecanismo de ofertas personalizadas
- Retenção de clientes que realizam reclamações no SAC
- Identificar relação de entre reclamações no SAC e mídias sociais.
- Analisar fluxo de navegação e proporcionar navegação personalizada por tipo de clientes
Busca de Documentos (Marilia TechDay 2011)Fabrício Catae
O documento apresenta uma agenda para uma conferência sobre busca de documentos e otimização de índices em bancos de dados SQL Server. A primeira parte discute linguagem natural, semântica e aprendizado de máquina para busca de documentos. A segunda parte fala sobre armazenamento de dados, tipos de índices e técnicas para "lipoaspiração" ou otimização de índices para melhorar o desempenho.
O documento discute a evolução dos sistemas corporativos ao longo das décadas, da separação de dados nas décadas de 60-70 à separação de processos e regras a partir da década de 90. Também apresenta conceitos de regras, origens de regras, ferramentas como BRMS e características do Drools como implementação declarativa de regras e diferentes formas de definição de regras.
1. Sistemas de informação geográfica permitem criar consultas interativas, analisar dados espaciais e editar mapas, apresentando resultados visualmente.
2. Camadas de dados espaciais podem incluir hidrografia, rodovias, zonas agrícolas, setores municipais e redes de serviços.
3. Objetos espaciais podem ser representados geometricamente como pontos, linhas, polígonos e coleções mistas.
Jaime Casanova - Domando a la bestia ReplicaciónPGDay Campinas
Muestra como usar la herramienta "repmgr" para administrar un cluster de replicación en PostgreSQL. Desde crear nodos, hasta configurar un procedimiento simple de Failover automático. También incluirá algunas ideas con respecto a la nueva tecnología de 2ndQuadrant: BDR
--
Palestra apresentada por Jaime Casanova no PGDay Campinas 2014
1. O documento discute as capacidades do PostgreSQL como banco de dados NoSQL, incluindo sua habilidade de atuar como banco de dados chave-valor, documental e colunar através de extensões como HSTORE, JSON/JSONB e FDW.
2. Apresenta a história do PostgreSQL desde sua criação na Universidade da Califórnia em Berkeley até as versões mais recentes.
3. Discutem outras extensões e ferramentas como PgREST que aumentam ainda mais as capacidades do PostgreSQL.
PGDay Campinas 2013 - Mineração de Dados com MADlibPGDay Campinas
1) O documento apresenta Everton Gago, um pesquisador que estuda novos métodos de aprendizado de máquina.
2) É discutido a importância da mineração de dados e algumas técnicas como padrão associativo, agrupamento, predição/classificação.
3) O framework MADLib é apresentado como uma ferramenta fácil de usar para aplicar essas técnicas em bancos de dados PostgreSQL/Greenplum de forma paralela.
Gerenciamento de Backup e Recovery com o BarmanCaio Oliveira
O documento discute o uso do Barman para gerenciar backup e recuperação de bancos de dados PostgreSQL. O Barman fornece recursos como backup catalogado, diferencial e políticas de retenção para garantir a integridade e recuperabilidade dos dados. O documento enfatiza a importância de testar regularmente os procedimentos de recuperação para garantir sua eficácia.
PGDay Campinas 2013 - Window Function e CTE – SurpreendentePGDay Campinas
O documento discute Window Functions e Common Table Expressions (CTE) em SQL. O palestrante explica que essas funcionalidades são pouco conhecidas mas úteis para simplificar consultas complexas. Ele apresenta exemplos de como usar CTEs para escrever subconsultas e Window Functions para aplicar funções agregadas sobre grupos de linhas.
O documento discute funções de similaridade e distância entre strings adaptadas para o português brasileiro. Apresenta algoritmos fonéticos como Soundex e Metaphone, e discute a adaptação destes para o português, levando em conta a fonologia da língua. Testes realizados mostraram que a função br_metaphone teve alta precisão, tornando-se eficiente para lidar com erros de digitação. Adaptações são necessárias para que funções de similaridade considerem particularidades da língua portuguesa.
CASE: O PostgreSQL em BI: Milhares de operações diárias consolidadas em "near...PGDay Campinas
O documento descreve um caso de uso do PostgreSQL em um sistema de business intelligence (BI) para uma rede de varejo. O sistema consolida milhares de operações diárias de várias lojas em tempo quase real para fornecer informações de alto nível para tomada de decisões. O PostgreSQL foi escolhido devido ao seu desempenho e recursos avançados. O OBJECTMMRS é usado para integrar dados de diferentes sistemas e garantir a consolidação em tempo quase real. O sistema resultou em informações precisas disponíveis para consulta interna e externa.
PGDay Campinas 2013 - PL/pg…ETL – Transformação de dados para DW e BI usando ...PGDay Campinas
"PL/pg…ETL – Transformação de dados para DW e BI usando linguagem procedural"
- Utilização do pl/pgsql para transformação de dados.
– Motivação: quando e porque fazer ETL via linguagem procedural.
– Como fazer uma carga simples – Loop X SQL complexo.
– Como fazer uma carga com transformação.
– Como transpor linhas e colunas.
– Carregar tabelas do zero.
– Desempenho – seleção da melhor cardinalidade.
– Incrementar tabelas com dados existentes.
– Dados de outras fontes – FDW.
PALESTRANTE
Flavio Henrique Araque Gurgel é consultor e instrutor de bancos de dados da 4Linux, engenheiro eletricista pela Universidade Federal do Paraná (UFPR). Atua em projetos de dimensionamento, tuning de bases de dados e no suporte aos clientes. Atualmente, é líder da área de projetos e consultoria da empresa.
--
Palestra apresentada no PGDay Campinas 2013
Setting up a GeoServer can sometimes be deceptively simple. However, going from proof-of-concept to production requires a number of steps to be taken in order to optimize the server in terms of availability, performance and scalability. The presentation will show how to get from a basic setup to a battle-ready, rock-solid installation.
1) O documento apresenta as principais funcionalidades do Postgres Plus Advanced Server 9.4 e do Postgres Enterprise Manager 5.0. 2) O PPAS 9.4 inclui novos recursos como gerenciamento de recursos CPU e IO, tabelas hash particionadas e melhorias no EDB*Loader, enquanto o PEM 5.0 fornece recursos avançados de monitoramento e gerenciamento. 3) Apresenta casos de uso bem-sucedidos com essas ferramentas e destaca os benefícios do controle de alertas e análise de logs no PEM.
PGDay Campinas 2013 - Implementando o PostgreSQL de maneira escalável e com a...PGDay Campinas
“Implementando o PostgreSQL de maneira escalável e com alta disponibilidade na nuvem da AWS”
Amazon Web Services (AWS) é uma plataforma de cloud computing flexível, elástica e baixo custo. Utilizar PostgreSQL no Amazon Elastic Compute Cloud (EC2) é ideal para quem está acostumado a operar o banco e precisa da flexibilidade que a nuvem traz. Nesta palestra vamos dar dicas e boas práticas de arquitetura para implementar o PostgreSQL na nuvem de uma maneira escalável, pensando também em durabilidade, persistência, alta disponibilidade e tolerança a falhas.
Eduardo HoraiPalestrante: Eduardo Horai é um dos arquitetos de soluções da Amazon Web Services (AWS) com foco na América Latina. Entre suas funções está a de ajudar clientes e parceiros a desenvolver arquiteturas escaláveis, com alta disponibilidade e tolerante a falhas sobre a nuvem da AWS. Ele é graduado em Ciências da Computação na Unicamp e pós em Inovação e Empreendedorismo na Vlerick Management School, na Bélgica.
--
Palestra apresentada no PGDay Campinas 2013
Setting up a GeoServer can sometimes be deceptively simple. However, going from proof of concept to production requires a number of steps to be taken in order to optimize the server in terms of availability, performance and scalability. The presentation will show how to get from a basic set up to a battle ready, rock solid installation by showing the ropes an advanced user already mastered.
PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do ParanáPGDay Campinas
"CASE: PostgreSQL no Tribunal de Justiça do Paraná"
Caso de sucesso na utilização do PostgreSQL no Tribunal de Justiça do Paraná. A palestra irá abordar as soluções utilizadas para atender a demanda dos sistemas de missão crítica, em especial o sistema PROJUDI. O PROJUDI é um software de tramitação de processos judiciais originalmente criado pelo Conselho Nacional de Justiça (CNJ) e utilizado em vários estados do Brasil. O processo judicial digital, também chamado de processo virtual ou de processo eletrônico, tem como premissa, gerenciar e controlar os trâmites de processos judiciais nos Tribunais de forma eletrônica, reduzindo tempo e custos.
PALESTRANTE:
- FABIO CAIUT
Fábio Caiut trabalha com TI há 13 anos, atuando principalmente em Infraestrutura e Suporte ao Desenvolvimento. É DBA PostgreSQL há 3 anos no Tribunal de Justiça do Paraná. Tem experiência como Desenvolvedor Lotus, Microsoft e DBA SQL Server. Formado em Ciência da Computação na UFPR e Especialista em Banco de Dados pela PUC-PR.
- MATHEUS ESPANHOL
Matheus é consultor de banco de dados especialista em PostgreSQL, presta serviços para a Dextra Sistemas na área de consultoria, suporte e treinamento. Trabalha há oito anos com ambientes de banco de dados opensource, tendo dedicado o último ano a ferramenta PgAnalytics.
--
Palestra apresentada no PGDay Campinas 2013 por Fabio Caiut e Matheus Espanhol
O documento descreve a arquitetura e uso do Postgres-XC, um sistema de banco de dados distribuído e de alta disponibilidade baseado no PostgreSQL. O Postgres-XC permite escalabilidade horizontal de leitura e escrita através de um cluster com múltiplos nós mestres e replicação de dados. Ele também discute implementações do Postgres-XC na nuvem, incluindo desafios de alta disponibilidade e distribuição de dados.
O documento apresenta uma palestra sobre DevOps e infraestrutura ágil com PostgreSQL. A apresentação será de 45 minutos com 83 slides e abordará tópicos como entendendo DevOps, infraestrutura ágil, automação, provisionamento e demonstrações. Haverá tempo no final para perguntas.
Análise de performance usando as estatísticas do PostgreSQLMatheus de Oliveira
Essa palestra desmitifica as estatísticas do PostgreSQL abordando todo o sistema de coleta de dados estatísticos, as tabelas disponíveis atualmente, conceitos, técnicas e exemplos de consultas úteis para performance e monitoramento do PostgreSQL.
O documento descreve o processo de desenvolvimento de um novo sistema de registro de horas de projetos, incluindo pesquisas com usuários, criação de personas, testes de usabilidade e resultados da satisfação dos usuários com a nova proposta.
Many people doesn't know about passwords stored in database...
What's the right and safe way to do?
OK! In this short presentation teaches about this.
The pgcrypto extension provides functions to ease hashing and salting passwords.
A Python script was used as example.
O documento apresenta informações sobre uma organização que apoia eventos sobre In-Memory OLTP no SQL Server. A agenda inclui tópicos como conceitos, arquitetura, demonstrações e casos reais de implementação. Dois palestrantes são apresentados com suas credenciais e contatos.
O documento descreve o SQLite, um banco de dados SQL leve e open source. Ele define o SQLite como uma biblioteca que armazena e recupera dados diretamente de um arquivo no disco, sem necessidade de configuração ou servidor. O documento também discute a história, características, instalação e uso do SQLite.
Este documento apresenta um módulo sobre linguagem SQL. Ele inclui tópicos como SQL básico, consultas complexas, triggers, views e modificações de esquema. O objetivo é apresentar os principais conceitos e construções de SQL e como as principais bases de dados abordam o assunto. 20% das questões de banco de dados em concursos envolvem SQL.
SQL Server ES - Escrevendo queries rápidas (Performance/Query Tuning)Dirceu Resende
Palestra de Performance Tuning do do SQL Server ES - 10/06/2017 (Dirceu Resende)
Veja o post completo em: https://www.dirceuresende.com/blog/como-foi-o-2o-encontro-do-sql-server-es/
O documento apresenta uma introdução sobre SQL, incluindo sua história e partes. Descreve os comandos SQL para definição de dados, como CREATE, DROP e ALTER. Explica integridade de chaves, referencial e de domínio. Apresenta tipos de dados e índices. Por fim, solicita um exercício para criação de tabelas relacionais.
Melhorando o desempenho de suas consultas no MySqlHelder Lopes
Este documento fornece dicas para melhorar o desempenho de consultas no MySQL, explicando como analisar o desempenho de consultas existentes, criar índices, otimizar consultas SQL e melhorar operações como inserts, updates e deletes. Recomenda analisar tabelas com ANALYZE TABLE, usar índices apropriados, evitar varreduras completas e melhorar a modelagem da base de dados quando possível.
Oracle para PostgreSQL: Conseguir migrar e não parar UTIFernando Ike
O documento fornece diretrizes e considerações sobre a migração de bancos de dados Oracle para PostgreSQL, abordando diferenças de sintaxe, tipos de dados, funções, segurança e outras funcionalidades entre os sistemas de gerenciamento de bancos de dados. Ele também discute ferramentas como Ora2pg e DBI-Link que podem auxiliar no processo de migração.
Construindo ERP's com PHP: Desafios em design, manutenção segurança e perf...Pablo Dall'Oglio
O documento discute os desafios de construir ERPs com PHP, abordando tópicos como modelagem, construção, desempenho e segurança. O autor descreve sua experiência com diferentes tecnologias ao longo dos anos e apresenta dicas sobre concepção, modelagem orientada a domínio, simplificação do ORM e manutenção de baixo acoplamento entre módulos.
O documento discute como melhorar o desempenho do SQL Server abordando tópicos como: 1) otimizar o design do banco de dados escolhendo tipos de dados e normalização apropriados; 2) configurar corretamente o SQL Server; 3) usar ferramentas como Profiler, DTA e DMVs para identificar e corrigir problemas de consulta e índices. O documento enfatiza a importância de considerar a performance desde o início do desenvolvimento.
O documento discute as funcionalidades do In-Memory OLTP no SQL Server 2016, incluindo: 1) Armazenamento de dados diretamente na memória ao invés de páginas; 2) Novos tipos de índices como Hash e Range para melhor desempenho; 3) Procedures compiladas nativamente para execução em nível de máquina.
(1) O documento lista 10 razões para atualizar para a versão 10 do DB2 z/OS, incluindo melhorias de desempenho, segurança e produtividade. (2) Alguns clientes americanos pularam diretamente da versão 8 para a versão 10 sem problemas, mas migrar da versão 8 para a versão 9 primeiro pode ser uma opção mais segura. (3) O centenário da IBM é comemorado com vídeos no YouTube mostrando como a empresa ajudou o mundo a crescer com a frase "PENSE!".
Estripando o Elefante - (Trabalhando com extensões no PostgreSQL)Dickson S. Guedes
O documento discute como dividir aplicações complexas em módulos menores utilizando extensões do PostgreSQL. Isso permite melhor modularidade, reutilização de código e gerenciamento de versões. O exemplo mostra como criar validadores de CPF e e-mail como uma extensão, permitindo validações no banco de dados de forma centralizada.
O documento fornece dicas sobre boas práticas para projetos de banco de dados, incluindo: (1) separar aplicações e bancos de dados em servidores distintos; (2) investir tempo em modelagem e projeto; e (3) usar nomes padronizados e tipos de dados apropriados para objetos no banco de dados.
Boas práticas no desenvolvimento de softwareFelipe
Um pequeno conjunto de boas práticas para o desenvolvimento de software. O conteúdo é recomendado para desenvolvedores iniciantes ou intermediários. O foco é em desenvolvimento Web, baseado em Sistemas de Informação, com uma linguagem fracamente tipada. Os exemplos são dados na linguagem PHP.
Oficina apresentada na Escola Reginal de Banco de Dados em 2018. Essa oficina apresentou como combinar Spark, VoltDB e Elasticsearch, três tecnologias que materializam os conceitos de Big Data para alcançar velocidade de processamento para um grande volume de dados. Usando um exemplo em informação geográficas, o participante aprenderá como processar dados em tempo real usando Apache Spark, criar visualizações através do Elasticsearch e disponibilizar esses dados de forma escalável em uma ferramenta NewSQL usando o VoltDB.
O documento discute as funcionalidades do PostgreSQL que o tornam adequado para Big Data, como tipos de dados não estruturados, índices eficientes, particionamento, paralelismo de consultas, full text search, window functions e foreign data wrappers. O PostgreSQL vem adicionando novas funcionalidades para melhor atender as necessidades de Big Data e está acompanhando a evolução das tecnologias.
O documento descreve recursos avançados de bancos de dados relacionais como DDL e DML. Na parte I, é relembrado o DDL e apresentadas novidades como criação de domínios, índices, gatilhos, procedimentos, funções e visões. Na parte II, o foco é o DML, relembrando consultas SQL e apresentando cláusulas como BETWEEN, JOIN, GROUP BY e funções agregadas.
O documento apresenta as principais dicas e boas práticas para obter alto desempenho em aplicações PHP com banco de dados MySQL, abordando tópicos como projeto físico, erros comuns, utilização de índices, consultas, partição de dados e replicação. O palestrante também disponibiliza seus contatos e sites com mais informações sobre o tema.
3. Agenda 2
▪ “Esta palestra demonstrará conceitos e práticas acerca da utilização dos índices
(principalmente btree) com o PostgreSQL.
▪ Abordaremos a teoria básica por trás do mecanismo de índices b-tree.
▪ Além disso, veremos alguns casos práticos como índices compostos, índices
parciais e quando utilizá-los para obter melhor performance.”
8. Como isso se dá na prática? Observando com page-inspect contrib
teste_pgday2015=#
select
count(*),type
from (select gs.i , t.*
from (select generate_series(1,2744) as i) as gs,
bt_page_stats('stuff_g_idx',i) as t
) as c
group by type;
-- tabela com 1,000,000 de linhas
Count Type
Folha 2733 L
Intermediário 10 I
Raíz 1 R
9. Nos índices, são os itens dos nós-folha que apontam para as
tuplas nas tabelas (via coluna interna de sistema ctid)
▪ Um nó está sempre ordenado
▪ Cada item de um nó folha aponta
para o registro correspondente na
tabela (ctid)
▪ Os itens dos nós intermediários
apontam para os nós (à “esquerda”
se forem menores, à “direita” se
forem maiores).
▪ Sempre há um nó raiz com alguns
itens, geralmente apontando para
nós intermediários
11. Vamos nos lembrar que o PostgreSQL é OpenSource?
▪ Como as coisas funcionam
dependem do quanto você está
disposto a conhecer os mecanismos
que afetam o processo
▪ complexidade
▪ concorrência em i/o (r/w)
▪ comunidade
▪ Saber inglês e C é básico?
▪ Aprender usando
13. Duh!!!
▪ DBA, it is not your fault!
▪ Developers, let’s try not to blame
each other, it’s not your fault
either.
▪ We are in the same boat..
▪ Why not work together?
▪ Não dependa do DBA para indexar
o seu banco!
▪ Slide from: http://www.slideshare.net/MarkusWinand/indexes-neglectedperformanceallrounder
14. It’s a dev task!
Queries
• Sabem as regras
do negócio
• Registram
regras e dados
do negócio
• Acessam dados
Data
Manipulation
• How does PG
access your
data?
• Deve ser
eficiente e
efetiva
Indexes
• Considere os
dados nas
tabelas
• Considere como
são feitas as
buscas
Tests &
Monitoring
• auto_explain
• pgAnalytics ;-)
• pgBadger
• Teste em
produção?
15. Como vejo os índices no PostgreSQL?
teste_pgday2015=# d+ stuff
Table "public.stuff"
Column | Type
--------+---------+---
a | text |
b | text |
c | integer |
d | integer |
e | integer |
f | integer |
g | integer |
Indexes:
"stuff_a_idx" btree (a) WITH
(fillfactor=80)
"stuff_b_idx" btree (b)
"stuff_c_idx" btree (c)
"stuff_d_idx" btree (d)
"stuff_e_idx" btree (e)
"stuff_f_idx" btree (f)
"stuff_g_a_b_idx" btree (g, a, b)
"stuff_g_idx" btree (g)
16. E os planos de acesso (EXPLAIN) ?
http://www.postgresql.org/docs/9.4/static/using-explain.html
▪ Execute Analyze nas tabelas
primeiro para atualizar as
estatísticas!
▪ Confira os planos de acesso!
▪ RTFM: using-explain!
▪ (again) Why not work together?
17. EXPLAIN - Exemplo 1
teste_pgday2015=# explain analyze select count(*) from stuff where c < 999990;
QUERY PLAN
---------------------------------------------------------------------------------
Aggregate (cost=43046.97..43046.99 rows=1 width=0) (actual time=20302.453..20302.454
rows=1 loops=1)
-> Seq Scan on stuff (cost=0.00..40547.00 rows=999990 width=0) (actual time=0.008..
19200.425 rows=999989 loops=1)
Filter: (c < 999990)
Rows Removed by Filter: 11
Planning time: 0.161 ms
Execution time: 20302.504 ms
(6 rows)
18. EXPLAIN - Exemplo 2
teste_pgday2015=# explain analyze select count(*) from stuff where c > 999990;
QUERY PLAN
-----------------------------------------------------------------------------------
Aggregate (cost=4.62..4.63 rows=1 width=0) (actual time=0.040..0.041 rows=1 loops=1)
-> Index Only Scan using stuff_c_idx on stuff (cost=0.42..4.60 rows=10 width=0)
(actual time=0.009..0.022 rows=10 loops=1)
Index Cond: (c > 999990)
Heap Fetches: 0
Planning time: 0.156 ms
Execution time: 0.077 ms
(6 rows) Não basta a coluna estar indexada
temos que entender como o operador
compara os items dentro dos nós da
“árvore”
19. CREATE INDEX CONCURRENTLY
Criar índice bloqueia a tabela?
Simple like this! 8)
http://www.postgresql.org/docs/9.4/static/sql-createindex.html#SQL-CREATEINDEX-CONCURRENTLY
▪ … sim, mas não se usar
“concurrently”
▪ Escolha o dia e horário
▪ Não os crie à toa; se você testá-los
e os índices não servirem, apague-
os
CREATE INDEX orders_unbilled_index ON orders (order_nr);
CREATE INDEX CONCURRENTLY idx_pessoa_cpf ON
pessoa (cpf);
DROP INDEX CONCURRENTLY idx_pessoa_cpf;
20. Parâmetro::FILLFACTOR
▪ Pode variar de 10 a 100 (%)
▪ Valor padrão 90 em B-trees
▪ Se tabela é estática → 100
▪ Se tabela é muito atualizada, um
número menor (→ 10) é melhor
para evitar a necessidade de
quebras/divisões (splits) nas
páginas
▪ “É a percentagem que determina o
quão cheio os nós vão estar” (?)
▪ Em B-trees as folhas (leafs) são
preenchidas nessa percentagem
▪ Se as páginas ficam cheias (+1), elas
sofrem split
CREATE INDEX CONCURRENTLY idx_pedidos_cpf
ON pedidos (cpf) WITH (fillfactor = 40);
21. Parâmetro:: ASC / DESC
CREATE INDEX title_idx ON films (title DESC);
▪ Como você pensa em ORDER BY?
▪ Qual sua incidência sobre o código?
▪ Prepare o índice de forma a fazer
com que a incidência de buscas da
sua aplicação seja compatível com
a forma de ordenação do índice.
22. Parâmetro:: NULLS FIRST / NULLS LAST
▪ Pense em como estão distribuídos
os seus dados nas tabelas!
▪ Valores nulos são permitidos na
coluna indexada?
▪ Em consultas, os valores nulos
devem ser exibidos primeiro ou por
último (na maioria dos casos)?
23. Parâmetro:: Unique
▪ Apenas em B-trees
▪ Chaves Primárias são índices únicos
em colunas que não podem conter
valores nulos
▪ Representa uma “regra de negócio”
▪ Pode ser “composto”
▪ Pode ser “parcial”
24. Múltiplas colunas (composto)
▪ Atualmente apenas B-tree, GiST e GIN são
os métodos que suportam multiplas
colunas
▪ Até 32 colunas
▪ Use as mais restritivas primeiro!
▪ (produto, deposito, filial)
▪ Será parcialmente usado, se utilizar
as colunas da esquerda para direita,
sem pular nenhuma, mesmo que
não todas
25. Parciais (where)
▪ O modelo de dados pode beneficiar a tomada de decisões
▪ Imagine um índice especializado (será mais eficiente)
▪ Apenas com colunas da própria tabela que usará tal índice
▪ Não é porque o EXPLAIN mostra que usa um índice que isso basta
http://www.postgresql.org/docs/9.4/static/indexes-partial.html
CREATE INDEX orders_unbilled_index ON orders (order_nr) WHERE billed is not true;
CREATE INDEX access_log_client_ip_ix ON access_log (client_ip) WHERE NOT
(client_ip > inet '192.168.100.0' AND client_ip < inet '192.168.100.255');
26. Parciais:: Outro caso prático
CREATE INDEX event_signups ON event (time DESC)
WHERE (data->>'type')='submit' AND (data->>'path')='/signup/' ;
http://blog.heapanalytics.com/speeding-up-postgresql-queries-with-partial-indexes/
SELECT * FROM event
WHERE (data->>'type')='submit' AND (data->>'path')='/signup/'
ORDER BY time DESC ;
27. Funções
CREATE INDEX ON films ((lower(title)));
▪ Quando se chama uma função
passando uma coluna como
parâmetro, um índice simples nessa
coluna não será utilizado
▪ Contornar este problema é simples,
se indexarmos a função com essa
coluna como parâmetro
CREATE INDEX pointloc
ON points USING gist (box(location,location));
SELECT * FROM points
WHERE box(location,location) && '(0,0),(1,1)'::box;
28. Storage::Tablespaces
▪ Mantenha dados e índices em
tablespaces distintas
▪ Índices em discos bastante rápidos
▪ SSDs?
▪ ZFS + (NFS ou iSCSI)
▪ “Hardware”
30. Outros Métodos de Acesso
▪ Framework extensível
▪ Vasta documentação
▪ Eu falei que é OpenSource?
▪ DIY
31. Outros Métodos de Acesso::GiST
▪ Suporta tipos de dados
customizados!
▪ Utilizados em visão computacional,
bioinformática, remote sensing[1],
▪ São “grandes”, demoram um pouco
mais para serem construidos
▪ Generalized Search Tree (GiST)
▪ box, circle, inet, cidr, point, polygon,
ranges, tsquery, tsvector
▪ Utiliza operadores especializados
▪ Utiliza operadores customizados
▪ Em contribs (btree_gist, cube, hstore,
intarray, ltree, pg_trgm, seg)
32. Outros Métodos de Acesso::GIN
▪ Generalized Inverted Index
▪ Internamente, o GIN contem B-
trees construídas sob chaves...
▪ ...onde a própria chave é um
elemento de um ou mais itens
indexados
▪ São “pesados” para serem criados
numa inserção massiva de dados
▪ Contribs: hstore, intarray, pg_trgm,
btree_gin
33. Outros Métodos de Acesso::Hash
▪ Evite utilizá-lo! Suas operações não
estão presentes no WAL
▪ Só serve para comparações de
igualdade (=)
▪ Após um crash necessita REINDEX
34. Outros Métodos de Acesso::SP-GiST
▪ Space Partitioned GiST
▪ Estruturas não balanceadas (quad-
tree, k-d tree, radix tree)
▪ Essas não são originalmente
desenhadas para fazer muito
acesso a disco
▪ São estruturas de grande
complexidade para se armazenar
no disco (este é o desafio!)
35. Outros Métodos de Acesso::BRIN (novo)
▪ Novidade da versão 9.5
▪ Vantagem: ocupa menos espaço
▪ Relativamente menos eficiente
▪ Block Range Index
36. Outros Métodos de Acesso::VODKA (super-novo)
▪ Fortemente baseado no GIN, mas
substitui a parte “btree” por “sp-gist”
▪ Idealizado para se trabalhar com
colunas jsonb e hstore
▪ jsquery (jsonb query language)
▪ Trabalho suportado pela Heroku
https://www.youtube.com/watch?v=2dQjfdXxtJw
- by Alexander Korotkov, Oleg Bartunov, and Teodor Sigaev
- CREATE INDEX … USING VODKA
39. Considerações finais
▪ Verifique índices que não estão sendo utilizados: pg_stat_user_indexes
▪ Verifique índices duplicados
▪ Monitore seu tamanho e fragmentação
40. Material de Referência (references)
Links acessados entre 2015-07-15 e 2015-08-07:
http://michael.otacoo.com/postgresql-2/postgres-9-5-feature-highlight-pageinspect-gin-indexes/
http://michael.otacoo.com/postgresql-2/postgres-contrib-module-highlight-pageinspect/
http://www.depesz.com/2010/09/09/why-is-my-index-not-being-used/
http://pgsqldeepdive.blogspot.com.br/2012/12/postgresqlhot.html
https://devcenter.heroku.com/articles/postgresql-indexes
http://www.sai.msu.su/~megera/postgres/gist/
http://www.sai.msu.su/~megera/wiki/spgist_dev
http://www.postgresql.org/message-id/CAM3SWZTyRMDgHyikJu_Dsx046jRzoTR94YRd+iB5R7tq1hv2aQ@mail.gmail.com
pageinspect :: http://www.postgresql.org/docs/9.4/static/pageinspect.html
41. Material de Referência (references) - 2
Links acessados entre 2015-07-15 e 2015-08-07:
http://www.postgresql.org/docs/9.5/static/index-scanning.html
http://www.depesz.com/2010/06/28/should-you-use-hash-index/
https://www.youtube.com/watch?v=2dQjfdXxtJw
http://www.slideshare.net/Tech_MX/b-tree-14155416
http://use-the-index-luke.com/