PRINCIPAIS TÉCNICAS DE TUNING EM BANCO DE DADOS FIREBIRD

Tipo de documento:TCC

Área de estudo:Tecnologia da informação

Documento 1

Fred Jorge Tavares de Lucena Recife 2017 BEZALEEL LIRA DA SILVA PRINCIPAIS Técnicas de Tuning em Banco de Dados Firebird Trabalho de conclusão apresentado ao Núcleo de Pós-Graduação e Extensão da Faculdade de Tecnologia Ibratec como requisito para a obtenção do título de Especialista em Banco de Dados. Aprovado em: ______/_______/_________ BANCA EXAMINADORA __________________________________ Prof. Me. Fred Jorge Tavares de Lucena Orientador ___________________________________ Nome do 2º Membro Função ou Instituição ___________________________________ Nome do 3º Membro Função ou Instituição AGRADECIMENTOS Este projeto de pesquisa não teria se concretizado sem a ajuda e o envolvimento do meu orientador Skdfjhnkngf Hkdsfjklksjdf cujas informações, dicas e sugestões durante o projeto foram de essencial importância. xngklzkxzfklçzxfgklzfkj "O homem que sabe reconhecer os limites da sua própria inteligência está mais perto da perfeição.

Tuning. Firebird. SILVA, BEZALEEL LIRA DA. PRINCIPAIS TÉCNICAS DE TUNING EM BANCO DE DADOS FIREBIRD 2018. Pág. Objetivo geral 13 3. OBJETIVOS ESPECÍFICOS 13 4 METODOLOGIA 14 5 Banco de dados 15 5. Definição 17 5. Sistema de gerenciamento 18 5. Bases relacionais 20 5. Neste cenário, realizar operações de forma eficiente sobre estas grandes coleções de dados é uma questão fundamental, já que o desempenho de um SGBD é medido a partir de sua eficiência diante de consultas e alterações. Com o tempo, as consultas, inserções, modificações e exclusões em um SGDB começam a ficar lentas, as tabelas começam a ficar grandes fazendo com que o SGDB perca desempenho. Quando isso acontece à única solução é a aplicação de técnicas de TUNING no SGDB. Neste trabalho é abordada a aplicação de técnicas de Tuning em Bancos de Dados Firebird e os principais problemas encontrados em consultas SQL.

Também demonstra como obter melhores resultados com aplicação das Técnicas de TUNING. A segunda foi pesquisar quais as principais técnicas de tuning existentes. A terceira foi definir a técnica mais indicada para aplicação em base de dados, dentre as técnicas pesquisadas na etapa anterior, e fazer testes para a medição do desempenho do SGBD Firebird. Também foram feitos testes comparativos de seus desempenhos em diferentes sistemas operacionais e sistemas de arquivos. Desenvolver configurações de otimização para o SGBD Firebird e realizar medições de desempenho, objetiva demonstrar se o processo de otimização pode gerar melhorias significativas, quando realizado de forma correta. Banco de dados A necessidade de guardar informações, registrar e passar adiante o legado do que foi arduamente aprendido, é a grande característica humana.

Reorganizaram de acordo a razão humana ao invés da natureza ou teologia cristã, principalmente. A própria expressão enciclopédia tem a etimologia, do grego, “ciclo” e “paideia”, significando transmitir a educação. E não há quem ao ouvir o termo não pese em justamente conhecimento categorizado e organizado. Normalmente em ordem alfabética. O volume pode alcançar tal monta que costuma necessitar de vários tomos, partes, muitas vezes, justamente, chamados de ‘volumes’. A database may be specialized to store binary files, documents, images, videos, relational data, multidimensional data, transactional data, analytic data, or geographic data to name a few. E em ELMASRI (2005) expande-se para: • Um banco de dados representa alguns aspectos do mundo real, sendo chamado, às vezes, de minimundo ou de universo de discurso (UoD).

As mudanças no minimundo são refletidas em um banco de dados. • Um banco de dados é uma coleção lógica e coerente de dados com algum significado inerente. Uma organização de dados ao acaso (randômica) não pode ser corretamente interpretada como um banco de dados. Conforme citado no site oficial do projeto (FIREBIRSQL, 2002): A base de dados Firebird foi desenvolvida por um grupo independente de programadores voluntários a partir do código fonte do InterBase®, disponibilizado pela Borland ao abrigo da “InterBase Public License v. ” em 25 de julho de 2000. Figura 2 - Linha do tempo de desenvolvimento de bases de dados Fonte: https://hpi. de/naumann/projects/rdbms-genealogy. html Existem alguns modelos de entendimento sobre como organizar uma base de dados que foram sendo desenvolvidos historicamente. svg Porém se tabelas referenciarem outras tabelas se consegue expandir o volume de dados com menos ocupação de espaço físico.

E outras vantagens, mas com uma complexidade maior no gerenciamento. Essas bases são chamadas de relacionais 5. Bases relacionais Em um artigo chamado Relational Model of Data for Large Shared Data Banks (Modelo de dados relacional para grandes bancos de dados compartilhados) de 1970 publicado por Edgar Codd, matemático e pesquisador da IBM, propôs uma abordagem que protegia o usuário sobre saber como os dados estavam organizados e que permite uma imensa quantidade de dados. Também faz que o se preocupe sobre como recuperar rapidamente e realizar operações, conforme a necessidade e solicitação realizada pelo usuário. • Regra 3 - Valores nulos devem ser suportados de forma sistemática e independente do tipo de dado para representar informações inexistentes e informações inaplicáveis. • Regra 4 - A descrição do banco de dados é representada no nível lógico da mesma forma que os dados ordinários, permitindo que usuários autorizados utilizem a mesma linguagem relacional aplicada aos dados regulares.

• Regra 5 - Um sistema relacional pode suportar várias linguagens e várias formas de recuperação de informações. Entretanto, deve haver pelo menos uma linguagem, com uma sintaxe bem definida e expressa por conjuntos de caracteres, que suporte de forma compreensiva todos os seguintes itens: definição de dados, definição de "views", manipulação de dados (interativa e embutida em programas), restrições de integridade, autorizações e limites de transações (begin, commit e rollback). • Regra 6 - Todas as "views" que são teoricamente atualizáveis devem também ser atualizáveis pelo sistema. Todos esses campos são susceptíveis a se tornar tabelas de relacionamento. Figura 4 - Planilha como banco de dados Fonte: https://www. agendor. com. br/blog/como-gerar-uma-lista-de-contatos-no-agendor/ A normalização dos dados, então, é uma análise que visa identificar as redundâncias e mapear as possibilidades de otimização.

Classicamente, as formas normais são: • 1FN: Cada linha da tabela deve representar um registro e ter um único valor • 2FN: Os registros devem depender unicamente da chave da tabela • 3FN: Os registros devem ser independentes uns dos outros e depender exclusivamente da chave da tabela É da atenta normalização que se decide quais campos serão passiveis de indexação. Utilizar índices para organizar os dados é a característica que faz as bases de dados serem rapidamente consultáveis. As tabelas de índices bem definidas permitem o ordenamento de uma mesma lista de várias formas, de vários campos. E a informação será recuperada da melhor forma e mais eficiente possível. entidade relacionamento Em um artigo de 1976, Peter Chen propôs o modelo entidade relacionamento (modelo ER).

png A cardinalidade trata dos relacionamentos que as tabelas podem ter entre si, e podem ser: • 1. um para um) - as tabelas têm apenas um relacionamento entre si. Ex: Cada pessoa pode ter apenas um sexo • 1. n (um para muitos) – um registro pode referenciar vários de uma outra, porem, esta outra apenas um da primeira Ex: uma pessoa pode ter vários dependentes, mas cada dependente pode ter apenas um titular • n. n (muitos para muitos) – cada registro de cada tabela pode referenciar. Suas políticas e modos inerentes de tratamento dos dados podem ter vantagens ou preferências dos desenvolvedores. As bases de dados relacionais são as preferidas em aplicações comerciais. Há outros enfoques, como as máquinas de busca para internet, conhecidas como search engines, que são bastante consultadas diariamente.

Outro enfoque são as bases de multivalores (multivalue DBMS), cujas aplicações são utilizadas por portais globais como Amazon, Facebook e Google. Estas empresas guardam seus dados em diversos locais do mundo e, devido ao conteúdo dinâmico os dados não ficam completamente sincronizados. Nela se vê que os opensource, em especial Firebird e PostgresSQL, têm maior abrangência de possibilidades de implantação, enquanto que a comercial Microsoft se restringe ao seu nicho. Agora, quanto as possibilidades de integração com sistemas de terceiros através de APIs é a experiente Oracle que oferta maior quantidade de plataformas e linguagens suportadas. Quadro 2 - Principais sistemas SQL Nome Firebird MS SQL Server MySQL Oracle PostgreSQL DB2 Desenvolvedor Firebird Foundation Microsoft Oracle Oracle PostgreSQL Global Development Group IBM Lançamento 2000 1989 1995 1980 1989 1983 Versão atual 3.

fev/2018 SQL Server 2017 out/2017 5. jan/2018 12 Release 2 (12. NET JDBC ODBC OLE DB Tabular Data Stream (TDS) ADO. NET JDBC ODBC ADO. NET JDBC ODBC ODP. NET Oracle Call Interface (OCI) JDBC ODBC native C library streaming API for large objects ADO. NET JDBC ODBC JSON style queries  XQuery ADO. Complexidades tais que esbarram em limites físicos. Tangíveis. Ou que por alguma logica claudicante se perde tempo de processamento. Em uma consulta de banco de dados essas camadas, logicas e físicas, nem sempre estarão no mesmo computador, por vezes nem mesmo no mesmo ambiente. E, não raro, nem na mesma cidade, país ou continente. Quando a requisição chega ao servidor de dados será interpretado e a consulta executada. A base tem uma latência devido ao acesso ao disco.

E se a consulta precisar interagir para montar uma resposta consultando algumas tabelas, mais acessos físicos serão necessários Então, com a resposta adquirida, o caminho de volta ao cliente será executado. Note-se que o caminho, embora provavelmente o mesmo em reverso, tende a ser menor, de menor custo de processamento e rede, pois o cliente é passivo na atividade. Camadas Os sistemas modernos utilizam muito a arquitetura cliente-servidor, mesmo entre programas e aplicativos que estejam numa mesma máquina. Camada física Define especificações elétricas e físicas dos dispositivos Fonte: Especificações ITU As vantagens de utilizar servidores com IP é a portabilidade. Diferentes plataformas podem trocar informações por IP através de serviços, identificados por portas. A porta definida pelo IANA para o serviço SQL é a 118, embora algumas empresas tenham usado e acabaram se tornando padrão com outros números.

A definição da lista de portas e serviços é definida na RFC 6335 da IETF e pode ser encontrada no site da IANA (2018). O Modelo OSI (Quadro 4) também tem sido utilizado em sistemas de base de dados, não apenas por rodarem em ambiente de rede como para o entendimento do sistema em si. Processador e memória Cabe lembrar que o tuning não deve ser realizado apenas nos servidores. O usuário cliente é quem costuma reclamar da lentidão. Além do que é para ele que a base de dados foi criada. Se sua estação estiver sobrecarregada de sistemas ou subdimensionada de recursos, os motivos de lentidão podem ser locais nele. Os servidores devem ser máquinas dedicadas e exclusivas. A quantidade de núcleos utilizados pelo FireBird é configurada no parâmetro cpuaffinitymask, fazendo que seu valor seja a máscara em binário da quantidade de cores desejada.

Por exemplo, o valor 14 (1110 em binário) configura para três dos 4 cores de um sistema, deixando um para outros serviços que houver na máquina. Em uma máquina Linux, no modo SuperServer, esse parâmetro é ignorado. Outros ajustes acerca de memória também podem, aliás, deve ser cuidados. Exemplos de alguns sistemas, utilizando todos os núcleos: • processador dual-core, e pelo menos 4GB memória: DefaultDbCachePages = 4096 FileSystemCacheThreshold = 67108864 FileSystemCacheSize = 70 CpuAffinityMask = 3 • processador dual-core, e pelo menos 8GB memória: DefaultDbCachePages = 8192 FileSystemCacheThreshold = 134217728 FileSystemCacheSize = 70 CpuAffinityMask = 3 • processador quad-core, e acima de 8GB memória: DefaultDbCachePages = 16384 FileSystemCacheThreshold = 268435456 FileSystemCacheSize = 80 CpuAffinityMask = 15 A quantidade de memória utilizada implica na quantidade de tabelas e solicitações. Com o consumo bem menos e velocidade bem maior os SSD parecem ser a grande maravilha. Aliando isso que não precisam de desfragmentação de arquivos, pois isso não afeta os tempos do dispositivo.

O preço dos SSD estão diminuindo, como sempre ocorre com novas tecnologias quando sua demanda e compatibilidade aumenta. Por segurança e performance os sistemas de disco RAID são bastante utilizados. Assim, sistemas híbridos HDD/SSD podem ser configurados e ser escalonados conforme os recursos forem sendo disponíveis e necessários. O monitoramento de tráfego pode revelar estrangulamentos e perdas. Além disso, interferências elétricas e mau-contatos não são incomuns. Provocam degradação da rede não apenas na máquina diretamente afetada. A situação pode ficar pior quando o acesso for externo, como o caso de filiais remotas, dependendo de linhas privadas contratadas. Não é boa ideia utilizar a internet como acesso, pois, além do próprio tráfego inconstante das rotas, há o problema de que a maioria dos acessos são por ADSL, que, por definição é assíncrono, tem velocidades de downstream e upstream diferentes.

Como comenta HIRATSUKA (2009): Geralmente o tuning é realizado durante a fase de aceitação do sistema, quando os problemas de performance são mais visíveis. No entanto, o ideal é que o mesmo seja realizado em todas as fases, pois muitos dos problemas de performance são decorrentes de decisões inadequadas já no início do projeto, que se refletem nas demais fases. Código Quando as consultas são realizadas é o momento mais crítico do sistema. As tabelas são chamadas, os índices verificados, as lógicas e parâmetros da pesquisa são montadas. Todo o processamento é realizado. Um exemplo preferir o comando EXISTS ao invés de DISTINCT quando envolver tabelas com relacionamento um-para-muitos. Ao invés de: SELECT DISTINCT d. departamento_id, d. departamento FROM departamento d,empregado e WHERE e.

departamento = e. Redes e telecomunicações tem uma teia de abrangência extremamente vasta. Microinformática cresce conforme a pesquisa em física de semicondutores avança e desenvolve matemática de alto nível. O desenvolvimento de sistemas operacionais melhora com novas ideias e com os recursos criados nos microprocessadores e de gerenciamento de hardware. O detalhamento que um banco de dados exige implica em profissionais que conheçam bastante bem o seu ambiente. E que sejam capazes de aprender sobre a abstração de outras pessoas que implementaram algum sistema. com. br/melhoreo-desempenho-de-seu-banco-com-o-tuning-advisor-sql-magazine-78/17723#ixzz3HDeTmbg1>. Acesso em: 25 Jul. AQUINO, A. Artigo: “Técnicas de Tuning para Melhoria de Desempenho em Banco de Dados PostgreSQL Disponível em: <http://www. A relational model of data for large shared data banks. Communications of the ACM, v.

n. p. CODD, E. A escolha de um banco de dados relacional. www1. serpro. gov. br. DOMINGO, J. S. SSD vs. HDD: What's the Difference?. PCMAG 9/jun/2017. org. Disponível em: <https://www. firebirdsql. org/file/documentation/release_notes/Firebird-1. ReleaseNotes-Portuguese. Acesso em: 28 fev. IANA. Service Name and Transport Protocol Port Number Registry. Iana. org. com/watch?v=YHbBDH2j-iw>. Acesso em: 19 Ago. SHARMA, NEERAJ, PERNIU, LIVIUF. CHONG, RAUL et al. Database Fundamentals. WHITE, A. SQL Server Performance Counters to Monitor - SentryOne Team Blog. Disponível em: <https://blogs. sentryone. com/allenwhite/sql-server-performance-counters-to-monitor/>.

134 R$ para obter acesso e baixar trabalho pronto

Apenas no StudyBank

Modelo original

Para download