SQLvNext–SQL Server 2016 [Parte 1]

Posted on maio 10, 2015

3


Entre os dias 04 a 08 de Maio ocorreu o maior evento de Tecnologia da Microsoft chamado de Ignite em Chicago, Illinois nos Estados Unidos. Antes do fechamento da quantidade de vagas era esperado entre 15k a 17k pessoas no evento, a contagem oficial forneceu um número de mais de 23k pessoas, sendo sem dúvidas o maior e mais organizado evento em que já estive até hoje.

Nesse evento estive como Staff Member no Booth da Microsoft como SME (Subject Matter Expert). Meu papel foi ajudar e esclarecer dúvidas de SQL Server que os Attendees (participaentes) possuiam assim como explicar as novas features do vNext do SQL Server que foi anunciado nesse evento. Veja aqui o post oficial do Time de Produto do SQL Server aonde eles falam mais sobre o nova versão do produto – http://blogs.technet.com/b/dataplatforminsider/archive/2015/05/04/sql-server-2016-public-preview-coming-this-summer.aspx

Para quem perdeu o evento ou não sabia do mesmo, TODAS as sessões foram gravadas e disponibilizadas gratuitas para o público, veja todas as sessões aqui – https://channel9.msdn.com/Events/Ignite/2015 e boa sorte, aqui tem muitas horas de estudo para quem tiver interesse. Além disso foi disponibilizado um script em PowerShell para o download de todas as sessões do Ignite automaticamente – https://alexandrebrisebois.wordpress.com/2015/05/04/download-microsoft-ignite-2015-sessions-using-powershell/ 

Bem, em relação ao SQL Server vNext posso garantir que com toda certeza será a release mais esperada entre todas as versões do produto, sendo comparada com o SQL Server 2005 e 2012 que tiveram grandes mudanças não somente na engine mas sim em quantidade de features que foram acopladas dentro do produto. Irei dividir esse post em 3 partes para que seja mais fácil e digerível a quantidade de informações que irei passar. A divisão será da seguinte forma: “Mission Critical Performance”, “Deeper Inisights Across Data” e “HyperScale Cloud”. Hoje iremos falar das novidades relacionadas a Mission Critical Performance.

Antes de falarmos de SQL Server recomendo a todos que ainda não estão com os estudos direcionados para Cloud que estudem e se especializem na mesma, uma das frases mais utilizadas no evento foi – “Cloud First”

 

mission_critical_performance

 

In-Memory Colunar Index a.k.a NonClustered ColumnStore Index em In-Memory Tables

“Welcome to the Future, the place where anyone never been before, the world where the OLTP and OLAP resides at the same place.”

Esse novo tipo de índice fará com que seje possível analizar em Real-Time dados que são gravados em sua aplicação, será possível agora entender o dados que são inseridos no seu ambiente OLTP e que são analizado em seu ambiente OLAP. Isso irá mudar muito a forma com que construímos certos tipos de análise de dados assim como construímos Data Warehouse. Pense no seguinte cenário em Real-Time – Análise de Fraúde de Cartão de Crédito.

Hoje em dia para que seja descoberto que seu cartão foi utilizado indevidamente e que o mesmo seje bloqueado, pode levar entre 4 a 24 Horas dependendo da empresa. Isso acontece devido a análise do dados que são realizadas no ambiente OLAP para que só assim uma determinada compra seja dada como indevida e seu cartão assim seje bloqueado. no SQL Server 2016 será possível realizar a criação de um índice Non-Clustered ColumnStore em uma tabela In-Memory, sendo assim a análise de uma fráude poderá ser feita em Real-Time e bloqueada da mesma forma. Essa capacidade irá juntar o mundo OLTP e OLAP no mesmo local fazendo com que o dado seje inserido e analisado no mesmo momento.

Always Encrypted

 “Now the Data at Rest attack has the days counted.”

Todos nós sabemos que o SQL Server é considerado o banco de dados mais seguro entre todos, se ainda não sabe disso veja aqui – http://blogs.technet.com/b/cansql/archive/2013/11/19/what-is-the-most-secure-database.aspx Um dos ataques mais utilizados em relação a roubo de dados é o chamado Data-at-Rest. Esse ataque consiste no roudo do dado, e isso acontece porque entre o banco de dados e a aplicação muito das vezes os dados que são trafegados não são criptografados fazendo com que essa brecha seja muito bem vista e visada por Crackers e Hackers. Com a tecnologia TDE (Transparent Data Encryption) no SQL Server é protegido todos os arquivos que o compoem e não o dado entre si. Se alguém roubar o seu arquivo de banco de dados (.mdf) ou o arquivo de backup (.bak) não será capaz de restaurar porque o mesmo não possue a chave para tal acesso. Porém se o dado for capturado entre a aplicação ou o banco de dados, transição que chamamos de  (in-motion) ou se ainda o Crackers ou Hacker tiver acesso a base de dados ele poderá ter acesso ao dado.

Devido a isso, a nova feature de segurança do SQL vNext chamada Always Encrypted irá proteger o roubo do dado (Data-at-Rest). Isso será realizado de forma transparente, aonde a blibioteca .NET irá possuir a chave para descriptografar e ver o dado puramente ou seja, sendo assim dentro do SQL Server você irá ver o dado criptografado, durante a passagem entre Banco de Dados e Aplicação se o mesmo for capturado o dado estara criptografado e só quando o mesmo chegar na aplicação o mesmo será descriptografado e assim mostrado. Um grande exemplo para isso é número de cartão de crédito ou senhas ou ainda mesmo CPF’s.

Query Store

 “I dreamed once to have a feature to solve all my query performance issues.”

Todos nós já tivemos mal momentos aonde realizar tuning de certas consultas se torna bem doloroso (mais do que fazer o Imposto de Renda), especialmente de algumas procedures por exemplo em que sua primeira execução realiza um SCAN e faz com que a CPU do servidor vá para 100% de utilização. Ou ainda mais, quando uma consulta está funcionando bem otimizada no ambiente e depois de uma atualização de sistema a mesma passa a ser a mais custosa. Para esses e diversos outros tipos de problemas relacionados a plano de execução, teremos no SQL vNext uma nova feature chamada Query Store. Como o mesmo nome já enfatiza, agora será possível ter o histórico dos planos utilizados assim como suas estatísticas. Será possível saber quando que o plano de uma procedure mudou para um pior e realizar a regressão do mesmo. Essa feature é uma das mais esperadas pelos DBA’s porque irá facilitar na investigação do que aconteceu com aquela consulta que estava bem otimizada assim como a possibilidade de analizar detalhadamente os planos anteriores e qual foi o melhor plano já escolhido para aquela consulta.

Mais informações sobre essa feature você pode encontrar neeses locais – http://slavasql.blogspot.com/2014/11/newest-sql-server-feature-query-store.html e http://sqlperformance.com/2015/02/sql-plan/the-sql-server-query-store

 

Native JSON

“Will not be necessary anymore two-times conversion.”

Essa feature era muito esperada por diversos Developer DBA’s. Isso porque, dependendo da aplicação era necessário armazenar o dados em XML no banco de dados, converté-los para JSON e so assim depois mostrá-los. Isso fazia com que a aplicação tivesse um custo a mais em entender e realizar essa conversão. Com o JSON nativo em SQL Server agora será possível armazenar os dados em JSON no SQL Server e assim consumí-los de forma mais eficiente e ainda realizar queries para capturar o dados dentro do banco de dados. Ou seja não será mais necessário converter o dado porque o mesmo já estara armazenado em JSON.

Temporal Database 

“Have the possibility to return the data that was incorrect modified a few minutes ago is something amazing to have.”

Imagine ter a possibilidade de ter armazenado tudo que aconteceu em determinadas tabelas, isso significa ter o histórico do que foi alterado ou seja, possuir todos os registros anteriores das tabelas em que você deseja. Isso será gerenciado pelo próprio SQL Server. Hoje temos as features de CT (Change Tracking) e CDC (Change Data Capture) que conseguem rastrear o que foi alterado dentro da tabela, porém essa nova feature é mais do que isso, essa feature dará a possibilidade de ver tudo que foi alterado na tabela em um específico periodo de tempo em que você selecionar, tendo a habilidade de selecionar cláusulas para guardar o dado. Alguns pontos interessantes desse novo recurso são:

  1. Time Travel – Habilidade de voltar no tempo e analizar o que foi modificado
  2. Data Audit – Auditoria do que foi alterado na tabela
  3. Slowly Changing Dimensions – Histórico das tabeals de Dimensão de um modelo OLAP
  4. Repair Record-Level Corruption – Reparação de uma corrupção nível regsistro

AlwaysOn – 3 Sync Replicas + Load Balancing + Round Robin

“Now, I don’t need to use tricks to balance my workload.”

AlwaysON agora com a possibilidade de ter 3 réplicas síncronas além de Load Balancing que é o mais esperado recurso sem dúvidas, além do mais ele terá o MSDTC. Com isso agora podemos dizer que nossa solução de Alta Disponibilidade e Disaster Recovery está pronta.

Nó próximo post iremos ver as novas features para “Deeper Inisights Across Data” , nos vemos em breve pessoal.

 

Veja os dois vídeos do Ignite focados na apresentação dessas features – https://channel9.msdn.com/Events/Ignite/2015/FND1551 e https://channel9.msdn.com/Events/Ignite/2015/BRK2558