Perguntas Respostas

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 21

Perguntas e Respostas

Trimestre 1

1 – Explique sobre as versões do SQL SERVER em ambiente de produção, quais as


vantagens e desvantagens de cada uma

R:

A versão Enterprise é a versão TOP, com todas as funcionalidades, porém é a versão


mais cara (NO PAIN NO GAIN), cerca de 14 mil dólares a cada 2 cores.

A versão Standart é uma opção de versão mais barata e está bem mais atrativa pra
gente atualmente, porém com menos funcionalidades, as principais desvantagens
dela são: 128GB de memória, (porém 128GB já é bastante coisa), e 24 cores de
processador (que também já é bastante coisa). A Enterprise não possui essas
limitações

A versão Developer é uma versão para DESENVOLVIMENTO com todas as


funcionalidades da Enterprise e agora é FREE para quem se cadastrar no Visual Studio
Dev Essentials

A versão Web é mais econômica e geralmente usada por empresa provedoras de


serviços, provavelmente você não irá usar.

A versão Express é gratuita, mas tem um monte de limitação, tem 1GB máximo de
memória e sua base chega apenas a 10GB, essa versão iria servir para uma empresa
pequena, exemplo: uma padaria pequena, uma farmácia pequena etc.
2 – Qual a diferença de RAIDs para SSD? (1, 5, 10)

R:

O Raid 1 é o mais barato, porém o que mais pode dar gargalo no banco

O Raid 10 é o mais caro, porém em um ambiente muito grande ajuda muito a


combater problemas de travamentos no banco

O Raid 5 é o meio termo, mais caro que o Raid 1 e mais barato que o Raid 10,
podendo ser uma opção boa, porém gera alguns gargalos dependendo da
operação.

3 – Os arquivos de dados, log e tempdb escrevem os arquivos da mesma forma?

R:

Dados e tempdb fazem escritas em lugares diferentes do disco, não tem


nada sequencial, é aleatório

Exemplo:

O Log tem escrita sequencial, porém, no mundo real, você não consegue
colocar um arquivo de log para cada disco, uma vez que existem bases de
dados com 500 arquivos de log, ou seja, seria impossível fazer isso.

Segue abaixo o mundo ideal x mundo real:


---------------------------->

4 - Há alguma razão para usar mais de 1 arquivo de log? Justifique

R:

Não, porque o log tem a escrita sequencial e por isso não tem motivo para usar
mais de 1 arquivo de log.

5 – O que é uma Collation?

R:

É o que define as regras as quais o banco vai usar para comparar caracteres
de strings(textos).

6 – Qual problema uma Collation diferente pode me dar?

R:

Um exemplo de onde uma Collation pode dar problema é quando vamos fazer uma
consulta em uma tabela de Pessoas e vamos procurar por todos com o nome
“Joao”, porém, nesse banco em específico, temos “João”, “Joao”, “joão”, “joao”, e a
Collation que você está usando é uma Collation que diferencia acentos e
letras maiúsculas/minúsculas e uma simples consulta por “Joao” não vai achar
todas as ‘variações’ desse nome, mesmo sendo o que você deseja.
7 – Qual a indicação da Microsoft para contas de serviço? Disserte

R:

1 conta por serviço, porém no mundo real não é assim que funciona, já que
existem operações com vários serviços, ou seja, o recomendado para aumentar
a segurança do ambiente é usar 1 conta para o SQL AGENT e 1 conta para o
MSSQL Server, lembrando que essas 2 contas não precisam ser
administradores da máquina.

8 – Falando sobre Reporting Service, Analysis Service e Integration Service, quais eu


devo instalar? Disserte

R:

Reporting Service e Analysis Service você só instala se for precisar, pelo


motivo de que são arquivos muito grandes e que se você não for usar, não há
necessidade de instalar, até porque, no dia a dia isso vai te causar
lentidão em outras coisas.

O integration Service é um serviço que você uma hora ou outra vai usar e não
é um serviço de arquivo grande, ou seja, pode instalar sem problema por que ele
vai te auxiliar no futuro.

9 – Se eu não os instalar de primeira, eu posso instalar depois?

R:

Sim, facilmente podemos instalar depois se for preciso.

10 – Em questão de plano de energia do servidor, qual opção devemos usar?

R:
A opção que nos dará a melhor performance, sem pensar em economizar a
energia do servidor.

11 - Em qual disco NÃO seria recomendado instalar o SQL SERVER? E qual seria?

R:

NÃO é recomendado instalar o SQL SERVER no disco C:\

É recomendado instalar em algum outro disco, como por exemplo o E:\

Vale lembrar que se só tiver o C:\ disponível na máquina, não tem jeito,
temos que instalar ali mesmo.

12 – Falando sobre as Shared Features, tem problema deixar no C:\ ? Explique

R:

Não tem problema, uma vez que as Shared Features não ocupam tanto espaço no
disco, e poderia gerar problemas se não fossem instaladas lá.

13 – Como deve ser selecionada a startup do SQL AGENT na instalação do SQL


SERVER? E como vem no padrão da instalação?

R:

Automático ao invés de Manual (que vem na instalação).

14 – Em que parte da instalação que eu consigo separar os arquivos de dados, log e


tempdb na instalação do SQL SERVER?
R:

Quando estiver na tela de botar o domínio do SQL.

15 – O que o SQL hoje em dia faz com a quantidade de arquivos para tempdb em uma
máquina? E o que é recomendado?

R:

A configuração padrão desde o SQL 2016 é 1 arquivo de tempdb para cada


núcleo de processador da máquina, porém, se uma máquina tiver 64
núcleos no processador (por exemplo), não há necessidade de 64 arquivos de
tempdb, isso vai até atrapalhar no caso de alguma mudança neles, dito
isso, o recomendado é não passar de 8 arquivos de tempdb.

16 – E se por um acaso o cliente já tem o SQL baixado com 1 arquivo apenas?

R:

Não tem problema se estiver tudo ok, porém, se estiver dando problema,
aumenta para 4, se continuar o problema, aumenta para 8 que dificilmente ele
vai precisar de mais de 8.

17 – Em relação ao tamanho inicial do arquivo de tempdb, disserte:

R:

Depende da aplicação, se a aplicação for grande 8MB (padrão) é muito


pouco, ou seja, podemos aumentar de acordo com o tamanho da aplicação,
podemos alterar isso com o SQL já instalado se a tempdb está crescendo
muito ou pouco.

18 – Explique a diferença entre Service Pack e RTM no SQL SERVER:


R:

Service Pack é um pack com todas as atualizações do SQL SERVER até o


momento, juntando todos os Cumulative Updates (CU).

O RTM é o contrário, é literalmente o SQL SERVER sem nunca ter sido


atualizado

19 – Se o DBA precisar instalar um Service Pack novo no banco, quanto tempo


necessário ele precisa sinalizar para a equipe?

R:

Instalar um novo Service Pack demora cerca de 20 minutos, então o ideal é


pedir mais ou menos 30 minutos no final de semana para instalar sem
problemas.

E é bem simples de instalar, só dar Next -> Next -> Finish

20 – Por que o SQL SERVER usa muita memória?

R:

Pelo motivo de que se o SQL não armazenar os dados do banco na memória,


quando alguma pessoa for fazer uma consulta (com SELECT por exemplo), o
SQL vai procurar as informações na memória e não vai encontrar nada, APÓS
isso, ele vai procurar as informações no disco e só DEPOIS vai mandar para a
memória, ou seja, o processo iria ficar muito mais lento, porque o disco é mais
lento que a memória RAM. Dito isso, é bom que o SQL use a memória para isso,
uma vez que a query fica mais rápida.

21 – E se o Sistema Operacional tiver menos memória do que o SQL pode gastar?


R:

Podemos limitar a memória que o SQL pode usar

Exemplos:

16GB de memória RAM na máquina, usa 12GB para o SQL

32GB de memória RAM na máquina, usa 28GB para o SQL

64GB de memória RAM na máquina, usa 60GB para o SQL

128GB de memória RAM na máquina, usa 120 para o SQL

Essa divisão é um pouco individual de cada um, mas o ideal é deixar pelo
menos 4GB para o Sistema Operacional.

22 - O que é o Max Degree of Parallelism no SQL SERVER?

R:

É o máximo de cores que uma query pode utilizar para não prejudicar a
performance de outras queries que estão rodando em paralelo no banco.

Exemplo:

Quando uma query for muito grande que precise utilizar 4 cores de uma
máquina que tenha apenas 4 cores, eu posso limitar o Max Degree of
Parallelism para a query usar no máximo 2 cores, que seria a metade da
capacidade, otimizando as outras queries que estão rodando no banco.
Se for uma máquina com MUITOS cores (128 cores por exemplo), não precisa
botar metade dos cores para as queries, você pode limitar em 8, uma vez que
uma query (mesmo sendo muito grande) não vai precisar utilizar mais que isso.

23 – Qual é o valor default que vem no SQL SERVER para Max Degree of Parallelism?

R:

Zero, ou seja, sem limite.

24 – O que é Cost Threshold for Parallelism no SQL SERVER? Como o SQL calcula
isso? Qual o padrão?

R:

É o custo que cada query tem que ter para estar APTA para usar o
paralelismo (não quer dizer que ela vai usar, mas está apta).

O SQL calcula isso automaticamente e você pode definir o custo pós


instalação do SQL SERVER, o padrão é 5, porém podemos aumentar para 35,
que seria o recomendado.

25 – Qual é o número padrão de arquivos de error log no SQL SERVER? O que isso
influencia no ambiente de produção?

R:

O número padrão é 6.

Por ser um número muito baixo, podemos perder algumas atualizações dos
arquivos de error log.
Exemplo:

Se um cliente reiniciou o SQL SERVER 6 vezes no mesmo dia, ele só terá


arquivos de log daquele dia, os arquivos de log dos dias anteriores sumiram.
Dito isso, o ideal seria colocar o número no mínimo em 20, para que não haja
esse problema.

26 – E como eu posso alterar esse número padrão de arquivos de error log no SQL
SERVER?

R:

Simples, vai na pasta “SQL Server Logs” no próprio SSMS, clica com o
botão direito e clica em configure.

27 – E se algum arquivo de error log crescer muito, o que eu preciso fazer?

R:

Chamar a procedure nativa sp_cycle_errorlog

Dessa forma, o SQL SERVER vai reiniciar o log atual para você, sem precisar que
você reinicie o SQL.

28 – Explique o que é o Instant File initialization e como ele funciona:


R:

É uma funcionalidade do SQL SERVER que permite otimizar a performance de um


Restore Database from Disk.

A situação é a seguinte:

Quando estamos fazendo um Restore, sem essa funcionalidade, o SQL


formata o disco inteiro antes de fazer o Restore, ou seja, o carregamento do
restore vai ficar em 0% por MUITO tempo se for uma aplicação grande,
diante disso, o Instant File Initialization opera isso, ele simplesmente da um
“REPLACE” no local do Restore para que não precise formatar antes e só
depois fazer o restore.

Dito isso, isso é ótimo em um ambiente de produção porque agiliza.

29 – Qual a função da base Master?

R:

Contém informações de configuração da instância, localização dos arquivos .LDF e


.MDF do SQL SERVER, Logins, Linked Servers etc.

30 – Imagine uma situação hipotética, na qual você precisa restaurar a sua base
Master em um novo SQL SERVER, como seria essa situação? (cite diferentes
situações para versões iguais e versões diferentes).

R:

Quando formos baixar o SQL SERVER novamente, precisamos baixar a mesma


versão com o mesmo Service Pack e com o mesmo Cumulative Update, se a sua nova
base estiver na RTM, vai dar problema, mesmo os 2 sendo do mesmo ano.

Em outro caso, quando precisamos restaurar a base Master para um SQL SERVER mais
atual, com uma versão posterior, nós temos que importar os próprios scripts, uma vez
que não podemos importar a base Master direto para outra versão do SQL SERVER.
30 – Explique sobre a base Model:

R:

É uma base Template utilizada para a criação de novas bases de dados, inclusive,

31 – Se der erro na Model e reiniciarmos o SQL SERVER, o que acontece?

R:

O SQL não vai subir, uma vez que a Model é utilizada para criar a TempDB toda vez
que reiniciamos o SQL SERVER.

Ou seja, SQL offline.

32 – Qual é a única base de dados que não precisamos ficar fazendo backup toda semana?
Explique o motivo.

R:

TempDB, pelo motivo de que ela é recriada toda vez que reiniciamos o SQL
SERVER.

33 – Explique sobre a base msdb:

R:

A msdb tem os Jobs, como por exemplo o SQL Agent, Contém todas as informações
dos Jobs e histórico de Backup e Restore.

34 – Explique sobre a base TempDB:


R:

É a base mais utilizada. Contém as tabelas temporárias, cursores, tabelas


variáveis, Rebuild ONLINE etc.

FIM DO PRIMEIRO MÓDULO

35 – Para somente quem eu devo dar acesso ao sysadmin?

R:

Somente para os DBAs.

36 – Na hora de criar os logins, o que precisamos fazer com a opção “Default Database”?
Explique o motivo

R:

Devemos colocar a base de dados (Database) específica que aquele usuário irá usar,
uma vez que se a “Default Database” estiver com a opção “master”, pode ser que o
usuário faça um monte de comando na base master sem perceber que está na master, e
isso gera um problema grande.

37 – Explique a diferença entre os comandos DENY, GRANT e REVOKE:

R:

O comando GRANT ele dá alguma(s) permissão para um usuário em uma base de


dados.

Exemplo:

GRANT SELECT ON tabela TO Pedro

GRANTE EXECUTE ON stp_procedure TO Pedro


O comando DENY é o contrário do GRANT, ele tira alguma(s) permissão do
usuário em uma base de dados.

Exemplo:

DENY SELECT ON tabela TO Pedro

DENY EXECUTE ON stp_procedure TO Pedro

O comando REVOKE basicamente tira algum comando DENY ou GRANT que foi feito.

Exemplo:

REVOKE SELECT ON tabela TO Pedro

REVOKE EXECUTE ON stp_procedure TO Pedro

FIM DO SEGUNDO MÓDULO

38 – Explique a diferença entre arquivos .MDF, arquivos .LDF e arquivos .NDF

R:

Arquivos .MDF são arquivos de dados, ou seja, tabelas, dados, informações etc.

Arquivos .LDF são arquivos de logs da sua base da dados.

Arquivos .NDF são arquivos secundários que dificilmente você irá usar no dia a
dia, somente se precisar criar esses arquivos secundários.

39 – O que é o Page Verify Opition?

R:
É uma validação que o SQL SERVER faz para ajudar a saber se tem uma
inconsistência (corrupção) no banco.

40 – Qual opção do Page Verify Opition temos que habilitar no SQL SERVER? Por quê?

R:

CHECKSUM

Porque ela faz uma validação completa dos dados.

41 – Explique as diferenças entre os tipos de dados CHAR(), VARCHAR() e


NVARCHAR()

R:

CHAR() é uma String única, ou seja, se alguém definir ela como tamanho 10, ela
sempre vai ocupar 10 bytes na memória, mesmo se a palavra tiver menos que 10
caracteres.

VARCHAR() é a mesma coisa, porém VARIÁVEL, se eu definir o tamanho dela como


10, não necessariamente vai ocupar 10 bytes, apenas se a string tiver 10 caracteres.

NVARCHAR() é a mesma coisa que o VARCHAR(), porém com a


característica UNICODE, ou seja, aceita caracteres de outras Collations
(outras línguas), PORÉM, ocupa o dobro de espaço, logo, só é utilizada
quando necessário.

42 – O que é o Linked Server?

R:
É uma funcionalidade do SQL SERVER que faz uma ligação com outro
servidor, podendo ser outro SQL SERVER, podendo ser ORACLE,
POSTGRE etc.

Porém, essa funcionalidade é lenta e precisamos usar com moderação.

43 – Explique o que é Detach e Attach:

R:

Detach tira uma base de dados de uso e o Attach coloca uma base de
dados em uso .

Usamos o Detach quando precisamos excluir ou mover uma base de dados


de um disco e ela está em uso.

Usamos o Attach quando queremos colocar uma base de dados no nosso SQL
SERVER.

44 – Qual é o problema do Detach e Attach quando vamos mudar a base de um


servidor para outro? O que é melhor a se fazer?

R:

O problema é que quando damos Detach na base, perdemos todos os


arquivos de backup que temos dela.

O melhor a se fazer é deixar a base offline, mover os arquivos manualmente e


depois alterar a base no SSMS e depois colocar a base online novamente.

Uma oura forma de fazer isso é fazendo Backup e Restora, seria a forma que
menos ocupa espaço.

45 – O que é o SHRINK?

R:
É uma funcionalidade do SQL SERVER que tem como finalidade reduzir
arquivos .MDF e .LDF porque ele libera espaço em disco quando deletamos
dados no SQL SERVER

Outro caso também é quando o arquivo .LDF cresce muito precisamos


liberar espaço.

46 – Quais os problemas do SHRINK? E quando é recomendado utilizá-lo?

R:

Se for feito em arquivo .MDF, ele demora muito para ser feito, consome
recurso enquanto está rodando e no final ele fragmente os índices do seu
banco, piorando a performance.

Se for feito em arquivo .LDF pode ser feito em horário de produção (se tiver
precisando de espaço) porque é mais rápido.

A recomendação é utilizar apenas quando for necessário recuperar aquele


espaço em disco e quando o arquivo utilizado NÃO estiver em uso.

47 – Como podemos ver o tamanho do arquivo de log d euma base de dados de um


cliente e quanto essa base está usando do arquivo?

R:

Existe um comando específico no SSMS para ver isso.

FIM DO TERCEIRO MÓDULO

48 – Explique sobre o Recovery Model FULL e o Recovery Model SIMPLE

R:
Recovery Model SIMPLE limpa a utilização do arquivo de log à medida que ele vai
aumentando de tamanho, e isso é útil para não dar estouro de disco. Vale lembrar
que se uma pessoa fizer um update muito grande que estoure o arquivo de log, não
tem o que ele fazer.

Recovery Model FULL não faz isso, o arquivo de log pode crescer
infinitamente que ele não vai fazer essa limpeza de utilização.

49 – Qual escolher na minha base? FULL ou SIMPLE?

R:

Se for uma base que não tem problema perder 24h de informação, uma base
que seja processada todo dia, use o SIMPLE. Base apenas para
desenvolvimento é um exemplo.

Mas se for uma base que não possa perder informações, que faça backup do
log use o FULL. Bases críticas são um exemplo, bases que não podem
perder arquivos.

Se for FULL, o DBA tem que ficar atento ao tamanho do arquivo .LDF, para que
não haja problemas, crie um alerta.

50 – O que é um plano de manutenção?

R:

É um plano criado no próprio SQL SERVER que nos permite fazer backups de
maneira mais simples e com mais segurança, uma vez que nós fazemos um plano
justamente para sabermos o que estamos fazendo.

FIM DO QUARTO MÓDULO

51 - O que é o SQL Agent?


R:

É um serviço do SQL SERVER responsável pelos Jobs.

52 - O que é o Operator?

R:

É uma funcionalidade do SQL Agent que recebe os e-mails quando o Job


falhar.

53 – O que são os Steps dentro de um Job?

R:

É a configuração que define os passos que o Job faz para executar alguma
coisa.

54 – O que é o Schedule dentro de um Job?

R:

É a configuração que define de quanto em quanto tempo o Job irá rodar.

55 - O que são as Notifications dentro de um Job?

R:

É a notificação que vai ser mandada para o Operator quando Job falhar.
FIM DO QUINTO MÓDULO

56- Imagine uma situação em que você pega um cliente para fazer um Tunning,
quais coisas você precisa fazer para iniciar esse projeto?

R:

Primeiro temos que entender o ambiente desse cliente.

Temos que ver o horário de menor funcionamento do banco, para ver a melhor
hora para fazer o Tunning.

Depois disso, temos que monitorar o servidor desse cliente, quanto esse cliente
tem de CPU? Quanto ele tem de memória?

Confere a configuração de memória do servidor dele, ver o espaço que tem em


disco, qual SSD ele usa etc.

57 – O que faz a procedure sp_whoisactivate?

R:

Ela mostra todas as queries que estão rodando no servidor no momento, mostrando
algumas informações sobre elas.

58 – O que é um Profile ou Server Side Tracer?

R:

É uma funcionalidade do SQL SERVER para monitoria o funcionamento das


queries que rodam no banco de dados.
59 – Explique sobre os contadores do SQL SERVER (BatchRequests, User
Connection, CPU e Page Life Expectancy)

R:

BatchRequests:

Indica quantas transações por segundo estão acontecendo no banco.

User Connection:

Indica a quantidade de conexões no banco.

CPU:

Mostra o consumo de CPU do servidor

Page Life Expectancy:

É a expectativa de vida de uma página em memória (em segundos)

Você também pode gostar