Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Azure SQL Managed Instance é um motor de base de dados totalmente gerido como plataforma como serviço (PaaS) que oferece compatibilidade quase total com a mais recente edição do SQL Server Enterprise. Combina um modelo de implementação com âmbito de instância com redes nativas de rede virtual, oferecendo amplo suporte a funcionalidades do SQL Server juntamente com as vantagens operacionais de uma plataforma gerida. A Instância Gerida do SQL é direcionada para cargas de trabalho do SQL Server que dependem de funcionalidades no âmbito da instância, como consultas entre bases de dados, SQL Server Agent, Service Broker e integração com o common language runtime (CLR).
Este artigo parte do princípio de que, como arquiteto, analisou a árvore de decisão do armazenamento de dados e escolheu o Azure SQL Managed Instance como motor de base de dados para a sua carga de trabalho.
As orientações neste artigo fornecem recomendações de arquitetura mapeadas de acordo com os princípios dos pilares do Well-Architected Framework.
Âmbito da tecnologia
Esta análise foca-se nas decisões inter-relacionadas para os seguintes recursos do Azure:
- Azure SQL Managed Instance
Observação
Este guia de serviço baseia-se nas orientações do guia de serviços Azure SQL Database. O SQL Managed Instance partilha o motor de base de dados SQL Server com o SQL Database, mas utiliza um modelo de implementação com âmbito de instância, com arquitetura, rede e funcionalidades distintas. Consulte o guia da base de dados SQL para orientações sobre plataformas partilhadas. Este guia foca-se nas capacidades específicas de Instâncias Geridas SQL e nas considerações arquitetónicas.
Reliability
O objetivo do pilar Confiabilidade é fornecer funcionalidade contínua, construindo resiliência suficiente e a capacidade de se recuperar rapidamente de falhas.
Os princípios de design de fiabilidade fornecem uma estratégia de design de alto nível aplicada a componentes individuais, aos fluxos do sistema e ao sistema como um todo.
Lista de verificação de design da carga de trabalho
Inicie sua estratégia de design com base na lista de verificação de revisão de projeto para Confiabilidade. Determine sua relevância para seus requisitos de negócios, tendo em mente a natureza de seu aplicativo e a criticidade de seus componentes. Alargar a estratégia de modo a incluir mais abordagens, conforme necessário.
Analisar quotas, limites e problemas conhecidos do SQL Managed Instance: SQL Managed Instance impõe limites regionais de implementação, contagem de bases de dados e limites de armazenamento, variando conforme o tipo de subscrição e a camada. Implementações de níveis superiores consomem mais quota vCore, o que limita o planeamento regional da capacidade.
- Considere problemas conhecidos que afetam grupos de failover, comportamento de backup durante o uso do link de replicação e restrições de migração de versões mais antigas do SQL Server. Reveja estas limitações durante o desenho inicial para evitar restrições que não consiga corrigir facilmente mais tarde.
Antecipe possíveis falhas: Utilize a análise de modos de falha para antecipar falhas e planear mitigações para a Instância Gerida de SQL.
Failure Mitigation As operações de gestão demoram horas e bloqueiam outras operações na instância ou na sub-rede Planeie as operações de escala durante as janelas de manutenção. Evite operações de gestão simultâneas e contabilize durações de várias horas nos planos de recuperação. A inicialização de um grupo de failover pode falhar devido a redes lentas ou a tamanhos grandes de bases de dados. Utilize peering global de rede virtual para a maior largura de banda. Monitorizar o progresso da distribuição e estimar a duração com base no tamanho da base de dados e na velocidade da ligação. Operações de gestão numa instância numa sub-rede podem bloquear ou atrasar operações noutras instâncias que partilham o mesmo cluster virtual Isole as instâncias de produção em sub-redes dedicadas para evitar impacto cruzado nas operações de desenvolvimento ou instâncias de teste. Construir redundância através da distribuição de zonas e seleção apropriada de níveis: Use redundância de zonas e seleção de níveis adequada para eliminar pontos únicos de falha dentro de uma região.
Active a redundância a nível de zona para distribuir réplicas entre zonas de disponibilidade. A arquitetura e a elegibilidade variam consoante o nível e a configuração de implementação.
Avaliar os efeitos da redundância no desempenho e nos serviços dependentes, incluindo a latência entre zonas em cargas de processamento de transações online (OLTP) e o alinhamento do armazenamento de backup com implantações com redundância por zona.
Planear a escalabilidade com base nos tempos de execução das operações de gestão: As operações de gestão demoram horas em vez de minutos, o que requer uma abordagem diferente para a estratégia de escalabilidade e para o planeamento da capacidade.
Prepare-se para prazos mais longos para a criação da primeira instância na sub-rede, o que leva muito mais tempo devido ao provisionamento de clusters virtuais. As operações concorrentes colocam-se sequencialmente na fila dentro de uma sub-rede.
Dimensione subredes considerando a capacidade de expansão futura. Sub-redes subdimensionadas limitam o crescimento, e gerações mistas de hardware criam clusters virtuais separados que consomem endereços IP extra.
Preprovisiona instâncias de espera quando precisas de tempos de resposta de escalabilidade rigorosos. Isolar cargas de trabalho de produção em sub-redes dedicadas para evitar o bloqueio de operações entre instâncias.
Configure monitorização e alertas, por exemplo, para o estado de saúde e replicação: Dê prioridade aos alertas nas métricas que sinalizam riscos de fiabilidade desde cedo. Acompanhe a disponibilidade das instâncias através de eventos de Saúde de Recursos, monitorize as transições de estado das operações de gestão através de um registo de atividade e verifique regularmente a conclusão automática de backups, pois falhas de backup podem surgir silenciosamente quando surgem preenchidos de armazenamento ou problemas no Sistema de Nomes de Domínio (DNS). Para instâncias configuradas com grupos de failover, emita um alerta sobre o atraso de replicação em relação aos limites de RPO para detetar uma deriva de geo-replicação antes que cause uma exposição inaceitável de perda de dados.
As transições de estado do grupo de failover revelam perturbações antes de escalarem para lacunas no processo de recuperação.
Implementar técnicas de resiliência de conexão e autopreservação: Construir resiliência ao nível da aplicação para absorver falhas transitórias de manutenção planeada, falhas e eventos de intercâmbio de funções DNS.
Adicione lógica de novas tentativas com backoff exponencial que leve em consideração a duração real dos failovers e as janelas prolongadas de atualização do DNS durante o failover geográfico.
Prepare-se para a degradação do desempenho do cold cache após failovers de nível de Uso Geral, onde a instância reinicia num novo nó sem réplicas quentes.
Programe janelas de manutenção durante períodos de baixo tráfego. Espaçar janelas entre pares de grupos de failover para evitar manutenção simultânea em ambos os membros.
Desenhe a estratégia de recuperação de desastres utilizando grupos de failover: Os grupos de failover replicam todas as bases de dados de utilizadores como uma unidade para uma instância geo-secundária noutra região, mas as bases de dados do sistema não estão incluídas. Deve sincronizar os inícios de sessão, credenciais, trabalhos do SQL Agent e definições ao nível da instância de forma independente para evitar falhas de autenticação e lacunas operacionais após a ocorrência de um failover.
** Utilize endpoints de ouvintes de grupos de failover em strings de ligação para evitar alterações durante o failover. Sincroniza as políticas de retenção entre membros porque as alterações de configuração não se replicam. Para ambientes híbridos, a ligação de Instância Gerida oferece um caminho alternativo de replicação.
Recomendações de configuração
| Recommendation | Benefit |
|---|---|
| Ative a redundância de zonas para cargas de trabalho SQL Managed Instance de produção que requerem proteção contra falhas em centros de dados. Podes configurar redundância de zonas durante a criação da instância ou converter instâncias existentes. Verifique a elegibilidade do nível antes de avançar. | Alcança garantias de acordo de nível de serviço (SLA) mais elevadas do que as implementações redundantes locais e sobrevive a falhas ao nível do datacenter sem alterações na ligação à aplicação. Elimina a zona de disponibilidade como um único ponto de falha, o que significa que a manutenção planeada numa zona não obriga a um failover visível ao nível da carga de trabalho. |
| Dimensione a sub-rede delegada para acomodar os requisitos atuais da instância, mais a margem de escalabilidade futura. Utilize o calculador de dimensionamento de sub-redes para determinar o espaço mínimo de endereços IP para o número de instâncias previstas em configurações de hardware e níveis. Adicionar capacidade de buffer para além dos requisitos mínimos porque o redimensionamento das subredes requer operações de migração complexas. Considere os limites de cluster virtual, onde diferentes gerações de hardware e combinações de níveis consomem endereços IP adicionais de sub-rede. |
O dimensionamento adequado das subredes previne gargalos de escalabilidade que exigem migração de sub-redes para serem resolvidos. O espaço de endereços IP sobreaprovisionado custa pouco e proporciona flexibilidade para o crescimento futuro das instâncias e alterações de níveis. |
| Configura alertas no Azure Monitor para métricas críticas de fiabilidade, como disponibilidade de instâncias, lag de replicação e saúde do backup. Crie regras de alerta que sejam ativadas antes de o lag de replicação ultrapassar os limiares do RPO. Acompanhe o consumo de armazenamento para evitar falhas de backup. | O alerta proativo permite-lhe responder rapidamente a desvios na replicação e problemas de integridade das instâncias antes que estes escalem para perda de dados ou interrupções prolongadas. A deteção precoce de falhas de backup previne lacunas na cobertura dos pontos de recuperação que podem passar despercebidas até precisar de uma restauração. |
| Adicione lógica de retentativa com backoff exponencial que tenha em conta os comportamentos de reconexão da Instância Gerida SQL durante eventos de failover. Estenda os tempos limite de retentativa em cenários de ouvintes de grupo de failover para cobrir a janela de mudança de função do DNS. | A lógica de retentativa absorve perturbações transitórias de conectividade resultantes de eventos de manutenção e failover, o que impede que erros de aplicação cheguem aos utilizadores. As aplicações recuperam automaticamente de interrupções breves sem intervenção manual. |
| Configure janelas de manutenção para deslocar os eventos de failover planeados para longe do cronograma padrão. Seleciona janelas que se alinhem com a tua atividade de menor carga de trabalho. Para pares de grupos de failover, atribua diferentes agendas de janelas de manutenção às instâncias primárias e secundárias para evitar manutenção simultânea. |
As janelas de manutenção transferem eventos de failover planeados para períodos previsíveis e de baixo tráfego, o que reduz o efeito das interrupções transitórias da ligação nos utilizadores. Agendas escalonadas entre instâncias de grupos de failover impedem a manutenção simultânea de ambos os membros. |
| Configure grupos de failover com âmbito de instância com uma política de failover gerida pelo cliente para recuperação de desastres entre regiões. Crie uma instância geo-secundária numa região emparelhada que tenha uma configuração correspondente e a mesma zona DNS. Estabelecer conectividade de rede virtual entre sub-redes utilizando peering global de rede virtual para replicação com a menor latência. |
Os grupos de failover oferecem geo-replicação automática de todas as bases de dados dos utilizadores e redirecionam as ligações através de pontos finais baseados em DNS. Esta abordagem suporta a recuperação entre regiões sem alterações na cadeia de ligação da aplicação. A política de failover gerida pelo cliente mantém-no no controlo das decisões de recuperação e do calendário. |
| Configure armazenamento de backup geo-redundante para manter cópias de backup numa região emparelhada. Utilize a restauração geográfica como opção de recuperação alternativa. Configure uma retenção a longo prazo que utilize armazenamento geo-redundante (GRS) para cenários de conformidade que exijam disponibilidade prolongada. | O armazenamento de backup geo-redundante permite-te recuperar para qualquer região Azure durante um desastre regional, mesmo sem grupos de failover. Esta abordagem fornece um caminho de recuperação independente que não depende da saúde da replicação em tempo real. |
| Considere o tempo de provisão de instância nos cálculos do tempo de restauração ponto no tempo (PITR) no objetivo de tempo de recuperação (RTO), porque o PITR restaura para uma nova instância em vez de uma já existente. Execute restauros de teste para medir a duração da recuperação de ponta a ponta, incluindo o provisionamento de instâncias. Teste tanto cenários de primeiro na sub-rede como de sub-rede existente para compreender a variação nos tempos de restauração. |
Cálculos precisos do RTO que tenham em conta o tempo de provisionamento, por exemplo, impedem que subestime a duração da recuperação durante incidentes reais. Tempos de restauro validados dão-lhe confiança de que o PITR cumpre os requisitos de recuperação da sua carga de trabalho. |
Segurança
O objetivo do pilar Segurança é fornecer garantias de confidencialidade, integridade e disponibilidade para a carga de trabalho.
Os princípios de design de segurança fornecem uma estratégia de design de alto nível para alcançar esses objetivos, aplicando abordagens ao design técnico da Instância Gerida SQL.
Lista de verificação de design da carga de trabalho
Inicie a sua estratégia de conceção com base no checklist de revisão de conceção para segurança e identifique vulnerabilidades e controlos para melhorar a postura de segurança. Alargar a estratégia de modo a incluir mais abordagens, conforme necessário.
Estabeleça uma linha de base de segurança: Comece com a linha base de segurança do Azure para Azure SQL. Foque-se nos controlos que o modelo com escopo de instância mais afeta, incluindo funções personalizadas ao nível do servidor para segmentação administrativa, delegação de subredes virtuais de rede para isolamento de rede, gestão de chaves Transparent Data Encryption (TDE) ao nível da instância e auditoria de operadores para acesso ao Suporte Microsoft.
O SQL Managed Instance partilha a base de segurança do Azure SQL, mas introduz controlos específicos da instância, como assemblies Common Language Runtime (CLR), servidores ligados e SQL Agent, que expandem a superfície de ataque para além do que a SQL Database expõe. Priorize estes controlos na sua revisão de base.
Aplicar estratégias de segmentação utilizando controlos baseados em identidade e ao nível da rede: A Instância Gerida SQL suporta segmentação baseada em identidade através de funções ao nível do servidor e da base de dados que impõem a separação de tarefas. Funções personalizadas ao nível do servidor fornecem segmentação administrativa detalhada que não está disponível na base de dados SQL. Separar o acesso ao plano de controlo do acesso ao plano de dados mantém a gestão das instâncias distinta das operações de dados.
A segmentação ao nível da rede baseia-se na implantação de instâncias em sub-redes dedicadas e delegadas, onde os grupos de segurança de rede (NSGs) controlam os fluxos de tráfego. Evite reutilizar tabelas de roteamento e NSGs entre sub-redes que participam no peering de rede virtual com sub-redes SQL Managed Instance.
Os agrupamentos de instâncias partilham recursos subjacentes de VM, o que afeta as garantias de isolamento entre locatários quando se consolidam as instâncias. Avalie se cargas de trabalho com requisitos de segurança diferentes precisam de instâncias separadas.
Integre com o Microsoft Entra ID para gestão de identidade e acesso: A Instância Gerida SQL suporta a autenticação Microsoft Entra através de diferentes métodos. Este suporte centraliza a gestão de identidades e apoia políticas de acesso condicional. A Instância Gerida SQL também suporta autenticação Windows através do Kerberos para os principais Microsoft Entra, uma funcionalidade não disponível na base de dados SQL. Pode fazer lift-and-shift de aplicações legadas sem alterações de código.
Planeie a arquitetura de identidade catalogando as identidades administrativas, operadoras e de carga de trabalho. Atribuir funções da base de dados usando princípios de privilégio mínimo. Use identidades geridas atribuídas pelo utilizador como identidade de instância para integração de serviços Azure.
Implemente isolamento de rede utilizando a Azure Virtual Network: A Instância Gerida SQL é implementada numa sub-rede virtual dedicada, que proporciona isolamento ao nível da rede por defeito e molda as decisões de conectividade e segurança.
Mantenha o endpoint público desativado, pois isso cria uma outra superfície de ataque, e os grupos de failover e a ligação da Instância Gerida suportam apenas conectividade de rede virtual local.
Delegue a sub-rede da instância gerida exclusivamente ao tipo de instância gerida e aplique regras NSG assistidas por serviços para controlo de tráfego.
Atribua tabelas de rotas únicas e NSGs a cada sub-rede de Instância Gerida de SQL para peering de rede virtual. Reutilizar tabelas partilhadas causa falhas de conectividade.
Configure a encriptação dos dados para proteção em repouso e em trânsito: A Instância Gerida SQL fornece múltiplas camadas de encriptação que cobrem dados em repouso, em trânsito e ao nível da aplicação. Cada camada exige decisões de configuração distintas.
Camada Scope Consideração chave TDE (Encriptação de Dados Transparente) Ao nível de instância, todas as bases de dados herdam a mesma chave A rotação afeta todas as bases de dados simultaneamente, e deve-se manter as versões anteriores de chaves para restaurar o backup. Encriptação de Transporte (TLS) Ligações em trânsito Aplicar os atuais padrões de Segurança da Camada de Transporte (TLS) e modos de ligação rigorosos para evitar ataques de downgrade de protocolo. Sempre criptografado Ao nível de coluna, as chaves ficam fora do motor de base de dados Protege os dados de utilizadores privilegiados. Enclaves seguros suportam operações do lado do servidor com dados encriptados. Endureça configurações de instâncias para reduzir a superfície de ataque: A Instância Gerida do SQL expõe capacidades para além da Base de Dados do SQL que expandem a superfície de ataque. Estas capacidades exigem decisões de reforço direcionadas juntamente com controlos de governação.
A política de atualização controla a cadência dos patches de segurança. Enfrenta um dilema entre a aplicação imediata e a compatibilidade do link da Instância Gerida.
SQL Agent, servidores ligados, assemblies CLR e xp_cmdshell exigem avaliação de risco. Desative as capacidades não utilizadas e faça cumprir os padrões TLS atuais.
Use o controlo de acesso baseado em funções do Azure (Azure RBAC) para restringir operações de gestão, aplicar bloqueios de recursos e impor configurações de segurança através do Azure Policy.
Proteja credenciais e chaves de encriptação usando identidades geridas e Azure Key Vault: As identidades geridas eliminam credenciais armazenadas para conectividade aplicação-instância e integrações entre serviços. As identidades geridas atribuídas pelo utilizador removem os segredos das cadeias de ligação e simplificam a gestão da rotação.
O Key Vault fornece gestão unificada do ciclo de vida para protetores TDE e chaves mestras de coluna Always Encrypted. A monitorização de acesso a chaves deteta padrões de utilização invulgares que podem indicar uma violação.
O SQL Managed Instance utiliza objetos de credenciais para escrever registos de auditoria em armazenamento de blobs. Renove estas credenciais antes de expirarem para manter a continuidade da auditoria. Planeie procedimentos de transferência de credenciais para identidades que utilizam autenticação SQL durante a migração.
Configurar monitorização de segurança e registo de auditorias: A auditoria SQL Managed Instance suporta Azure Blob Storage, Azure Event Hubs e registos Azure Monitor como alvos de auditoria. A auditoria do operador proporciona visibilidade sobre as operações de Suporte Microsoft na instância. A integridade dos registos de auditoria exige controlos de evidência de adulteração para a conformidade.
A integração com Log Analytics suporta consulta avançada e correlação de eventos de segurança, enquanto os Event Hubs suportam a integração externa de informação de segurança e gestão de eventos (SIEM). O Microsoft Defender para SQL adiciona proteção contra ameaças, incluindo alertas para injeção, força bruta e padrões de acesso invulgares.
Acompanhar eventos de autenticação, execução de consultas e alterações de privilégios através de especificações de auditoria para detetar tentativas de escalonamento e acessos não autorizados.
Recomendações de configuração
| Recommendation | Benefit |
|---|---|
| Crie funções personalizadas ao nível do servidor que definam permissões para funções administrativas específicas, em vez de conceder privilégios amplos. Evite atribuir contas incorporadas de db_owner ou de administrador do servidor a cargas de trabalho de aplicações. | Reduz o risco de escalada de privilégios ao limitar cada função administrativa às permissões mínimas necessárias. Funções personalizadas ao nível do servidor permitem impor uma separação detalhada de funções que as funções incorporadas não proporcionam. |
| Ative a autenticação apenas Microsoft Entra e desative a autenticação baseada em SQL para a instância gerida. Antes de mudar, migre tarefas do SQL Agent, servidores vinculados e credenciais de auditoria que dependem de logins SQL para entidades do Microsoft Entra. | Elimina vetores de ataque baseados em credenciais ao remover a autenticação SQL e ao impor protocolos modernos de identidade que suportam autenticação multifator. |
| Configure uma identidade gerida atribuída pelo utilizador como identidade de instância para integração de serviços Azure, incluindo TDE que utilize chaves geridas pelo cliente, auditoria para armazenamento e autenticação entre serviços. | Elimina a sobrecarga de gestão de credenciais para a integração de serviços Azure e reduz o risco de segredos expostos na configuração. |
| Mantenha o endpoint público desligado para instâncias de produção. Se precisar de acesso público, restrinxa-o a intervalos específicos de endereços IP usando regras NSG. Use a conectividade local da rede virtual para acesso padrão e endpoints privados para cenários entre redes virtuais. | Reduz a superfície de ataque de rede para caminhos virtuais autorizados, o que simplifica auditorias de conformidade e reduz o raio de explosão das credenciais comprometidas. |
| Configure as regras NSG na sub-rede SQL Managed Instance para permitir apenas o tráfego de entrada necessário proveniente de fontes autorizadas. Aplicar uma abordagem de negação por defeito, mantendo as regras obrigatórias assistidas por serviço para operações de instância. | Previne o movimento lateral de recursos comprometidos em sub-redes adjacentes, o que limita o raio de explosão durante uma violação ao nível da rede. |
| Configura o TDE usando chaves geridas pelo cliente num cofre de chaves que tem a proteção contra eliminação suave e purga ativada. Use uma identidade gerida atribuída pelo utilizador para o acesso à chave. Ativa a rotação automática e dedica um cofre de chaves aos recursos da Instância Gerida SQL. | Mantém controlo total sobre o ciclo de vida das chaves de encriptação, incluindo rotação e revogação, e cumpre os requisitos de conformidade com a gestão de chaves organizacionais. |
| Use o Microsoft Defender para SQL para ativar a avaliação de vulnerabilidades e a proteção avançada contra ameaças. Configure alertas para eventos de deteção e encaminhe-os para operações de segurança através do Microsoft Defender for Cloud. | Detetaria configurações incorretas de segurança e ameaças ativas através de varreduras automatizadas e análise comportamental que se integram nos seus fluxos de trabalho de operações de segurança. |
| Desligue o SQL Agent se a carga de trabalho não o usar. Quando ativo, evite atribuir tarefas a contas altamente privilegiadas e configure contas proxy para passos que exijam acesso específico a credenciais. | Previne a elevação de privilégios através do SQL Agent ao restringir a posse de trabalhos e o acesso a credenciais, minimizando assim a superfície de ataque específica de uma Instância Gerida SQL. |
| Armazene as chaves protetoras TDE e as chaves mestras da coluna Always Encrypted num cofre de chaves que tenha proteção contra eliminação suave e purga. Ativa o registo de auditoria do Key Vault e usa um cofre dedicado para a Instância Gerida SQL para evitar limitações. | Centraliza a gestão de chaves de encriptação com um registo de auditoria completo e protege contra a perda acidental de chaves que possa impedir o acesso à base de dados. |
| Ativa a auditoria de servidores e configura grupos de eventos para capturar a atividade de início de sessão e as consultas concluídas. Configura dois destinos. Use o Armazenamento Blob para retenção a longo prazo e os registos do Azure Monitor para análise em tempo real. Crie uma auditoria de servidor separada que tenha a auditoria do operador ativada para acompanhar as operações de Suporte da Microsoft. Ativa o armazenamento imutável nos contentores de blob de auditoria para evitar adulteração de registos. |
Mantém um registo completo de auditoria da atividade da base de dados para requisitos de conformidade, investigação de incidentes e deteção de anomalias. |
| Configure as definições de diagnóstico para enviar eventos de auditoria de segurança para um espaço de trabalho de Log Analytics. Use consultas da Linguagem de Consulta Kusto (KQL) para deteção de anomalias e configure alertas sobre padrões de atividade suspeitos, como falhas repetidas em iniciar sessões. | Permite-lhe analisar eventos de segurança em tempo real e correlacionar entre cargas de trabalho, utilizando agregação centralizada de registos e deteção automática de ameaças. |
Otimização de Custos
A Otimização de Custos concentra-se na deteção de padrões de gastos, priorizando investimentos em áreas críticas e otimizando em outras para atender ao orçamento da organização e, ao mesmo tempo, atender aos requisitos de negócios.
Os princípios de conceção de Otimização de Custos fornecem uma estratégia de design de alto nível para alcançar esses objetivos e fazer compromissos conforme necessário no design técnico relacionado com a Instância Gerida SQL e o seu ambiente.
Lista de verificação de design da carga de trabalho
Inicie a sua estratégia de design com base na lista de verificação da revisão de design para a otimização de custos em investimentos. Ajuste o design para que a carga de trabalho esteja alinhada com o orçamento alocado para a carga de trabalho. O seu design deve usar as capacidades certas do Azure, monitorizar investimentos e encontrar oportunidades para otimizar ao longo do tempo.
Crie e mantenha um modelo de custos que tenha em conta o modelo de faturação computacional provisionada: SQL Managed Instance utiliza um modelo de computação sempre provisionado, onde os vCores faturam continuamente independentemente da utilização. O seu modelo de custo deve ter em conta os principais fatores de custo, que incluem seleção de níveis de serviço, contagem de vCores, geração de hardware e alocação de armazenamento com base no tamanho máximo configurado.
Faturação ao nível da instância significa que todas as bases de dados partilham os custos de computação, o que requer um mapeamento claro para chargeback e showback. Inclui mecanismos de licenciamento e compromisso como Azure Hybrid Benefit, capacidade reservada e réplicas em espera sem necessidade de licença adicional. Cada alavanca reduz custos através de um mecanismo diferente.
As restrições regionais de quotas vCore podem forçar arquiteturas multisubscrição, o que acrescenta complexidade ao acompanhamento de custos e à governação.
Monitorizar e analisar custos para identificar oportunidades de otimização: No modelo sempre provisionado, a computação ociosa ainda incorre em custos. Use o Microsoft Cost Management para acompanhar os custos de computação, armazenamento, backup e licenciamento por instância. Compare o consumo real de armazenamento com o máximo reservado para identificar o desperdício de faturação.
Monitorize a utilização de recursos para identificar o sobreprovisionamento do vCore e validar se o nível de serviço atual permanece justificado. Crie alertas de orçamento, previsão e anomalias para detetar aumentos inesperados de custos devido a alterações de escalabilidade ou configuração.
Otimize as configurações de computação e licenciamento para reduzir os custos de recursos provisionados: Os custos de computação acumulam-se continuamente no modelo apenas provisionado, por isso, ajuste corretamente o número de vCores e otimize o licenciamento desde o início. Analise a utilização antes de selecionar a configuração. Use o nível de Uso Geral quando as cargas de trabalho tolerarem maior latência de armazenamento. A diferença de escalão é a maior alavanca de custo.
Aplicar o Benefício Híbrido do Azure para licenças SQL Server existentes, comprometer-se com capacidade reservada para cargas de trabalho previsíveis e designar os secundários do grupo de failover como réplicas standby sem licença quando servem apenas para recuperação de desastres.
Otimize os custos ambientais em instâncias de produção e não produtivas: Configurações idênticas de produção e não produção desperdiçam o orçamento num modelo sempre provisionado. Diferencie os perfis de custos do ambiente aplicando mecanismos de poupança específicos de SQL Managed Instance a cada nível.
Otimize ambientes não produtivos utilizando stop/start em instâncias de uso geral durante períodos de inatividade previsíveis para eliminar custos de computação e licenciamento.
Diferencie configurações de ambiente implementando instâncias não produtivas que utilizem contagem reduzida de vCore e preços de subscrição para testes de desenvolvimento.
Otimize os ambientes de recuperação de desastres avaliando a restauração geográfica como uma alternativa de menor custo aos grupos de failover para cargas de trabalho não críticas.
Consolide pequenas cargas de trabalho utilizando pools de instâncias para melhorar a eficiência dos recursos: Os pools de instâncias consolidam múltiplas pequenas instâncias em computação partilhada, o que reduz a sobrecarga por instância. Os pools suportam configurações vCore mais pequenas, exclusivas de implementações em pool, e estão restritos ao nível de Uso Geral nas gerações de hardware suportadas.
A computação do pool é cobrada ao nível do pool independentemente do número de instâncias que sejam executadas nele, portanto, vCores não utilizados continuam a gerar custos. As decisões sobre licenciamento e capacidade reservada aplicam-se uniformemente em todas as instâncias do pool.
As instâncias agrupadas partilham recursos locais de disco e rede, o que pode criar efeitos de vizinho ruidoso. Cada instância recebe vCores dedicados e memória, mas cargas de trabalho que exijam isolamento mais forte devem ser implementadas como instâncias autónomas.
Recomendações de configuração
| Recommendation | Benefit |
|---|---|
| Compare o consumo real de armazenamento com o tamanho máximo configurado, porque o SQL Managed Instance fatura armazenamento reservado independentemente da utilização. Reduzir o máximo reservado em situações em que a alocação excede significativamente o consumo. | Identifica as instâncias em que o armazenamento reservado excede o uso real, para que possa ajustar o tamanho e reduzir o desperdício de faturação por GB no modelo de armazenamento reservado SQL Managed Instance. |
| Ative o Azure Hybrid Benefit na Instância Gerida do SQL para aplicar licenças existentes do SQL Server que possuam Software Assurance. As licenças Enterprise Edition oferecem as proporções de conversão mais favoráveis, especialmente no nível de Uso Geral. Quando parar uma instância de uso geral, desative primeiro o Azure Hybrid Benefit e realoque as licenças para outros recursos Azure SQL. Reative o benefício depois de reiniciares a instância. |
Reduz os custos de licenciamento do SQL Server ao utilizar as licenças locais existentes para implementações na cloud. Os clientes da Enterprise Edition obtêm as maiores poupanças no nível de Uso Geral, graças às favoráveis taxas de conversão vCore. |
| Compre compromissos de capacidade reservados para implementações de Instâncias Geridas SQL que tenham cargas de trabalho previsíveis e de longa duração. Aplicar reservações a conjuntos de instâncias para combinar economias em computação partilhada com descontos baseados em compromisso. Para cargas de trabalho com agendas previsíveis, executar várias instâncias menores em diferentes períodos de tempo dentro da mesma reserva vCore. Não podes transferir as horas reservadas não utilizadas, por isso maximiza a utilização através do agendamento. |
A fixação de preços baseada em compromisso reduz custos em comparação com as tarifas pay-as-you-go para configurações estáveis de carga de trabalho. Capacidade reservada combinada com pools de instâncias fornece o modelo de implementação mais rentável para múltiplas pequenas instâncias. |
| Designe a instância secundária num grupo de failover como uma réplica de espera sem licença quando a usar exclusivamente para recuperação de desastres. O standby suporta transferências automáticas, backups, manutenção e simulacros de recuperação de desastres, mas não conexões de produção. | Elimina os custos de licenciamento do SQL Server no secundário de recuperação de desastres, mas mantém o mesmo RPO e RTO que uma réplica legível. Liberta licenças Azure Hybrid Benefit para alocação a outros recursos Azure SQL, o que aumenta o valor dos investimentos em licenças existentes. |
| Interrompa as instâncias de uso geral durante períodos de inatividade previsíveis para evitar custos de vCore e licenciamento. Cria horários de paragem e arranque que definam pares e define um intervalo mínimo entre ações sucessivas. Tenha em conta a latência de arranque ao desencadear operações de arranque antes de a instância ter de estar pronta. Não podes parar instâncias que tenham funcionalidades como grupos de failover ou redundância de zonas ativadas. |
Elimina os custos de computação e licenciamento durante os períodos de inatividade, mas mantém os dados e o armazenamento de backup. A automação garante poupanças consistentes sem intervenção manual. |
| Implementar pools de instâncias para alojar múltiplas pequenas instâncias geridas que partilhem computação pré-provisionada.
Dimensiona o pool com base no total de vCores necessários, ativa o Azure Hybrid Benefit ao nível do pool e combina com a capacidade reservada para o maior desconto. Evite pools para cargas de trabalho que necessitem do nível Business Critical, redundância zonal ou isolamento estrito de desempenho. As instâncias agrupadas partilham recursos locais de disco e rede, pelo que cargas de trabalho sensíveis à latência com risco de vizinhos ruidosos devem ser implementadas como instâncias autónomas. |
Desbloqueia configurações vCore mais pequenas que não estão disponíveis fora dos pools, permitindo migrar pequenas instâncias SQL Server de forma económica sem sobreprovisionamento. Os recursos de computação partilhados reduzem a sobrecarga por instância, mas mantêm vCore dedicado e isolamento de memória para cada instância agrupada. |
Excelência Operacional
A Excelência Operacional concentra-se principalmente nos procedimentos para práticas de desenvolvimento, observabilidade e gestão de lançamentos.
Os princípios de design de Excelência Operacional fornecem uma estratégia de design de alto nível para alcançar essas metas relativamente aos requisitos operacionais da carga de trabalho.
Lista de verificação de design da carga de trabalho
Inicie a sua estratégia de design com base na lista de verificação de revisão de design para Excelência Operacional para definir processos de observabilidade, testes e implementação relacionados com a Instância Gerida SQL.
Implementar práticas seguras de implementação para alterações de configuração das instâncias: As operações de gestão de instâncias geridas em SQL envolvem alterações de infraestrutura de clusters virtuais que duram muito mais tempo do que as operações típicas de base de dados. Planeie as suas práticas de implantação tendo em conta estes períodos prolongados para minimizar a perturbação da carga de trabalho.
Tenha em conta a duração prolongada das operações de criação, escalabilidade e alteração de níveis. Não os agendes durante as horas de ponta. As operações dentro da mesma sub-rede são serializadas.
Planeie estratégias de rollback e implementação em fases que validem as alterações de configuração em instâncias não produtivas primeiro, porque as operações de escalabilidade em ambas as direções demoram tempo comparável.
Coordenar as alterações na implementação do grupo de failover garantindo que as instâncias tenham políticas de atualização que correspondam. Alterações de calendário para instâncias primárias e secundárias em diferentes momentos.
Defina infraestrutura como código para implantações de instâncias integradas em rede virtual: A Instância Gerida SQL requer uma implementação integrada em rede virtual, com delegação de sub-rede, regras NSG e tabelas de roteamento definidas antes do provisionamento. Estruture a sua infraestrutura como modelos de código (IaC) em camadas de dependência, de modo que a rede seja implementada primeiro, seguidos pela identidade e RBAC, e os recursos da instância por último.
Configura a deteção de desvio de configuração para regras de sub-rede, tabelas de rotas e propriedades de instância. Use a Política Azure para impor padrões de implementação como etiquetas obrigatórias, níveis permitidos e requisitos de redundância de zonas para instâncias de produção.
Pipelines de design, construção e implementação para alterações de esquemas e instâncias de base de dados: As alterações na infraestrutura das instâncias e as implementações de esquemas de base de dados operam em escalas temporais fundamentalmente diferentes. Separa as fases do pipeline de forma adequada. Utilize sondagens baseadas no estado para as fases da infraestrutura e portas de aprovação antes de qualquer operação que desencadeie trabalho prolongado de gestão.
As alterações de esquema requerem validação face a diferenças documentadas de compatibilidade T-SQL antes da implementação. Verifique a compatibilidade no pipeline e verifique as dependências de consultas entre bases de dados e as funcionalidades de âmbito de instância na validação pós-implementação.
Estabeleça observabilidade utilizando o Azure Monitor e diagnósticos nativos SQL: A observabilidade da Instância Gerida SQL requer tanto telemetria da plataforma Azure Monitor como diagnósticos nativos SQL, como vistas de gestão dinâmica (DMVs), Query Store e eventos estendidos. Combine estas camadas para obter uma visão completa da saúde da instância e do desempenho da carga de trabalho.
Configura a monitorização da plataforma através do Azure Monitor aplicando definições de diagnóstico em toda a instância. Os eventos das operações de gestão aparecem no registo de atividades, e os alertas de Saúde de Recursos fornecem avisos precoces tanto de eventos planeados como não planeados. No lado da base de dados, use o Query Store como ferramenta principal para análise de carga de trabalho e otimização de índices. O SQL Managed Instance não suporta afinação automática de índices.
Subscreva alertas de Saúde de Recursos e notificações antecipadas de manutenção para avisos precoces de eventos planeados e não planeados.
Automatizar tarefas de gestão, monitorização e manutenção: A Instância Gerida SQL inclui o SQL Agent, um agendador de tarefas incorporado que gere a manutenção da base de dados e tarefas operacionais sem orquestração externa. Combine o SQL Agent com automação ao nível Azure para uma cobertura total tanto das operações do motor de base de dados como do plano de gestão.
Use o SQL Agent para manutenção recorrente da base de dados, sincronização de login com grupos secundários de failover e alertas sobre falhas de trabalho.
Use Azure Automation ou Azure Functions para operações que requerem interação com o Azure Resource Manager, como monitorizar operações de gestão e gerir a retenção de backups.
Automatize operações de ciclo de vida, como interrupções e reinícios agendados para instâncias elegíveis durante períodos de inatividade e configuração de diagnóstico consistente ao provisionar novas instâncias.
Estabelecer práticas de teste e validação para implementações de bases de dados: A compatibilidade do SQL Managed Instance com o SQL Server suporta ferramentas de teste padrão, mas ainda é necessário validar as operações de gestão, as dependências entre bases de dados e as funcionalidades no âmbito da instância. Use ambientes de teste de Instâncias Geridas SQL reais porque a base de dados SQL e o SQL Server têm comportamentos diferentes de infraestrutura e operações de gestão.
Recomendações de configuração
| Recommendation | Benefit |
|---|---|
| Monitorize o progresso das operações de gestão usando PowerShell, a CLI Azure ou a API REST para acompanhar passos e detetar problemas precocemente. Cancelar operações paradas ou desnecessárias quando disponível. O próprio cancelamento exige tempo de limpeza da infraestrutura. | A sua equipa ganha visibilidade sobre operações prolongadas para tomar decisões informadas sobre esperar, cancelar ou escalar. O cancelamento antecipado reduz o impacto das operações problemáticas antes que provoquem perturbações prolongadas. |
Implemente os pré-requisitos de rede da SQL Managed Instance como um módulo IaC separado que seja completado antes do início do provisionamento da instância. Incluir a delegação de subredes em Microsoft.Sql/managedInstances e as regras NSG obrigatórias para tráfego de gestão no modelo. |
Valida os pré-requisitos de rede de trabalho antes do início do provisionamento da instância, o que evita falhas de implementação devido à falta de delegação ou regras NSG. Use módulos separados para gerir o ciclo de vida da infraestrutura de redes e bases de dados de forma independente. |
| Defina os tempos de espera do pipeline para as fases da infraestrutura SQL Managed Instance com base nas durações de operação documentadas, que variam significativamente consoante o tipo de operação. Consulta a API de operações de gestão num passo de loop para acompanhar o progresso e identificar falhas de forma antecipada. Não confie em temporizadores de adormecimento fixos que não conseguem distinguir operações interrompidas de operações de longa duração. |
Os tempos de espera corretos eliminam falhas falsas no pipeline causadas por operações que excedem os períodos de tempo de espera padrão. As verificações de progresso dentro do pipeline ajudam a sua equipa a responder mais rapidamente a falhas genuínas, em vez de esperar que temporizadores arbitrários expirem. |
| Ative as definições de diagnóstico com âmbito de instância e transmita os registos de recursos de todas as categorias relevantes para um espaço de trabalho de Log Analytics. Aplique a mesma configuração de exportação em streaming em todas as instâncias para estabelecer uma base de observabilidade fiável. Adicionar definições de diagnóstico do registo de atividade para capturar os eventos de operações de gestão. Utilize indicadores virtuais de saúde do cluster para detetar problemas ao nível da infraestrutura que afetem a disponibilidade das instâncias. |
Use consultas KQL no Log Analytics para analisar registos em todas as instâncias, o que suporta a análise histórica de tendências para planeamento de capacidade e resolução de problemas de desempenho. Operações de gestão, telemetria e dados de integridade do cluster virtual ajudam a resolver problemas de operações prolongadas e coordenação ao nível de sub-rede que são específicos da SQL Managed Instance. |
| Configure notificações antecipadas para eventos de manutenção planeada, para receber alertas antes da janela abrir e quando a manutenção terminar. Use estas notificações para ativar fluxos de trabalho de preparação, como notificar equipas de aplicações ou ajustar políticas de tentativas novamente. | A sua equipa de operações tem tempo de preparação prévia antes da manutenção planeada, o que reduz a perturbação das cargas de trabalho críticas para o negócio e apoia a comunicação proativa com as partes interessadas. |
| Configure alertas de registo de atividade para operações de gestão que excedam os limiares de duração esperados ou falhem. Operações falhadas podem deixar a instância num estado intermédio que requer intervenção. Use a API de operações de gestão ou os Azure Monitor workbooks para identificar as tendências de progresso e duração das operações em todo o seu conjunto de Instâncias Geridas SQL. |
A deteção precoce de operações paradas ou falhadas reduz a janela de risco durante alterações prolongadas na infraestrutura. A tua equipa tem tempo para intervir antes que o impacto aumente. |
| Crie trabalhos SQL Agent para manutenção de índices, atualizações estatísticas e verificações de consistência em todas as bases de dados da instância. Programe estes trabalhos durante períodos de pouco tráfego e faça a execução escalonada para evitar contenção de recursos. | A manutenção automatizada consistente mantém a integridade do banco de dados e o desempenho das consultas no caminho certo, sem a necessidade de ferramentas externas de agendamento. O SQL Managed Instance Native SQL Agent reduz a sobrecarga operacional em comparação com a infraestrutura de automação personalizada. |
| Use projetos de bases de dados SQL com a plataforma de destino SQL Managed Instance para validar a compatibilidade com T-SQL e identificar sintaxe não suportada antes da implementação em produção. Teste dependências de consultas entre bases de dados utilizando nomes em três partes nos testes de integração. Verifique funcionalidades com escopo de instância, como definições de trabalhos do SQL Agent, configurações do Service Broker e servidores ligados, como parte da validação de implementação. |
Encontra-se problemas de compatibilidade e falhas de implementação antes de chegarem à produção, o que reduz o risco de rollback para operações que demoram muito tempo a ser concluídas. |
Eficiência de desempenho
A Eficiência de Desempenho consiste em manter a experiência do usuário mesmo quando há um aumento na carga por meio do gerenciamento de capacidade. A estratégia inclui dimensionar recursos, identificar e otimizar potenciais gargalos e otimizar para obter o máximo desempenho.
Os princípios de design de Eficiência de Desempenho fornecem uma estratégia de design de alto nível para atingir essas metas de capacidade de acordo com o uso esperado.
Lista de verificação de design da carga de trabalho
Comece a sua estratégia de design com base na lista de verificação de revisão de projeto para Eficiência de desempenho. Defina uma linha de base baseada em indicadores-chave de desempenho para a Instância Gerida de SQL.
Planeamento da capacidade de condução: A Instância Gerida SQL utiliza um modelo com âmbito de instância onde todas as bases de dados partilham vCores, memória, operações de entrada/saída por segundo (IOPS) e armazenamento. O planeamento da capacidade em todo o património da base de dados é essencial porque o consumo de recursos de uma base de dados afeta diretamente todas as outras.
Identificar metas de desempenho para tempo de resposta, taxa de transferência e sessões simultâneas. Capturar as linhas de base de desempenho antes da migração e os padrões de crescimento do projeto para o número de bases de dados, armazenamento e volumes de transações ao longo do ciclo de vida da instância. Tenha em conta as restrições específicas do TempDB por nível quando planeia cargas de trabalho intensivas em TempDB.
As operações de gestão para escalabilidade demoram horas, em vez dos minutos típicos de outras ofertas Azure SQL. Planeie a capacidade com margem suficiente para evitar necessidades urgentes de escalabilidade e coordene as operações com janelas de manutenção para minimizar a interrupção do negócio.
Selecione a geração de hardware e o nível de serviço conforme os requisitos de carga de trabalho: A geração de hardware e a seleção do nível de serviço determinam a razão de memória, as características de I/O e o perfil de latência disponíveis para a sua carga de trabalho.
Decisão O que avaliar Escalão de serviço Ajusta à latência de I/O e aos requisitos de funcionalidades. Considere as diferenças de arquitetura entre armazenamento remoto e local e o efeito de latência das configurações redundantes por zona. Modelo IOPS As abordagens de alocação variam desde escalabilidade dependente do tamanho do ficheiro (Uso Geral) até provisão ao nível de instância e por vCore (Business Critical, Next-gen General Purpose). Tipo de ligação Use o tipo de ligação Redirect em endpoints virtuais locais de rede para reduzir a latência por consulta para cargas de trabalho persistentes. Escolha a estratégia de escalabilidade certa para a sua carga de trabalho: A Instância Gerida SQL suporta apenas escalabilidade vertical. O serviço não oferece escalabilidade automática, computação sem servidor ou uma camada Hyperscale.
Planeie o escalonamento vertical em janelas de operação com duração de várias horas para alterações de níveis, alterações de geração de hardware e ajustes de vCore. Programe estas operações durante os períodos de manutenção planeados.
Descarregue as cargas de trabalho de leitura para a réplica secundária legível integrada na camada Business Critical. Esta réplica serve consultas apenas de leitura sem custo adicional para cargas de trabalho como relatórios, análises e, eventualmente, leituras consistentes.
Utilize memória flexível na Next-gen General Purpose para ajustar a alocação de memória independentemente da contagem de vCores. As alterações desencadeiam um failover de instância como passo final.
Execute testes de desempenho para validar o comportamento da carga de trabalho da base de dados: Desenhe testes de desempenho que validem o comportamento concurrente de múltiplas bases de dados no modelo com âmbito de instância. Inclua combinações realistas de transações que combinem cargas de trabalho transacionais, em lote e de relatórios que corram simultaneamente. Efetue um teste com a contagem real de registos na base de dados e os volumes de dados planeados para a instância.
Capture as linhas de base pré-implementação e compare o comportamento pós-migração entre diferentes gerações de hardware e níveis de serviço para confirmar que a configuração selecionada cumpre os seus requisitos. Meça o tempo de recuperação da carga de trabalho após failovers e operações de gestão, especialmente em níveis que utilizam armazenamento remoto onde o pool de buffers tem de ser reconstruído.
Identificar e monitorizar indicadores de desempenho: Monitorizar tanto ao nível de instância como de base de dados para identificar contenção de recursos, pois todas as bases de dados partilham recursos computacionais no modelo de âmbito de instância.
Configure monitorização ao nível da instância para acompanhar métricas principais e defina alertas sobre os limiares de utilização antes de as cargas de trabalho serem afetadas. Incluir o throughput de escrita de logs em relação aos limites de cada nível.
Use a Loja de Consultas como ferramenta principal para identificar consultas regressadas e planear alterações. Combine-o com análise manual de índices porque o SQL Managed Instance não suporta afinação automática de índices.
Adicionar monitorização de recursos ao nível da base de dados para acompanhar o consumo por base de dados e detetar contendas entre recursos partilhados como TempDB e armazenamento em memória.
Otimize o design da carga de trabalho e o desempenho das consultas: A Instância Gerida SQL inclui capacidades da Edição Empresarial que abordam desafios de desempenho específicos do modelo de âmbito de instância, como governação de recursos em bases de dados, consultas entre bases de dados, transações distribuídas e processamento em memória.
Tenha em conta as restrições específicas de recursos do serviço na sua estratégia de otimização. A alocação fixa do TempDB, as limitações de governação da taxa de escrita no log e os modelos de IOPS dependentes de camadas apresentam restrições e oportunidades de otimização.
Recomendações de configuração
| Recommendation | Benefit |
|---|---|
| Selecione a geração de hardware pela razão de memória por vCore em vez de adicionar vCores quando houver restrição de memória. A geração de hardware da série premium equilibra memória e custo, enquanto a geração de hardware da série premium otimizada para memória é adequada para pools de buffer amplos ou limites de capacidade OLTP em memória. | A redimensionação por razão de memória evita o sobreaprovisionamento dos vCores, o que reduz custos e atinge as metas de desempenho. |
| Defina o tipo de ligação Redirect no endpoint local da rede virtual para cargas de trabalho que se conectam dentro da rede virtual. Esta configuração encaminha o tráfego diretamente para o nó anfitrião após a autenticação inicial. Endpoints públicos e privados usam sempre o tipo de ligação Proxy independentemente desta definição. |
Reduz a latência por consulta para conexões persistentes de rede virtual local, contornando o gateway após a autenticação inicial. |
Encaminhe cargas de trabalho de leitura apenas para a réplica secundária Business Critical usando ApplicationIntent=ReadOnly na cadeia de conexão. Monitorize o atraso da réplica secundária para confirmar que as cargas de trabalho descarregadas atingem os objetivos de latência.Utilize o grupo de failover secundário geográfico para transferência de leitura entre regiões, quando disponível. No SQL Managed Instance, esta abordagem reduz a pressão sobre vCores partilhados e memória em todas as bases de dados da instância. |
Liberta computação primária para operações intensivas em escrita em todas as bases de dados ao direcionar as leituras para a réplica secundária incluída sem custo adicional. |
Ative a Loja de Consultas em Read-Write modo em cada base de dados e reveja relatórios regularmente para identificar consultas regressadas, alterações de planos e operações que consomem muitos recursos.Combine insights da Loja de Consulta com DMVs de índice em falta para avaliar e criar índices manualmente. O SQL Managed Instance não suporta gestão automática de índices. Defina valores de retenção e tamanho de armazenamento para equilibrar a disponibilidade histórica de dados com o consumo de armazenamento. |
Dá-te visibilidade contínua sobre a qualidade do plano de consulta e o comportamento em tempo de execução, para que possas detetar regressões cedo e tomar decisões de otimização informadas. |
| Use OLTP em memória na camada Business Critical para cargas de trabalho de alto rendimento como ingestão de dados, cache e estado da sessão. Tenha em conta a capacidade de armazenamento OLTP disponível em memória ao selecionar a geração de hardware, pois os limites variam consoante a configuração. | Elimina a contenção de latch e reduz a sobrecarga da CPU para workloads de alto rendimento, o que muitas vezes elimina a necessidade de um nível de computação superior. |
| Configure o governador de recursos para controlar a alocação de CPU, memória e E/S entre cargas de trabalho que partilham a instância e têm em conta comportamentos específicos de Instâncias Geridas em SQL. Esta funcionalidade aborda diretamente o risco de interferência de vizinho no modelo de implementação a nível de instância. | Impede que qualquer base de dados ou padrão de consulta monopolize os recursos partilhados da instância, o que protege o isolamento da carga de trabalho em todo o património da base de dados. |
| Planeia o uso do TempDB em função da alocação fixa e da configuração dos ficheiros, que não podes modificar no SQL Managed Instance. O nível de Uso Geral fornece uma alocação TempDB por vCore inferior do que outras ofertas Azure SQL. Avalie o nível Business Critical para cargas de trabalho intensivas em TempDB que excedam estas restrições. |
Evita o esgotamento do espaço do TempDB ao considerar as restrições fixas de alocação e configuração de ficheiros no nível de Uso Geral. |
| Otimize o tamanho dos ficheiros de dados no nível de Uso Geral para maximizar o IOPS. Ficheiros maiores recebem um throughput proporcionalmente maior da camada de armazenamento remota. No Uso Geral de Próxima Geração, o IOPS escala ao nível da instância com base no armazenamento reservado, em vez de escalar por ficheiro. |
Melhora o débito de leitura e escrita ao ajustar o tamanho dos ficheiros sem precisar de uma atualização para um nível superior. |
Políticas do Azure
O Azure fornece um conjunto extenso de políticas integradas relacionadas com a Instância Gerida SQL e as suas dependências. Algumas das recomendações anteriores podem ser auditadas por meio da Política do Azure. Por exemplo, pode verificar se:
- Deve usar chaves geridas pelo cliente para encriptar dados em repouso em instâncias geridas por SQL.
- Deves ativar a autenticação Microsoft Entra apenas em instâncias geridas por SQL.
- Deves bloquear o acesso à rede pública em instâncias geridas por SQL.
- Deves evitar redundância de backup GRS em instâncias geridas por SQL.
Para uma governação abrangente, reveja as definições incorporadas da Azure Policy para a Instância Gerida SQL e outras políticas que possam afetar a segurança da sua carga de trabalho na base de dados.
Recomendações do Azure Advisor
O Azure Advisor é um consultor de cloud personalizado que o ajuda a seguir as melhores práticas para otimizar as suas implementações no Azure.
Para obter mais informações, consulte Azure Advisor.
Exemplo de arquitetura
Arquitetura fundamental que demonstra as principais recomendações: Aplicação totalmente gerida e segura em SQL Managed Instance.