-
Intelligent Query Processing
Seguindo na linha de novas features do SQL Server 2019, hoje falaremos um pouco sobre Intelligent Query Processing.
Com a feature Intelligent Query Processing, você sabe que cargas de dados paralelas se tornam mais críticas quando estão rodando em escala. Ao mesmo tempo, se mantém adaptativas para as constantes mudanças nos dados. IQP está disponível para as bases com Compatibility Level 150 ou superior. entregando um grande impacto que melhora a performance de cargas de trabalho com um esforço mínimo de implementação.
Novas Funcionalidades
- Row Mode Memory Gran Feedback – Amplia o Batch Mode Memory Grant Feedback ao ajustar os tamanhos de Memory Grant para ambos operadores, Row and Batch mode, ajustando automaticamente grants excessivos e que resultam em memória desperdiçada. Também pode corrigir memory grants insuficientes e que possam causar spills para o disco.
- Batch Mode on Rowstore – Habilitar o Batch Mode sem precisar de índices ColumnStore. Ele utiliza recursos de CPU com mais eficiência durante as cargas de dados analíticas, independentemente de haverem indices ColumnStore ou não.
- Scalar UDF Inlining – Automaticamente transforma UDFs escalares em expressões relacionais em a integra à query sendo executada.
- Table Variable Deferred Compilation – Melhora a qualidade do plano de execução para queries que utilizam variáveis do tipo table. Durante a compilação inicial e a otimização, esta funcionalidade propaga as estimativas de cardinalidade baseado na contagem de linhas de uma variável do tipo table. Essa contagem de linhas aprimorada otimiza o plano de execução, obtendo uma melhor performance
- Approximate Query Processing with APPROX_COUNT_DISTINCT – Em cenário onde a precisão não é tão importante, mas a velocidade é crítica, a funcionalidade APPROX_COUNT_DISTINCT tem uma melhor performance que o comando COUNT(DISTINCT)

-
Introdução ao Big Data Clusters
O SQL Server 2019 – Big Data Clusters é uma plaforma de dados aberta, multi-nuvem para analytics em qualquer escala. É a unificação de Apache Spark para entregar o melhor engine de computação disponível para analytics em uma distibuição única e fácil de usar. Com esses engines o Big Data Clusters é uma solução nativamente criada para a nuvem e orquestrada pelo Kubernetes. Nossa missão é acelerar e dar poder aos usuários conforme sua fome por dados aumenta.
Arquitetura do Big Data Clusters
Veja abaixo o diagrama da arquitetura dos componentes do Big Data Clusters

- Controlador – O controlador fornece gerenciamento e segurança para o cluster. Ele contém o serviço de controle, o armazenamento de configuração e outros serviços em nível de cluster, como Kibana, Grafana e Elastic Search.
- Conjunto de computação – O pool de computação fornece recursos computacionais para o cluster. Ele contém nós que executam o SQL Server em pods do Linux. Os pods no pool de computação são divididos em instâncias do SQL Compute para tarefas de processamento específicas.
- Conjunto de dados – O data pool é usado para persistência de dados. O pool de dados consiste em um ou mais pods executando o SQL Server no Linux. Ele é usado para ingerir dados de consultas SQL ou trabalhos do Spark.
- Conjunto de armazenamento – O pool de armazenamento consiste em pods de pool de armazenamento compostos por SQL Server no Linux, Spark e HDFS. Todos os nós de armazenamento em um cluster de big data do SQL Server são membros de um cluster HDFS.
- Conjunto de aplicativos – A implantação de aplicativos permite a implantação de aplicativos em clusters de Big Data do SQL Server fornecendo interfaces para criar, gerenciar e executar aplicativos.
-
Você ja usou a funcionalidade Memory Optimization Advisor?
A funcionalidade “Table Memory Optimization Advisor” é um interface de usuário feita para guiá-lo através configurações necessárias para utilizar essa funcionalidade.


No momento que o Table Memory Optimization Advisor verifica a sua table, ele valida todos os aspectos que podem impedir aquela tabela ser movida para inMemory OLTP.
Note que o Table Memory Optimization Advisor não modifica ou move sua tabela para inMemory. Ele apenas valida se tudo está ok para esse processo.
O Table Memory Optimization Advisor executa as seguintes tarefas:
- Analisa sua carga de trabalho para determinar os pontos de acesso onde o OLTP in-memory pode ajudar a melhorar o desempenho. O relatório de Análise de desempenho da transação recomenda as tabelas e os procedimentos armazenados que serão mais beneficiados com a conversão em OLTP in-memory.
- Ajuda você a planejar e executar a migração para o OLTP na memória. O caminho de migração de uma tabela com base em disco para uma tabela com otimização de memória pode ser demorado. O Orientador de Otimização da Memória o ajuda a identificar as incompatibilidades na tabela que você deve remover antes de movê-la para o OLTP na memória. O Orientador de Otimização em Memória também ajuda a entender o impacto que a migração de uma tabela para uma tabela com otimização de memória terá no seu aplicativo.
Após a execução do Table memory Optimization Advisor, será gerado um relatório contendo todas as recomendações para a migração da sua tabela ou stored procedure para a memória.

Depois que você identificar as tabelas que vou gostaria de mover para inMemory OLTP, você pode usar o Memory Optimization Advisor no SSMS para ajudá-lo a migrar tabelas em disco para tabelas otimizadas em memória.