Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Considerações sobre as edições do SQL Server 2019


Ao embarcar no meu primeiro PASS Summit em alguns anos, é difícil conter minha empolgação com a versão mais recente do SQL Server. Ajudei Bob Ward (@bobwardms) com a edição técnica de seu livro mais recente, "SQL Server 2019 Revealed", e estive ativamente envolvido com as equipes de produto e meus colegas MVP ao longo dos ciclos CTP e RC. Eu até participei do evento muito exclusivo do SQL Server 2019 Airlift em Redmond na primeira semana de outubro – e embora fosse tarde demais para fornecer feedback que afetaria o RTM, fiz várias sugestões construtivas que esperamos ver em uma CU ( ou tão tarde quanto vNext).

O produto ainda não foi lançado, pelo menos no momento da escrita, mas eles começaram a definir quais recursos (e há muitos deles) estarão disponíveis em quais edições. Como você deve se lembrar, no SQL Server 2016 SP1, eles abriram todos os recursos da superfície de programação para todas as edições e muitos (mas certamente não todos) os recursos de desempenho e disponibilidade. Eu escrevi sobre isso em um post intitulado "Um grande negócio:SQL Server 2016 Service Pack 1". Este foi um momento muito emocionante, e eu só queria compartilhar alguns pensamentos sobre os acertos e erros na versão mais recente.

Acertos

  • A Recuperação Acelerada de Banco de Dados está na Edição Standard . Essa foi facilmente a maior surpresa para mim, pois pensei que seria um recurso da Enterprise Edition. É um recurso de disponibilidade, porque pode reduzir drasticamente o tempo de failover e recuperação, e também pode ser considerado um recurso de desempenho, porque agora você pode usar o mesmo armazenamento de versão local para coisas como RCSI em vez de compartilhar o armazenamento de versão em tempdb. Você pode até colocar o armazenamento de versão local em seu próprio grupo de arquivos, o que não era uma opção quando escrevi sobre o recurso em março. Ter isso disponível em todas as edições é fantástico, mas você precisa testar sua carga de trabalho em relação a uma linha de base.
  • Transparent Data Encryption (TDE) agora na Standard Edition . Tendo em mente que a documentação não é definitiva, esta é uma grande mudança para muitas lojas, e faz sentido que um recurso de segurança tão importante não seja um diferencial para a edição mais cara. Não é um recurso de desempenho nem de disponibilidade, e a segurança de dados básica e sensata não deve custar mais, IMHO. A Nike Neugebauer concorda. Always Encrypted e outros recursos como Row-Level Security e Dynamic Data Masking estão disponíveis em todas as edições, mas nem sempre se encaixam na solução de "botão fácil" que os clientes procuram.
  • Inlining de UDF escalar está em todas as edições - mesmo Express . Esse é um ótimo recurso que essencialmente oculta todo o desempenho ruim que você costumava obter de funções escalares definidas pelo usuário ineficientes (escrevi pela primeira vez sobre esse recurso há um ano). Estou surpreso que este não seja apenas Enterprise - poderia ter sido como exibições indexadas, onde a funcionalidade está disponível em todos os lugares, mas o comportamento é melhor (pelo menos por padrão) na Enterprise Edition. Fico feliz que todos serão beneficiados neste caso.
  • A configuração fornece melhores recomendações do mundo real . Este não é um item na lista de recursos, por si só, mas existem algumas novas opções e sugestões sobre MAXDOP e memória de servidor min/max que eu acho que são ótimas adições e permitirão que as pessoas configurem melhor suas instâncias desde o início:
    Nova tela MaxDOP na configuração ( clique para ampliar)

    Nova tela de memória na configuração ( clique para ampliar)

    Agora, se eles pudessem adicionar opções para outras coisas que são disruptivas após a instalação, como bloquear páginas na memória, alterar o limite de custo padrão para paralelismo, especificar sinalizadores de rastreamento de inicialização (como 3226!), destacar configurações de plano de energia abaixo do ideal e habilitar Grupos de Disponibilidade diretamente em vez de usar o Configuration Manager após o fato. E talvez eles pudessem remover aquele aviso irritante sobre o firewall; é sempre o mesmo e, pelo menos para mim, nunca foi significativo ou útil em nenhum cenário.

Erros

  • Eles ainda não ultrapassarão o limite de 128 GB para a Edição completa , apesar de muitos pedidos (como este de Erik Darling). Não é minha ideia original e não tornaria o licenciamento ou a aplicação mais simples, mas os limites de memória poderiam ser feita em relação ao número de núcleos licenciados. Dessa forma, seu limite de memória é baseado em quanto você gastou em licenciamento, não em algum limite arbitrário decidido em uma sala de conferência em algum lugar há 5 anos.

    Brent Ozar (@BrentO) também falou sobre a "tempestade perfeita " envolvendo concessões de memória na Standard Edition, e concordo plenamente - acho que os clientes pagariam com prazer o prêmio de mudar do licenciamento CAL para o núcleo na Standard Edition se agora significasse que eles poderiam usar mais (ou até mesmo toda) sua memória.
  • TempDB com otimização de memória é apenas Enterprise Edition , enquanto outras tecnologias de In-Memory Database, como Memory-Optimized Tables e Hybrid Buffer Pool, estão disponíveis na Standard Edition. Eu sinto que esse recurso é meio que um híbrido entre desempenho e disponibilidade; pelo menos mais equilíbrio do que, digamos, inlining UDF. Funções lentas apenas fazem as pessoas esperarem; um tempdb sobrecarregado pode quase literalmente derrubar sua instância. Também sinto que os clientes corporativos tendem a ter mais e melhor hardware para resolver o problema do que as lojas menores podem pagar. Os clientes que escolhem o Standard Edition não têm necessariamente as economias esperando para preencher cheques.

    Uma das sugestões que tive em torno desse recurso foi que deveria haver argumentos de linha de comando e/ou uma caixa de seleção de interface do usuário durante a configuração para habilitar esse recurso imediatamente após uma instalação ou atualização. Isso evitaria interrupções após a instalação, pois a única maneira de habilitar o recurso é executar uma reinicialização do serviço. O motivo pelo qual não está ativado por padrão é que existem padrões de carga de trabalho em que o benefício não será óbvio e alguns cenários de interrupção envolvendo transações e outros bancos de dados com tabelas com otimização de memória, então eles querem que você teste sua carga de trabalho e certifique-se de estão observando os tipos certos de contenção e que o benefício está lá. Mas e se eu já fiz isso em outro sistema com a mesma carga de trabalho?

Pensamentos de despedida


Embora possa parecer que estou reclamando, ainda estou super empolgado com esta versão e tudo o que ela tem a oferecer. Espero que a disponibilidade seja anunciada tanto no Ignite quanto no PASS Summit, então você pode ter os bits RTM em suas mãos quando ler isso.