In-Memory Database Internals DPB304



Documentos relacionados
In-Memory OLTP Cenários de Utilização

Tuning para Desenvolvedores DB2

Consistem num conjunto de apontadores para instâncias especificas de cada relação.

Comandos de Manipulação

Banco de Dados. Marcio de Carvalho Victorino Exercícios SQL

Especialização em Engenharia e Administração de Banco de Dados SISTEMA DE GERENCIAMENTO DE BANCO DE DADOS I

Transações Seguras em Bancos de Dados (MySQL)

ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL. Carga horária: 32 Horas

BANCO DE DADOS -INTRODUÇÃO AO SQL. Prof. Angelo Augusto Frozza, M.Sc.

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL

Exercícios de Lógica Exercícios de Fixação 08

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL

ESTRUTURA DE SERVER Lílian Simão Oliveira

Projeto de Banco de Dados: Empresa X

Novidades Oracle 11g. Rio Grande Energia - RGE

Structured Query Language (SQL)

Banco de Dados Oracle 10g: Introdução à Linguagem SQL

Banco de Dados. Maurício Edgar Stivanello

SQL Linguagem de Definição de Dados. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

SQL Introdução ao Oracle

Formação em Banco de Dados

Triggers em PostgreSQL. Linguagem de Programação de Banco de Dados. Triggers em PostgreSQL. Triggers em PostgreSQL

SQL CREATE DATABASE. MySQL, SQL Server, Access, Oracle, Sybase, DB2, e outras base de dados utilizam o SQL.

Bases de Dados 2005/2006. Aula 5

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Oracle Advanced Compression x External Tables (Armazenamento de dados históricos)

Sumário Introdução Breve História da Linguagem SQL l 0.3 Características da Linguagem SQL A Composição deste Livro 3

Treinamento PostgreSQL - Aula 03

Dicas para uso de VLDB (very large databases)

Migraçao para Hyper-v 2012 R2 e 2016,

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho

UFES Universidade Federal do Espírito Santo Centro de Ciências Agrárias Departamento de Engenharia Rural Disciplina de Banco de Dados.

Gatilhos (Triggers) Prof. Márcio Bueno Elaborado por Maria Lígia B. Perkusich

TECNOLOGIA EM SISTEMAS PARA INTERNET PROJETO DE BANCO DE DADOS

Lendas do Oracle. Ricardo Portilho Proni TITLE Speaker

EXEMPLOS DE COMANDOS NO SQL SERVER

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011

Structured Query Language (SQL) Aula Prática

Formação em Banco de Dados. Subtítulo

1. SQL Instrumental Select Delete Update Insert Group by Having Unnion All...

Controle de transações em SQL

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

Prof. Carlos Majer Aplicações Corporativas UNICID

SQL TGD/JMB 1. Projecto de Bases de Dados. Linguagem SQL

trigger insert, delete, update

Linguagem SQL (Parte II)

Partitioning Partitioning table App. Partitioning SQL Server Partitioning Vantagens Partitioning Exemplo Passos a dar

Pontifícia Universidade Católica do Rio Grande do Sul FACULDADE DE INFORMÁTICA PROGRAMA DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO.

Tarefa Orientada 16 Vistas

O que são Bancos de Dados?

PROVA ESPECÍFICA Cargo 04

Comparativo de desempenho do Pervasive PSQL v11

Fundamentos de Banco de Dados

Migrando para OpenEdge 10. Regis Martins Ezipato Sr Solution Engineer

Introdução à Engenharia da Computação. Banco de Dados Professor Machado

MySQL. Prof. César Melo. com a ajuda de vários

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

Banco de Dados. Conversão para o Banco de Dados SisMoura

SQL. Hélder Antero Amaral Nunes

Banco de Dados II. Triggers e Functions. Prof. Moser Fagundes. Curso TSI Instituto Federal Sul-Rio-Grandense (IFSul) Campus Charqueadas

Linguagem SQL. Comandos Básicos

Sistemas de Ficheiros. 1. Ficheiros 2. Directórios 3. Implementação de sistemas de ficheiros 4. Exemplos de sistemas de ficheiros

Garantindo a. Máquinas Virtuais do. alta disponibilidade nas. Microsoft Azure MDC305

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

Structured Query Language (SQL)

Prova de Fundamentos de Bancos de Dados 2 a Prova

SQL BÁSICO. Introdução. Prof. Suelane Garcia. Linguagem SQL (Structured Query Language)

BANCO DE DADOS BANCO DE DADOS. Prof. Patrícia Lucas 3º Trimestre

Tarefa Orientada 19 Triggers

COMPETÊNCIAS ESPECÍFICAS Compreender e utilizar a linguagem SQL, na construção e manutenção de uma base de dados.

UFCD 787. Administração de base de dados. Elsa Marisa S. Almeida

Administração de Usuários e Privilégios no Banco de Dados

Triggers no PostgreSQL

PHP INTEGRAÇÃO COM MYSQL PARTE 1

PROGRAMA. Aquisição dos conceitos teóricos mais importantes sobre bases de dados contextualizados à luz de exemplos da sua aplicação no mundo real.

Estratégias Avançadas com

Sumário Agradecimentos Sobre.o.autor Prefácio Capítulo.1..Bem-vindo.ao.MySQL... 22

Programação SQL. Introdução

SQL comando SELECT. SELECT [DISTINCT] <campos> FROM <tabela> [condição] [ ; ] Paulo Damico - MDK Informática Ltda.

ESTRATÉGIAS DE OTIMIZAÇÃO NO SGBD MICROSOFT SQL SERVER 2008 R2 IREMAR NUNES DE LIMA 2

Banco de Dados Avançados Banco de Dados Ativo

Bases de Dados 2007/2008. Aula 1. Referências

IMPLEMENTAÇÃO DE BANCO DE DADOS

Um objeto de estatística contém informações de distribuição de valores de uma ou mais colunas de uma tabela ou view indexada

Regras de Integridade. Profa. Késsia Marchi

Linguagem de Consulta Estruturada (SQL)

Roteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos

Tarefa Orientada 12 Junção Externa, Auto-Junção e União

SQL (Structured Query Language)

FRWTC-530 ADMINISTRAÇÃO DO MICROSOFT SQL SERVER

SQL Server Triggers Aprenda a utilizar triggers em views e auditar as colunas atualizadas em uma tabela

BD Oracle. Licenciatura em Engenharia Informática e Computação. Bases de Dados 2003/04

Transcrição:

In-Memory Database Internals DPB304

In-Memory Database Internals Alberto Lima Senior Premier Field Engineer-SQL Server allima@microsoft.com Frederico Guimarães Santos Premier Field Engineer SQL Server fredguis@microsoft.com

Tendência de Hardware Tendência de Hardware Aumento de Processadores CPU Clock estável. Tendência nos ambientes OLTP Aumento throughput Baixa latencia Alta concorrência

In-Memory Introdução Dados sempre em Memória In-Memory não é PINTABLE Estrutura de dados totalmente nova Alta concorência Não utiliza o conceito de páginas Lock e LATCH Free Novo modo de concorrência pra controle de transações. Native Compiled Store Procedure Menos instruções de CPU Store Procedure Compilada em Código Nativo.

Throughput (TPS) Performance Contenção por Latch Página de 8K em Memória T1 - Writer T2 - Writer T3 - Reader Number of threads Identity incremental 5

Performance Contenção por Latch 6

Throughput (TPS) In-Memory - Estrutura BUCKETS de 8k Hash Index Nome 000 Silas Colunas Gentile Colunas Fred Colunas Marcio Colunas Alberto Colunas Dados espalhados pela Memória Função de HASH embutida Number of threads 7

In-Memory Native Compilation CREATE TABLE DDL Code generation and compilation Table DLL produced Table DLL loaded

In-Memory Native Compilation Faz parte do processo do SQLSevr.exe

In-Memory Native Compilation In-Memory não é PINTABLE Estrutura de dados totalmente nova Não utiliza o conceito de páginas Lock e LATCH Free Novo modo de concorrência pra controle de transações. Menos instruções de CPU Store Procedure Compilada em Código Nativo.

In-Memory Indexes Hash Index Nome f(alberto) f(fabricio) f(fred) 0 1 2 3 4 5 6 7 8 9 Timestamps Chain ptrs 100: INSERT (Alberto, São Paulo) Nome Cidade 100, Alberto São Paulo Payload 150, Fabricio São Paulo Payload 250, Fred Campinas Payload 150: INSERT (Fabricio, São Paulo) 250: INSERT (Fred, Campinas) f(são Paulo) f(campinas) Hash Index Cidade 0 1 2 3 4 5 6 7 8 9 11

In-Memory Indexes Hash Index Nome f(alberto) f(fabricio) f(fred) 0 1 2 3 4 5 6 7 8 9 Timestamps Chain ptrs Nome Cidade 100, Alberto São Paulo Payload 150, 300 Fabricio São Paulo Payload 300: UPDATE (Fabricio, São Paulo) para (Fabricio,Campinas) f(são Paulo) 300, Fabricio Campinas Payload 250, Fred Campinas Payload f(campinas) Hash Index Cidade 0 1 2 3 4 5 6 7 8 9 12

In-Memory Indexes f(alberto) Hash Index Nome (Fabricio) f(fred) 0 1 2 3 4 5 6 7 8 9 Timestamps Chain ptrs Nome Cidade 100, Alberto São Paulo Payload 150, 300 Fabricio São Paulo Payload 250, 400 Fred Campinas Payload 400: DELETE (Fred, Campinas) f(são Paulo) 300, Fabricio Campinas Payload f(campinas) Hash Index Cidade 0 1 2 3 4 5 6 7 8 9 13

In-Memory Indexes Hash Index Nome f(alberto) (Fabricio) f(fred) 0 1 2 3 4 5 6 7 8 9 Timestamps Chain ptrs Nome Cidade 100, Alberto São Paulo Payload 150, 300 Fabricio São Paulo Payload 300, Fabricio Campinas Payload 250, 400 Fred Campinas Payload 500: Garbage Collection Hash Index Cidade 0 1 2 3 4 5 6 7 8 9 14

Hash Index - Tips Index Non-Clustered Hash na tabela CLIENTE ( CIDADE, ESTADO ) Hash Index é diferente portanto pense diferente SELECT COD_CLIENTE, TELEFONE, CEP, CIDADE, ESTADO FROM CLIENTE WHERE CIDADE = 'SAO PAULO' Buckets counts = 1-2 Quantidade de registros distintos! Muitos Buckets = SCANs mais lentos. Poucos Buckets = Colision e Lentidão dobrada

Non-Clustered Index Non-Clustered Range Index Page Mapping Table 0 PAGE 1 PAGE 2 3 Physical PageID-3 Root 10 20 28 Não tem latch para atualização de Páginas Não tem in-place updates nas páginas de Index Page size- up até 8K. Indice somente em uma direção Só o ID do indice no left level PageID-0 PageID-5 4 8 10 11 15 18 21 24 27 Non-leaf pages PageID-6 Logical PageID-15 1 2 4 5 6 7 25 26 27 Leaf pages 14 15 200, 1 50, 300 2 100, 200 1 Key Key Data rows

Demo

In-Memory Melhorias - SQL Server 2016 Usa até 4 sockets Tabelas em memória de 2TB Suporte a TDE Suporte a DML triggers - AFTER Sem limitação a uso de dados do tipo LOB Faz uso de Paralelismo

In-Memory What is New SQL Server 2016 ALTER PROC and sp_recompile supported Online ALTER TABLE for schema and index changes Full schema change support: add/alter/drop column/constraint FOREIGN KEY CHECK UNIQUE constraints and indexes Index operations ALTER TABLE is an offline operation; requires 2X memory Sem necessidade de BIN2 Collation para Hash Indexes (Performance)

In-Memory What is New SQL Server 2016 LEFT RIGHT} OUTER JOIN Disjunction (OR, NOT) UNION [ALL] SELECT DISTINCT Subqueries (EXISTS, IN, scalar)

In-Memory Storage Transaction Logging Hash Tabelas In-Memory Agrupa 24KB em um único registro Commit Only Não grava alteração nos Indexes Considere Lazy Commit SCHEMA_ONLY Log File Disco lento WAIT_TYPE = WRITE_LOG Use SSD

Checkpoint File Pair In-Memory Storage 0 100 Data File Transaction Timestamp Range TS (ins) RowId TableId Row pay load TS (ins) RowId TableId TS (ins) RowId TableId Row pay load Row pay load Data File contém as linhas dentro de um range específico. Delta File TS (ins) RowId TS (del) TS (ins) RowId TS (del) TS (ins) RowId TS (del) Delta File contém as linha deletadas dentro de um range específico.

In-Memory Storage Data/Delta Files Tabelas In-Memory Hash 100-200 Memory-optimized data Filegroup 201-300 301-400 DELETE APENAS INSERE O ID NO DELTA FILE INSERTS Log File ~ 1GB

In-Memory Storage SQL Server 2014 Tamanho máximo de tabelas duráveis é de até 512 GB Tamanho limitado devido a quantidade de pares (Data / Delta Files) 256GB Processo de checkpoint independente para tabelas In-memory e tabelas em disco SQL Server 2016 Suporta tabelas de até 2TB Limite pode ser extendido com adição de mais memória no Servidor

In-Memory Storage Merge Operation Memory Optimize Filegroup 100-200 201-300 301-400 401-500 201-400 501-600 60% 40% Required for Backup/HA= É necessário rodar o Backup

In-Memory What s is New SQL Server 2014 Desafio: Storage para linhas excluídas para ser Garbage Colleted SQL Server 2016 Gerenciamento de armazenamento é desacoplada do FileStream. Arquivo não utilizado (s) pode ser re-utilizado imediatamente após eles são referenciados do log de transações

Offline Checkpoint Thread SQL 2014 ~ 1GB Offline Checkpoint Thread Log 100-200 201-300 301-400 Memory-optimized data Filegroup SQL Server 2014 Limitação: Escalando acima de > (2 socket/64-cores)

Offline Checkpoint Thread SQL 2016 ~ 1GB Offline Checkpoint Thread One Thread per container Log Offline Checkpoint Thread 100-200 201-300 301-400 Offline Checkpoint Thread SQL Server 2016 Memory-optimized data Filegroup

Evento de encerramento do Microsoft Insights Week com Satya Nadella, CEO da Microsoft. Dia 29 de setembro AMCHAM - Rua da Paz 1431 Chácara Santo Antônio - SP Para se inscrever: http://aka.ms/satyabr

Q&A Visite o espaço Ask the Experts, próximo dos expositores

Continue sua capacitação Microsoft Virtual Academy http://aka.ms/ch9 http://aka.ms/mva