Escolar Documentos
Profissional Documentos
Cultura Documentos
DE DADOS
Requisitos de hardware
Componente Requerimento
Mínimo:
Edições Express: 1 GB
Processador x64: AMD Opteron, AMD Athlon 64, Intel Xeon com suporte Intel
Tipo de processador
EM64T, Intel Pentium IV com suporte EM64T
Requerimento
Memória 2 GB
Espaço em disco 6 GB
Requisitos de software
Windows 10 TH1 1507 ou superior
Sistema operacional
Windows Server 2016 ou superior
O SQL Server é compatível com Red Hat Enterprise Linux (RHEL) (Servidor Red Hat Enterprise
Linux 8.0 - 8.5) e Ubuntu (Ubuntu 20.04 LTS). Também é compatível como uma imagem do
Docker, que pode ser executada no Docker Engine no Linux(Docker Engine 1.8+ no Linux).
Arquivos (dados, logs e demais informações) gerados pelo SQL Server e suas finalidades.
Primária (.mdf): Todo banco de dados possui um arquivo de dados primário. Contém informações
de inicialização do banco de dados e aponta para os outros arquivos no banco de dados.
Secundário (.ndf): Os dados podem ser distribuídos em vários discos, colocando cada arquivo em
uma unidade de disco diferente. Os Arquivos de dados são opcionais e definidos pelo usuário.
Log de Transações(ldf): Contém informações usadas para recuperar o banco de dados. Deve
haver, no mínimo, um arquivo de log para cada banco de dados.
A autenticação no SQL Server utiliza dois métodos de autenticação para autenticação para o
usuário se conectar a um banco de dados com uma conta de usuário.
Autenticação SQL: Nome de conta de usuário e uma senha associada é armazenada no banco
de dados mestre das contas de usuário vinculadas a um logon ou é armazenada no banco de
dados que contém as contas de usuário não vinculadas a um logon.
Autenticação do Azure Active Directory: Nome de conta de usuário e solicita que o serviço use
as informações de credenciais armazenadas no Azure Active Directory (Azure AD) ao usar esse
método de autenticação.
Backup diferencial: O backup diferencial contém apenas os dados que foram alterados desde a
base diferencial. Normalmente, os backups diferenciais são menores e mais rápidos de criar do
que a base de um backup completo. O backup completo é restaurado primeiro, seguido pelo
backup diferencial mais recente que faz apenas o backup dos dados que foram alterados desde o
último backup completo.
Backup do log de transações: É um backup de logs de transações que inclui todos os registros
de log de transações foram executadas serialmente pelo banco de dados desde o último backup
do log de transações. Com esse tipo de backup é possível recuperar o banco de dados em um
ponto específico no tempo ou ainda em um ponto de falha. Cada backup de log cobre a parte do
log de transações que estava ativa quando o backup foi criado incluindo todos os registros de log
que não foram submetidos a backup em um backup de log anterior.
A estratégia de backup define o tipo e a frequência dos backups como os backups serão testados
e em que local e como a mídia de backup deve ser armazenada. Na restauração da estratégia
define responsabilidade para realizar restaurações, como devem ser executadas para atender às
disponibilidades do banco de dados e minimizar a perda de dados
Testar backups: É muito importante testar sua estratégia de backup completamente para cada
um dos bancos de dados, restaurando uma cópia do banco de dados em um sistema de teste. É
necessário testar a restauração de cada tipo de backup que você pretende usar e também verificar
a consistência do banco de dados usando DBCC CHECKDB para saber se a mídia de backup não
foi danificada.
Níveis de permissões.
O SQL Server fornece funções do nível de servidor para ajudar a gerenciar as permissões em um
servidor. Estas funções são entidades de segurança que agrupam outras entidades de segurança.
Essas funções abrangem todo o servidor em seus escopos de permissões. No sistema
operacional Windows as funções são como grupos no sistema. A verificação de permissões pode
ser uma tarefa complexa. O algoritmo de verificação de permissão inclui a sobreposição de
associações de grupo e o encadeamento de propriedades, as permissões explícita e implícita, e
pode ser afetado pelas permissões em classes de protegíveis que contêm a entidade protegível. O
algoritmo contém três elementos essenciais: o contexto de segurança, o espaço de permissão e a
permissão necessária.
Auditoria.
A auditoria de uma instância do Mecanismo de Banco de Dados do SQL Server ou de um banco
de dados individual envolve o controle e o registro em log dos eventos que ocorrem no Mecanismo
de Banco de Dados. A auditoria do SQL Server permite criar auditorias de servidor, que podem
conter especificações de auditoria de servidor para eventos no nível de servidor, além de
especificações de auditoria de banco de dados para eventos no nível de banco de dados. Os
eventos auditados podem ser gravados nos logs de eventos ou nos arquivos de auditoria.
O objeto Auditoria do SQL Server coleta uma instância única de ações no nível do servidor e/ou do
banco de dados e grupos de ações a serem monitoradas. A auditoria está no nível de instância do
SQL Server. Você pode ter várias auditorias por instância do SQL Server.
Quando você está salvando informações de auditoria em um arquivo, para ajudar a impedir
falsificação, você pode restringir o acesso ao local do arquivo das seguintes maneiras:
Criptografia.
Em SQL Server, as chaves de criptografia incluem uma combinação de chaves públicas, privadas
e simétricas que são usadas para proteger dados confidenciais. Esta seção explica como
implementar e gerenciar chaves de criptografia. O SQL Server, dispõe de recursos que auxiliam
na criptografia de dados armazenados nas tabelas, bem como na obtenção da informação original
após reverter o processo/descriptografia.
Os planos de manutenção criam um fluxo de trabalho das tarefas necessárias para garantir que o
banco de dados seja otimizado, armazenado regularmente em backup e livre de inconsistências.
Replicação de dados
O espelhamento do banco de dados pode ser usado junto com a replicação para aprimorar a
disponibilidade ao banco de dados de publicação. O espelhamento do banco de dados
compreende duas cópias de um único banco de dados que geralmente reside em computadores
diferentes. Em determinado momento, apenas uma cópia do banco de dados está atualmente
disponível aos clientes. Essa cópia é conhecida como o banco de dados principal. As atualizações
realizadas pelos clientes no banco de dados principal são aplicadas à outra cópia do banco de
dados, conhecida como banco de dados espelho. O espelhamento envolve a aplicação do log de
transações de cada inserção, atualização ou exclusão efetuada no banco de dados principal, para
o banco de dados espelho.
O failover de replicação para um espelho tem o suporte total para os bancos de dados de
publicação, com suporte limitado para bancos de dados de assinatura. O espelhamento de banco
de dados não tem suporte para bancos de dados de distribuição. Para obter informações sobre
como recuperar um banco de dados de distribuição ou banco de dados de assinatura sem precisar
reconfigurar a replicação
Alta disponibilidade.
O sistema de alta disponibilidade é aquele que permanece disponível a maior parte do tempo,
minimizando ao máximo riscos de parada do sistema. Como muitos sistemas de informação têm
como elemento central bancos de dados relacionais, a continuidade dos negócios depende da
disponibilidade destes bancos.
Os bancos de dados que contêm tabelas com otimização de memória, com ou sem procedimentos
armazenados compilados nativos, são totalmente compatíveis com Grupos de Disponibilidade
AlwaysOn. Não há nenhuma diferença na configuração e no suporte de bancos de dados que
contêm objetos do OLTP na memória em comparação aos que não têm. Configurar bancos de
dados com componentes OLTP na memória fornece os seguintes benefícios: Uma experiência
totalmente integrada, Tempo de Failover comparável e Secundária Legível
Performance
A meta do monitoramento de bancos de dados é avaliar o desempenho do servidor. Um
monitoramento eficaz envolve a criação de instantâneos periódicos do desempenho atual para
isolar processos que estão ocasionando problemas, e a coleta contínua de dados para o controle
das tendências de desempenho.
A avaliação contínua do desempenho de banco de dados ajuda a minimizar tempos de resposta e
a maximizar a taxa de transferência, permitindo alcançar desempenho ótimo. Tráfego de rede, E/S
de disco e uso de CPU eficientes são fundamentais para um desempenho ótimo. É preciso
analisar minuciosamente os requisitos de aplicativos, compreender a estrutura lógica e física dos
dados, avaliar o uso de banco de dados e negociar compensações entre usos conflitantes, tais
como a do processamento de transações online (OLTP) versus o apoio à decisão.
O SQL Server Management Studio fornece a capacidade de exibir o plano de execução ao vivo de
uma consulta ativa. Esse plano de consulta dinâmica fornece informações em tempo real sobre o
processo de execução da consulta, conforme os controles fluem de um operador de plano de
consulta para outro.
Testes de stress.
Um servidor SQL é um servidor de banco de dados, o que significa que ele oferece banco de
dados, ou seja, várias coleções de dados classificados, serviços de programas de software e
estações de trabalho de computador. Programas de testes de stress do servidor SQL determinar o
quão bem o servidor pode realizar durante as cargas de trabalho normais e pesados.
Basicamente, estes testes determinam se ou não o servidor é suficientemente estável para fazer
as tarefas a que foi realizado para fazer.
SQLStress
Projetada para carregar consultas individuais de teste. Ele inclui suporte para randomização de
parâmetros de entrada para testar a repetibilidade do cache e inclui recursos básicos para
relatórios sobre recursos de servidor consumidos. É uma ferramenta gratuita que testa o processo
de instalação do Microsoft SQL Server, ajuda a determinar se há ou não nada de errado com a
infraestrutura da instalação. Podendo ser usado também para testar o quão bem o seu servidor de
jogos até os padrões da indústria e para testar o dimensionamento de hardware.
Dimensionamento de hardware refere-se aos recursos mínimos necessários para executar um
determinado programa de software.
SQLQueryStress
Esta é uma ferramenta gratuita que permite que você faça testes de estresse em consultas T-SQL.
A Transact-SQL é uma instrução que permite que os aplicativos para se comunicar com o servidor
SQL. Uma consulta procura bancos de dados como o servidor SQL para os critérios de palavras-
chave específicas. A ferramenta permite que você SQLQueryStress determinar quão estável suas
consultas são quando colocado sob um monte de estresse ou de carga pedidos. Ele também irá
ajudá-lo a determinar quais os recursos colocar mais pressão sobre o sistema. Esta informação
será emitida ao SQL Server na forma de estatísticas. Pode salvar todas as consultas que foram
executadas anteriormente. Essas consultas podem demorar um pouco para configurar, e esta
ferramenta ajuda a eliminar a necessidade de criação de consultas que serão usadas mais de uma
vez. A ferramenta SQLQueryStress usa um formato de assistente para ajudá-lo através do
processo de criação da consulta.
DTM DB Estresse
É uma ferramenta de utilitário que permite o teste em algumas partes do seu servidor ou do
servidor inteiro. Permite enviar os seguintes pedidos usando esta ferramenta de teste de estresse:
OLAP (processamento analítico online) e OLTP (processamento de transações on-line). O OLAP
permite analisar rapidamente os dados coletados a partir de consultas. O OLTP é um processo do
sistema que supervisiona os processos de transação como entrada de dados, ou procurar e
encontrar processos. O estresse DTM DB informações de saída tanto em formato HTML
(Hypertext Markup Language) ou Microsoft Excel formatos de texto. Esta ferramenta é compatível
com o Windows Server 2003, Server 2008, XP, Vista ou 7 e com ambos os sistemas x64, mas
para obter esta edição os usuários interessados terão primeiro entrar em contato com a empresa.
Plano de execução.
Exibe de maneira gráfica os métodos de recuperação de dados que o otimizador de consulta do
SQL Server escolheu. Além de mostrar também o custo (em termos de uso de recursos) da
execução das instruções. Permitindo enxergar as etapas de execução da uma query e assim
verificar o que pode ser melhorado, além de ter como outra utilidade a comparação entre duas
queries. É uma boa prática verificar se o plano de consulta da nova query é melhor que o plano de
consulta da query anterior. Para poder executar consultas, o Mecanismo de Banco de Dados do
SQL Server deve analisar a instrução para determinar a maneira mais eficiente de acessar os
dados necessários. Essa análise é tratada por um componente chamado de Otimizador de
Consulta. A entrada do Otimizador de Consulta consiste em uma consulta, o esquema de banco
de dados (definições de tabela e de índice) e as estatísticas de banco de dados. A saída do
Otimizador de Consulta é um plano de execução de consulta, às vezes chamado de plano de
consulta ou plano de execução.
SQL Server Management Studio tem três opções para exibir os planos de execução:
3. Evite QUERY HINTS (dar dica ao banco sobre qual índice ele deve usar);
15. Evitar o famoso SELECT asterisco, e colocar somente o nome das colunas que desejar que o
banco retorne;
16. Ter cautela com SUBQUERIES. Procurar sempre que possível trocá-las por Joins. A cláusula
EXISTS com SUBQUERIES será uma exceção;
17. Raciocinar sempre em trabalhar com conjuntos de dados e nunca unitariamente, isto é, pensar
em conjuntos de dados e não em registros;
18. Deve ter uma PRIMARY KEY (preferencialmente, está sendo um índice clusterizado, pois toda
tabela precisa ter no mínimo um índice destes) em todas as tuas tabelas;
19. Dever ter uma quantidade apropriada de índices não clusterizados em todas as tabelas. Estes
deverão ser criados nas colunas de uma tabela devido à necessidade de uma QUERY que esteja
sendo colocada em produção;
20. Adotar a seguinte ordem de prioridade quando qualquer índice for criado: a. Cláusula WHERE;
b. Cláusula JOIN; c. Cláusula ORDER BY; d. Cláusula SELECT.
23. Verificar se o HD do servidor de banco de dados possui pelo menos 30% de espaço livre. Isto
garante um pouco de performance. Fazer o ajuste (tunning) de uma consulta é muito importante,
pois são vários sintomas e indicadores que devem ser analisados antes de tomar qualquer
decisão.
Índices.
Um índice é uma estrutura em disco associada a uma tabela ou view, que agiliza a recuperação
das linhas. Um índice contém chaves criadas de uma ou mais colunas e essas chaves são
armazenadas em uma estrutura (árvore B) que habilita o SQL Server a localizar a linha ou as
linhas associadas aos valores de chave de forma rápida e eficaz.
Com a criação do índice, o banco de dados irá criar uma estrutura de árvore ordenada para
facilitar as buscas, onde o primeiro nível é a raiz, os níveis intermediários contêm as árvores de
índices e o último nível contém os dados e uma lista duplamente encadeada ligando as páginas de
dados, contendo um ponteiro de página anterior e próxima página.
Nem sempre o uso de índice trará um bom desempenho, pois a escolha incorreta de um índice
pode causar um desempenho insatisfatório. Portanto, a tarefa do otimizador de consulta é
selecionar um índice ou uma combinação de índices apenas quando isso gerar melhoria de
desempenho e evitar a recuperação indexada quando isso atrapalhar o desempenho.
Estatísticas.
São objetos que detêm informações importantes sobre a distribuição dos dados dentro de tabelas
e views indexadas. As estatísticas são de extrema importância para o SQL Server, uma vez que o
Otimizador de Consulta utiliza as estatísticas para analisar a seletividade e cardinalidade dos
dados, a fim de criar um plano de alta qualidade traçando a melhor “rota” para execução da query.
Um histograma que é a parte mais importante, onde armazena os valores de distribuição referente
à primeira coluna da chave da tabela ou view indexada.
Um vetor de densidade utilizado para medir e manipular a correlação entre as colunas. Toda
consulta executada no SQL Server deve gerar um plano de execução, o que nada mais é do que
uma sequência de operações para retornar determinado resultado. O plano de execução utiliza as
estatísticas como input de dados para analisar informações como seletividade, quantidade de
linhas e números de páginas utilizados pela tabela.
Existem três formas de uma estatística ser criada: automática, explicita e implicitamente.
Estatísticas criadas implicitamente – acontece quando um índice é criado – seja ele clustered
ou não – e por consequência são criadas estatísticas implicitamente para os campos chaves do
índice. Adicionando uma PK a tabela, um índice também é criado e implicitamente a estatística foi
gerada para a chave do índice.
Particionamentos
É o recurso no qual o administrador de banco de dados poderá ter o domínio dos locais onde seus
dados são armazenados. Atualmente, não utilizando esta funcionalidade, podemos determinar em
qual diretório ou diretórios os arquivos de filegroup ficarão armazenados. Com o particionamento
dos dados, é possível ter um gerenciamento melhor dos dados, ganhando em performance e
também acompanhando em que partição/filegroup o registro está alocado.
Os dados são particionados horizontalmente, de forma que os grupos de linhas são mapeados em
partições individuais. Todas as partições de um único índice ou de uma única tabela devem residir
no mesmo banco de dados. A tabela ou o índice é tratado como uma única entidade lógica quando
são executadas consultas ou atualizações nos dados.
O mecanismo de banco de dados dá suporte a até 15.000 partições por padrão. Em versões
anteriores à SQL Server 2012 (11.x), o número de partições era limitado por padrão a 1.000.
O Painel de Desempenho ajuda a identificar rapidamente se SQL Server ou Banco de Dados SQL
do Azure está passando por um gargalo de desempenho. Se for encontrado um gargalo, capture
facilmente dados de diagnóstico adicionais que podem ser necessários para resolver o problema.
O Painel de Desempenho também ajuda a identificar consultas dispendiosas executadas antes e
várias métricas estão disponíveis para definir o alto custo: CPU, Gravações Lógicas, Leituras
Lógicas, Duração, Leituras Físicas e Tempo do CLR.
O Monitor de Atividade consulta a instância para obter informações sempre que qualquer painel
seja expandido. Podendo ser expandido um ou mais painéis ao mesmo tempo para a exibição de
diferentes tipos de atividade na instância. Quando um painel é recolhido, todas as atividades de
consulta são interrompidas para esse painel.
O Monitor de Atividade no SSMS (SQL Server Management Studio) exibe informações sobre os
processos do SQL Server e como esses processos afetam a instância atual do SQL Server. Ele
executa consulta na instância monitorada com o propósito de obter informações para os painéis de
exibição do Monitor de Atividade. Quando o intervalo de atualização for definido para menos de 10
segundos, o tempo usado para executar essas consultas poderá afetar o desempenho do servidor.
Para que a atividade atual seja exibida, é necessário ter a permissão VIEW SERVER STATE.
Para exibir a seção E/S de Arquivo de Dados do Monitor de Atividade, é necessário ter a
permissão CREATE DATABASE, ALTER ANY DATABASE ou VIEW ANY DEFINITION além da
permissão VIEW SERVER STATE.
Para ENCERRAR um processo, o usuário precisa ser um membro das funções de servidor fixas
SYSADMIN ou PROCESSADMIN.
O SQL Server Agent é usado para programar e executar trabalhos de coleta. E para isso é preciso
entender os seguintes conceitos:
Trabalho
Etapa de trabalho
Agenda do trabalho
Subsistema
Contas Proxy
O Integration Services (SSIS) é usado para executar pacotes que coletam dados de provedores de
dados individuais. Você precisa estar familiarizado com as seguintes ferramentas e conceitos do
SSIS :
Pacote SSIS
Configuração do pacote SSIS
Os conjuntos de coleta são definidos e implantados em uma instância de servidor e podem ser
executados independentemente um do outro. Cada conjunto de coleta pode ser se aplicado a um
destino que corresponda aos tipos de destino de todos os tipos de coletor que fazem de um
conjunto de coleta. O conjunto de coleta é executado por um trabalho ou trabalhos do SQL Server
Agent, e os dados são carregados no data warehouse de gerenciamento em uma agenda
predefinida.
O Query Store possibilita fazer uma análise nos planos de execução gerados, permitindo ao DBA
a opção de escolher qual o melhor plano para a execução de uma query, obtendo uma melhor
performance, podendo, inclusive, fazer uma regressão de algum plano, caso seja necessário, ou
seja, podemos forçar um plano de execução se necessário.
Os dados das DMVs iniciam sua coleta de informações a partir do momento em que o serviço do
SQL Server é iniciado, gravando todas as informações não em tabelas físicas, mas em estruturas
internas do servidor.
Estas DMVs auxiliam na administração do ambiente, fazendo com que o DBA trabalhe com
informações consistentes, mostrando desde o comportamento do sistema operacional (SO) até
informações sobre consultas que estão consumindo muito recurso e que talvez precisem de uma
análise mais detalhada para se inserir um índice.
É importante saber que elas retornam dados de estado internos específicos de implementação, os
esquemas e os dados retornados podem mudar em versões futuras do SQL Server. Por isso, as
exibições e funções de gerenciamento dinâmico, em versões futuras, podem não ser compatíveis
com as exibições e funções de gerenciamento dinâmico nessa versão. A Microsoft em versões
futuras do SQL Server poderá aumentar a definição de qualquer exibição do gerenciamento
dinâmico adicionando colunas ao final da lista de colunas. Salientando que não se recomenda o
uso da sintaxe SELECT * FROM dynamic_management_view_name no código de produção, pois
o número de colunas retornado pode mudar e quebrar seu aplicativo.
Referências
https://www.microsoft.com/en-us/sql-server/sql-server-downloads
https://docs.microsoft.com
https://docs.microsoft.com/pt-br/sql/sql-server/install/hardware-and-software-requirements-for-
installing-sql-server-2019?view=sql-server-ver16
https://www.devmedia.com.br/manipulacao-de-arquivos-de-dados-e-log-no-sql-server/33623
https://docs.microsoft.com/pt-br/azure/azure-sql/database/logins-create-manage?view=azuresql
https://roxpartner.com/backup-e-recuperacao-no-sql-server/
https://docs.microsoft.com/pt-br/sql/relational-databases/security/encryption/sql-server-encryption?
view=sql-server-ver16
https://docs.microsoft.com/pt-br/sql/database-engine/database-mirroring/database-mirroring-and-
replication-sql-server?view=sql-server-ver16
https://www.devmedia.com.br/alta-disponibilidade-no-sql-server/33296
https://docs.microsoft.com/pt-br/sql/sql-server/install/hardware-and-software-requirements-for-
installingsql-server?view=sql-server-ver16
https://imasters.com.br/data/como-ler-e-interpretar-os-logs-sql-server-parte-01
https://br.easeus.com/backup-recovery/tipos-de-backup-dosql.html#:~:text=Tr%C3%AAs%20Tipos
%20de%20Backup%20do,Backup%20do%20Log%20de%20Transa%C3
%A7%C3%B5es&text=Fa%C3%A7a%20backup%20e%20restaure%20arquivos,ou%20transferir
%20seu%20sist ema%20rapidamente.