Title: Análise de Dados / SQL Server
Tags: Análise_de_Dados Resumo
On every note of this deck, unless a note says otherwise:
tldr: - O que é o SQL Server
- SGBD relacional da Microsoft para armazenamento, consulta e manipulação de dados com foco em desempenho, segurança e integridade
- Muito usado em ambientes corporativos e integrações com .NET, Power BI, Azure e Active Directory
- Arquitetura cliente-servidor e linguagem T-SQL (extensão do SQL ANSI)
- Serviços e componentes principais
- Database Engine (núcleo: armazenamento, consultas, transações, segurança)
- SQL Server Agent (agendamentos: backup, rotinas, ETL)
- SSMS (administração/desenvolvimento)
- SQLCMD (linha de comando)
- SSIS (ETL), SSRS (relatórios), SSAS (análises/OLAP)
- SQL Browser (conexões com múltiplas instâncias)
- Edições
- Enterprise (mais recursos), Standard (básico), Express (gratuita com limitações)
- Foco do texto: Enterprise
- Organização de dados
- Lógica (visão do usuário/objetos)
  - Hierarquia: Servidor → Instância → Banco → Schemas → Objetos
  - Objetos: tabelas, índices, views, procedures, functions, triggers
- Física (como grava em disco)
  - Arquivos: .mdf (primário), .ndf (secundário), .ldf (log)
  - Filegroups (PRIMARY e definidos pelo usuário)
  - Armazenamento: páginas (8KB) e extents (8 páginas = 64KB)
  - Mapas/controle de alocação (ex.: GAM/IAM)
- Fragmentação de índices
- Tipos: interna (espaço livre nas páginas) e externa/lógica (ordem física ≠ lógica)
- Correção:
  - REORGANIZE (online, incremental) para ~5% a 30%
  - REBUILD (reconstrói) para > 30% (mais custo/CPU/bloqueios)
- Normalmente automatizado via SQL Server Agent
- Tipos de dados (visão geral)
- Numéricos inteiros e precisão fixa (INT, BIGINT, DECIMAL, MONEY)
- Aproximados (FLOAT, REAL)
- Texto (CHAR, VARCHAR, VARCHAR(MAX))
- Datas/horas (DATE, TIME, DATETIME)
- Variados (BIT, BINARY, UNIQUEIDENTIFIER, XML, JSON via NVARCHAR, GEOGRAPHY)
- Arquitetura interna
- Protocol Layer: comunicação via TDS (SNI)
- Relational Engine: parser → otimizador → executor (gera e executa query plan)
- Storage Engine: acesso físico e I/O
  - Access Methods, Transaction Manager, Buffer Manager
- Buffer Manager
  - Gerencia Buffer Pool (Data Cache, Plan Cache, Dirty Pages etc.)
  - Reduz I/O carregando páginas do disco para RAM e persistindo mudanças via checkpoint/lazy write
- Recuperação e durabilidade
- Transaction Log (.ldf) com WAL (grava no log antes de persistir nos data files)
- LSN para ordenação e recuperação
- Recovery Models
  - Simple (sem PITR), Full (PITR), Bulk-Logged (PITR limitado)
- Checkpoints
  - Persistem dirty pages comitadas e reduzem tempo de recovery
  - Recovery em 3 fases: Análise → REDO → UNDO
- Metadados e tabelas de sistema
- Acesso por catálogos sys.*, DMVs e DMFs
- Exemplos: sys.objects, sys.tables, sys.columns, sys.indexes, sys.master_files etc.
- T-SQL (destaques)
- Extensões: controle de fluxo, TRY/CATCH, variáveis, cursores, comandos DBCC
- Cursores: STATIC, DYNAMIC, KEYSET, FORWARD_ONLY (uso linha-a-linha)
- Variáveis de sistema e funções de ambiente
- Variáveis @@: @@VERSION, @@SPID, @@TRANCOUNT, @@ROWCOUNT etc.
- Funções: DB_NAME(), HOST_NAME(), SUSER_NAME(), GETDATE(), NEWID() etc.
- Alta disponibilidade
- Database Mirroring (síncrono/assíncrono; witness para failover automático)
- Log Shipping (backup/cópia/restore periódico do log)
- Always On (FCI e principalmente Availability Groups com réplicas e Listener)
- Replicação (mencionada como opção)
- Monitoramento
- SQL Server Profiler/SQL Trace: útil, mas com maior impacto e legado
- Extended Events (XE): alternativa moderna, flexível e de baixo overhead (recomendado)
link: https://documentacao.online/estudos/7smp.html

front: (CEBRSAPE/TRF 6/2025) A respeito de PostgreSQL, de SQL Server e de MySQL, julgue o item a seguir. No SQL Server, o keyset-driven cursor mantém uma cópia completa dos dados no momento em que é aberto, e qualquer alteração feita nos dados subjacentes não é refletida no cursor, tornando-o semelhante a um static cursor.
response: Errado
comment: No SQL Server, o keyset-driven cursor não mantém uma cópia completa dos dados, como faz o static cursor. Em vez disso, ele armazena apenas as chaves (identificadores de linha) dos dados resultantes da query no momento em que o cursor é aberto. Isso significa que o conjunto de linhas (quantidade e ordem) é fixo, mas os valores das colunas podem ser atualizados dinamicamente. Ou seja, se os dados subjacentes forem modificados (por exemplo, um campo salario for alterado), o cursor refletirá essas mudanças ao acessar a linha correspondente. No entanto, inserções e exclusões feitas após a abertura do cursor não são visíveis, já que o conjunto de chaves foi definido no início. Em contraste, o static cursor cria uma cópia completa dos dados no momento da abertura. Ele é completamente desvinculado das mudanças subsequentes: nem updates, nem deletes, nem inserts são refletidos após a abertura. (Gabarito: Errado)
title: SQL Server
Other fields (not shown on cards):
back: Errado - No SQL Server, o keyset-driven cursor não mantém uma cópia completa dos dados, como faz o static cursor. Em vez disso, ele armazena apenas as chaves (identificadores de linha) dos dados resultantes da query no momento em que o cursor é aberto. Isso significa que o conjunto de linhas (quantidade e ordem) é fixo, mas os valores das colunas podem ser atualizados dinamicamente. Ou seja, se os dados subjacentes forem modificados (por exemplo, um campo salario for alterado), o cursor refletirá essas mudanças ao acessar a linha correspondente. No entanto, inserções e exclusões feitas após a abertura do cursor não são visíveis, já que o conjunto de chaves foi definido no início. Em contraste, o static cursor cria uma cópia completa dos dados no momento da abertura. Ele é completamente desvinculado das mudanças subsequentes: nem updates, nem deletes, nem inserts são refletidos após a abertura. (Gabarito: Errado)

front: (CEBRASPE/PC DF/2025) Julgue o item a seguir, relativo a administração de banco de dados PostgreSQL, SQL Server e MongoDB. No SQL Server, o recurso de Always On Availability Groups permite a replicação síncrona entre instâncias, oferecendo alta disponibilidade, mas não permite que réplicas de leitura sejam consultadas diretamente em caso de falhas.
response: Errado
comment: O Always On AG é, de fato, um recurso que permite replicação síncrona ou assíncrona entre instâncias SQL Server, com suporte a failover automático no modo síncrono com clustering, promovendo alta disponibilidade. Porém, o Always On Availability Groups permite sim que réplicas secundárias sejam configuradas para leitura (READ_ONLY ou READ_INTENT_ONLY), inclusive para: • Consultas analíticas • Relatórios • Carga de leitura distribuída (read scale-out) • Execução de backups E mais importante: essas réplicas continuam acessíveis mesmo após o failover da primária, desde que estejam configuradas corretamente com os parâmetros adequados (como o uso de read- only routing lists e listener com múltiplas réplicas). (Gabarito: Errado)
title: SQL Server
Other fields (not shown on cards):
back: Errado - O Always On AG é, de fato, um recurso que permite replicação síncrona ou assíncrona entre instâncias SQL Server, com suporte a failover automático no modo síncrono com clustering, promovendo alta disponibilidade. Porém, o Always On Availability Groups permite sim que réplicas secundárias sejam configuradas para leitura (READ_ONLY ou READ_INTENT_ONLY), inclusive para: • Consultas analíticas • Relatórios • Carga de leitura distribuída (read scale-out) • Execução de backups E mais importante: essas réplicas continuam acessíveis mesmo após o failover da primária, desde que estejam configuradas corretamente com os parâmetros adequados (como o uso de read- only routing lists e listener com múltiplas réplicas). (Gabarito: Errado)

front: (CEBRASPE/SEBRAE/2024) No SQL Server AlwaysOn, a latência de transações nos bancos de dados secundários é minimizada no modo de confirmação
a) assíncrona.
b) unidirecional.
c) síncrona.
d) bidirecional.
response: Alternativa A
comment: O Always On permite duas latências de replicação – síncrona e assíncrona. A menor latência, por seguir o fluxo “normal” de transações (replicação somente após o COMMIT) ocorre com a replicação assíncrona. (Gabarito: Letra A)
title: SQL Server
Other fields (not shown on cards):
back: Alternativa A - O Always On permite duas latências de replicação – síncrona e assíncrona. A menor latência, por seguir o fluxo “normal” de transações (replicação somente após o COMMIT) ocorre com a replicação assíncrona. (Gabarito: Letra A)

front: (CEBRASPE/TRF 6/2025) A respeito de administração de banco de dados, julgue o item a seguir. Os Extended Events no Microsoft SQL Server são ferramentas de monitoramento e diagnóstico, que permitem rastrear eventos com baixo impacto de desempenho, com maior flexibilidade e precisão, substituindo o SQL Profile.
response: Correto
comment: A afirmativa está correta. Os Extended Events são uma infraestrutura moderna do SQL Server, criada para fornecer um mecanismo de monitoramento e diagnóstico mais leve, flexível e preciso em comparação ao antigo SQL Trace, que serve de base para o SQL Server Profiler. Eles permitem rastrear praticamente todos os eventos que ocorrem dentro do SQL Server, incluindo execução de queries, locks, waits, erros, planos de execução e consumo de recursos, com baixo impacto no desempenho do servidor. Ao contrário do Profiler, que pode consumir muitos recursos especialmente em ambientes de produção, os Extended Events foram projetados com foco em eficiência. Eles usam um modelo orientado a eventos e funcionam de forma assíncrona, gravando os dados em arquivos binários compactos (.xel) que podem ser analisados posteriormente com filtros avançados, tanto via interface gráfica no SSMS quanto por consultas T-SQL. Além disso, os Extended Events são modularizados, permitindo selecionar exatamente quais eventos capturar, quais ações executar (como capturar SQL text, tempo de CPU, uso de memória), e ainda aplicar predicados (condições) para reduzir o volume de dados coletados. Por essas razões, os Extended Events são considerados a ferramenta oficial recomendada pela Microsoft para rastreamento e auditoria em versões recentes do SQL Server, substituindo o SQL Server Profiler. (Gabarito: Certo)
title: SQL Server
Other fields (not shown on cards):
back: Correto - A afirmativa está correta. Os Extended Events são uma infraestrutura moderna do SQL Server, criada para fornecer um mecanismo de monitoramento e diagnóstico mais leve, flexível e preciso em comparação ao antigo SQL Trace, que serve de base para o SQL Server Profiler. Eles permitem rastrear praticamente todos os eventos que ocorrem dentro do SQL Server, incluindo execução de queries, locks, waits, erros, planos de execução e consumo de recursos, com baixo impacto no desempenho do servidor. Ao contrário do Profiler, que pode consumir muitos recursos especialmente em ambientes de produção, os Extended Events foram projetados com foco em eficiência. Eles usam um modelo orientado a eventos e funcionam de forma assíncrona, gravando os dados em arquivos binários compactos (.xel) que podem ser analisados posteriormente com filtros avançados, tanto via interface gráfica no SSMS quanto por consultas T-SQL. Além disso, os Extended Events são modularizados, permitindo selecionar exatamente quais eventos capturar, quais ações executar (como capturar SQL text, tempo de CPU, uso de memória), e ainda aplicar predicados (condições) para reduzir o volume de dados coletados. Por essas razões, os Extended Events são considerados a ferramenta oficial recomendada pela Microsoft para rastreamento e auditoria em versões recentes do SQL Server, substituindo o SQL Server Profiler. (Gabarito: Certo)

front: (FGV/TCE RR/2025) O SQL Server Profiler é utilizado para realizar auditoria em servidores SQL Server a partir do rastreamento de atividades. Durante um rastreamento, os dados capturados são armazenados em uma tabela, em que cada linha representa uma requisição (query) e cada coluna apresenta informações sobre as requisições. Durante uma auditoria no sistema de banco de dados do TCE de Roraima, uma requisição (query) capturada pelo SQL Server Profiler retornou os seguintes dados:
EventClass: SQL:BatchCompleted
Application Nane: Microsoft SQL Server Management Studio
LoginName: MicrosoftAccount\DBA_TI_TCERR@tcerr.tc.br
CPU: 3002
Reads: 105325
Writes: 0
Duration: 45219
DatabaseName: Processos_2024
HostName: AUD01_TCERR
Com relação aos dados dessa requisição, assinale a afirmativa correta.
a) O programa que está rodando o SQL Server Profiler é o Microsoft SQL Server Management Studio.
b) O usuário que está realizando a auditoria possui login DBA_TI_TCERR.
c) O banco de dados executou o comando INSERT.
d) A execução teve uma duração de 45,219 milissegundos.
e) A máquina que executou a requisição é AUD01_TCERR.
response: Letra E
comment: Questão de um nível relativamente alto. Vamos analisar cada valor da consulta: EventClass: SQL:BatchCompleted Indica fim de um lote de T-SQL Application Nane: Microsoft SQL Server Management Studio Ferramenta cliente LoginName: MicrosoftAccount\DBA_TI_TCERR@tcerr.tc.br Login de usuário CPU: 3002 Milissegundos de CPU consumidos Reads: 105325 Páginas lidas Writes: 0 Nenhuma gravação Duration: 45219 Tempo total de execução em microssegundos DatabaseName: Processos_2024 Banco de dados em uso HostName: AUD01_TCERR Nome da máquina cliente Vamos analisar as alternativas. a) Errado. O application name se refere ao cliente que executou a requisição T-SQL, não ao Profiler. O Profiler é a ferramenta de monitoramento, e o SSMS é o cliente que enviou a query. b) Errado. Esse é o login de quem executou a query monitorada, não de quem está auditando. Quem audita é quem está usando o Profiler, e não temos essa informação. c) Errado. O evento SQL:BatchCompleted não indica o tipo de comando (SELECT, INSERT, etc.). Para isso, precisaríamos do campo TextData, que não foi apresentado. d) Errado. Tivemos 45219 de duração – mas são 45.219 microssegundos, não milissegundos. e) Certo. O campo HostName indica o nome do cliente que executou a query. Esse valor é passado pela aplicação ao servidor. Portanto, correta a letra E.
title: SQL Server
Other fields (not shown on cards):
back: Letra E - Questão de um nível relativamente alto. Vamos analisar cada valor da consulta: EventClass: SQL:BatchCompleted Indica fim de um lote de T-SQL Application Nane: Microsoft SQL Server Management Studio Ferramenta cliente LoginName: MicrosoftAccount\DBA_TI_TCERR@tcerr.tc.br Login de usuário CPU: 3002 Milissegundos de CPU consumidos Reads: 105325 Páginas lidas Writes: 0 Nenhuma gravação Duration: 45219 Tempo total de execução em microssegundos DatabaseName: Processos_2024 Banco de dados em uso HostName: AUD01_TCERR Nome da máquina cliente Vamos analisar as alternativas. a) Errado. O application name se refere ao cliente que executou a requisição T-SQL, não ao Profiler. O Profiler é a ferramenta de monitoramento, e o SSMS é o cliente que enviou a query. b) Errado. Esse é o login de quem executou a query monitorada, não de quem está auditando. Quem audita é quem está usando o Profiler, e não temos essa informação. c) Errado. O evento SQL:BatchCompleted não indica o tipo de comando (SELECT, INSERT, etc.). Para isso, precisaríamos do campo TextData, que não foi apresentado. d) Errado. Tivemos 45219 de duração – mas são 45.219 microssegundos, não milissegundos. e) Certo. O campo HostName indica o nome do cliente que executou a query. Esse valor é passado pela aplicação ao servidor. Portanto, correta a letra E.

front: (FGV/CM SP/2024) Com relação ao Microsoft SQL Server Profiler, avalie se as afirmativas a seguir são falsas (F) ou verdadeiras (V).
I. É uma interface gráfica do usuário para o SQL Trace para monitorar uma instância do SGBD ou do Analysis Services. Permite que o analista monitore um ambiente de produção para ver quais procedimentos armazenados estão afetando o desempenho por serem executados com muita lentidão.
II. Permite que o analista capture uma série de instruções Transact-SQL que levam a um problema de desempenho. O rastreio salvo pode então ser usado para replicar o problema em um servidor de teste onde o problema pode ser diagnosticado.
III. Oferece suporte à auditoria das ações executadas em instâncias do SGBD SQL Server. As auditorias registram ações relacionadas à segurança para revisão posterior por um administrador de segurança.
As afirmativas são, respectivamente,
a) V – V – V.
b) F – F – V.
c) V – F – F.
d) F – V – V.
e) F – F – F.
response: Letra A
comment: Vamos analisar os itens. I. Verdadeiro. O SQL Server Profiler é, de fato, uma interface gráfica para o mecanismo interno chamado SQL Trace, permitindo rastrear eventos de execução no Database Engine ou Analysis Services. Além disso, ele permite capturar procedimentos armazenados (stored procedures) com alto tempo de execução, que podem ser analisados para tuning. II. Verdadeiro. Um dos usos clássicos do Profiler é capturar um trace em ambiente de produção, exportá-lo e depois executá-lo em ambiente de homologação ou teste, para reproduzir cenários de desempenho e aplicar tuning. O SQL Server inclusive fornece ferramentas como o Database Engine Tuning Advisor (DTA) que aceitam esses arquivos .trc como entrada. III. Verdadeiro. Embora a ferramenta recomendada para auditoria de segurança formal seja o recurso SQL Server Audit (introduzido no SQL Server 2008), o Profiler pode sim ser usado para capturar eventos relacionados à segurança, como Audit Login, Audit Logout, Audit Database Object Access, etc. Esses eventos podem ser incluídos em uma sessão de rastreamento para inspecionar ações de login, uso de objetos, tentativas de acesso, entre outros. Portanto, todos os itens são verdadeiros.
title: SQL Server
Other fields (not shown on cards):
back: Letra A - Vamos analisar os itens. I. Verdadeiro. O SQL Server Profiler é, de fato, uma interface gráfica para o mecanismo interno chamado SQL Trace, permitindo rastrear eventos de execução no Database Engine ou Analysis Services. Além disso, ele permite capturar procedimentos armazenados (stored procedures) com alto tempo de execução, que podem ser analisados para tuning. II. Verdadeiro. Um dos usos clássicos do Profiler é capturar um trace em ambiente de produção, exportá-lo e depois executá-lo em ambiente de homologação ou teste, para reproduzir cenários de desempenho e aplicar tuning. O SQL Server inclusive fornece ferramentas como o Database Engine Tuning Advisor (DTA) que aceitam esses arquivos .trc como entrada. III. Verdadeiro. Embora a ferramenta recomendada para auditoria de segurança formal seja o recurso SQL Server Audit (introduzido no SQL Server 2008), o Profiler pode sim ser usado para capturar eventos relacionados à segurança, como Audit Login, Audit Logout, Audit Database Object Access, etc. Esses eventos podem ser incluídos em uma sessão de rastreamento para inspecionar ações de login, uso de objetos, tentativas de acesso, entre outros. Portanto, todos os itens são verdadeiros.

front: (FGV/DNIT/2024) O utilitário do SGBD Microsoft SQL Server que faz cópia em massa de grandes quantitativos de dados entre uma instância do SGBD e um arquivo de dados em um formato especificado pelo usuário se denomina
a) dataloader.
b) sqlcopy.
c) etl.
d) bcp.
e) bckp.
response: Letra D
comment: No SQL Server, o utilitário chamado bcp (Bulk Copy Program) é usado para importar e exportar grandes volumes de dados de forma eficiente entre uma tabela e um arquivo de dados externo, como em formatos como texto (.txt, .csv) ou binário.
title: SQL Server
Other fields (not shown on cards):
back: Letra D - No SQL Server, o utilitário chamado bcp (Bulk Copy Program) é usado para importar e exportar grandes volumes de dados de forma eficiente entre uma tabela e um arquivo de dados externo, como em formatos como texto (.txt, .csv) ou binário.

front: (FGV/CVM/2024) Davi, um Database Administrator (DBA) que trabalha na Comissão de Valores Mobiliários, identificou, em sua base de dados SQL Server, que muitas operações efetuadas no banco não tinham rastreamento. Com o objetivo de identificá-las, ele iniciou a configuração de auditoria dos dados iniciando com as operações CREATE, ALTER e DROP para qualquer objeto de servidor. Os itens de auditoria a serem configurados por Davi formam um grupo de ações chamadas:
a) server_object_change_group;
b) server_object_ownership_change;
c) server_operation_group;
d) server_principal_impersonation_group;
e) server_state_change_group.
response: Letra A
comment: No SQL Server, quando configuramos uma auditoria via o recurso SQL Server Audit, podemos especificar grupos de ações (action groups) que definem quais operações serão monitoradas. O grupo server_object_change_group é responsável por auditar as seguintes operações de DDL em nível de servidor – CREATE, ALTER, DROP, entre outras. E é justamente esse grupo que Davi precisa utilizar.
title: SQL Server
Other fields (not shown on cards):
back: Letra A - No SQL Server, quando configuramos uma auditoria via o recurso SQL Server Audit, podemos especificar grupos de ações (action groups) que definem quais operações serão monitoradas. O grupo server_object_change_group é responsável por auditar as seguintes operações de DDL em nível de servidor – CREATE, ALTER, DROP, entre outras. E é justamente esse grupo que Davi precisa utilizar.

front: (FGV/STN/2024) No contexto de uma instalação MS SQL Server, avalie as afirmativas a seguir a respeito dos bancos de dados pré-definidos master, model, tempdb.
I. tempdb é recriado sempre quando o SQL Server é iniciado.
II. model é criado opcionalmente, e pode ser utilizado apenas como read only.
III. master não permite operações de backup e/ou recuperação.
Está correto o que se afirma apenas em
a) I.
b) II.
c) III.
d) I e II.
e) II e III.
response: Letra A
comment: Vamos analisar os itens. I. Certo. O banco de dados tempdb é um banco temporário usado para armazenar informações como tabelas temporárias e variáveis de tabela. Ele é recriado automaticamente a cada inicialização do SQL Server, sempre com base no modelo model, mas sem manter nenhum dado da execução anterior. Isso garante que o ambiente temporário esteja sempre limpo. II. Errado. O banco model não é opcional – ele é um banco obrigatório, criado por padrão com a instância. Além disso, ele não é read-only – na verdade, o model serve como modelo base para todos os novos bancos de dados criados: qualquer banco novo (inclusive tempdb) herda sua estrutura. III. Errado. O banco master é crítico para o funcionamento da instância: ele armazena informações sobre logins, configurações do servidor, endereços de arquivos de banco de dados, etc. E ele pode e deve ser submetido a backups regularmente, utilizando BACKUP DATABASE master. Portanto, somente o primeiro item está correto.
title: SQL Server
Other fields (not shown on cards):
back: Letra A - Vamos analisar os itens. I. Certo. O banco de dados tempdb é um banco temporário usado para armazenar informações como tabelas temporárias e variáveis de tabela. Ele é recriado automaticamente a cada inicialização do SQL Server, sempre com base no modelo model, mas sem manter nenhum dado da execução anterior. Isso garante que o ambiente temporário esteja sempre limpo. II. Errado. O banco model não é opcional – ele é um banco obrigatório, criado por padrão com a instância. Além disso, ele não é read-only – na verdade, o model serve como modelo base para todos os novos bancos de dados criados: qualquer banco novo (inclusive tempdb) herda sua estrutura. III. Errado. O banco master é crítico para o funcionamento da instância: ele armazena informações sobre logins, configurações do servidor, endereços de arquivos de banco de dados, etc. E ele pode e deve ser submetido a backups regularmente, utilizando BACKUP DATABASE master. Portanto, somente o primeiro item está correto.

front: (CEBRASPE/TCE PR/2024) A respeito do Microsoft SQL Server 2022, assinale a opção correta.
a) O SQL Server 2022 permite que desenvolvedores criem aplicativos conectando dados relacionais com data lakes que contenham arquivos parquet e tabelas delta, por meio do uso de provedores de armazenamento compatíveis com o Azure ou o S3 (simple storage service).
b) A edição SQL Server Express requer uma licença paga e contém recursos do SQL Server 2022 sem limites para funcionalidades e recursos específicos, como CPU, memória e tamanho do banco de dados.
c) O SQL Server 2022 oferece opções de implantação, edição e licenciamento totalmente diferentes das versões anteriores.
d) O Azure Synapse Analytics é o serviço do Azure usado para fornecer a recuperação de desastre gerenciada com o SQL Server 2022.
e) Entre os recursos que permaneceram como parte da configuração para o SQL Server 2022, estão os runtimes de R, Python e Java.
response: Letra A
comment: Vamos analisar os itens. a) Certo. O SQL Server 2022 introduziu o recurso PolyBase enhancements com suporte a data lakes armazenados no Azure Data Lake Storage e em provedores compatíveis com S3, como o Amazon S3. Além disso, passou a oferecer integração nativa com arquivos Parquet e Delta Lake, possibilitando consultas diretas sobre esses dados sem movimentação ou importação. Esse recurso é chamado de Data Virtualization e permite conectar dados relacionais a dados semiestruturados ou armazenados em cloud storages, tornando possível desenvolver aplicativos analíticos ou híbridos. b) Errado. O SQL Server Express é gratuito. c) Errado. O SQL Server 2022 mantém o mesmo modelo de licenciamento e edições principais das versões anteriores: Express, Standard e Enterprise, com suporte a implantação on-premise, em VMs e integrável com o Azure. As mudanças são incrementais, e não há ruptura no modelo de licenciamento ou edição. d) Errado. O Azure Synapse Analytics é uma plataforma analítica para integração de dados, SQL, Spark e BI, não um serviço de disaster recovery. O recurso relacionado a recuperação de desastres gerenciada no SQL Server 2022 é o Azure SQL Managed Instance link, que permite fazer failover de instâncias locais para a nuvem com sincronização contínua. e) Errado. O suporte nativo a R e Python via SQL Server Machine Learning Services ainda está disponível, embora tenha sido descontinuado como recurso "on install" em algumas distribuições. Java, por outro lado, não é suportado nativamente como runtime integrado no SQL Server (diferente do que ocorre com extensões personalizadas em alguns ambientes Hadoop). Portanto, correta a letra A.
title: SQL Server
Other fields (not shown on cards):
back: Letra A - Vamos analisar os itens. a) Certo. O SQL Server 2022 introduziu o recurso PolyBase enhancements com suporte a data lakes armazenados no Azure Data Lake Storage e em provedores compatíveis com S3, como o Amazon S3. Além disso, passou a oferecer integração nativa com arquivos Parquet e Delta Lake, possibilitando consultas diretas sobre esses dados sem movimentação ou importação. Esse recurso é chamado de Data Virtualization e permite conectar dados relacionais a dados semiestruturados ou armazenados em cloud storages, tornando possível desenvolver aplicativos analíticos ou híbridos. b) Errado. O SQL Server Express é gratuito. c) Errado. O SQL Server 2022 mantém o mesmo modelo de licenciamento e edições principais das versões anteriores: Express, Standard e Enterprise, com suporte a implantação on-premise, em VMs e integrável com o Azure. As mudanças são incrementais, e não há ruptura no modelo de licenciamento ou edição. d) Errado. O Azure Synapse Analytics é uma plataforma analítica para integração de dados, SQL, Spark e BI, não um serviço de disaster recovery. O recurso relacionado a recuperação de desastres gerenciada no SQL Server 2022 é o Azure SQL Managed Instance link, que permite fazer failover de instâncias locais para a nuvem com sincronização contínua. e) Errado. O suporte nativo a R e Python via SQL Server Machine Learning Services ainda está disponível, embora tenha sido descontinuado como recurso "on install" em algumas distribuições. Java, por outro lado, não é suportado nativamente como runtime integrado no SQL Server (diferente do que ocorre com extensões personalizadas em alguns ambientes Hadoop). Portanto, correta a letra A.

front: (CEBRASPE/SEBRAE/2024) O recurso grupos de disponibilidade AlwaysOn do SQL Server é
a) um dispositivo que mantém o banco de dados em execução mesmo com queda de energia.
b) uma aplicação que permite ao usuário a consulta aos metadados das tabelas.
c) uma solução corporativa de espelhamento para bancos de dados.
d) uma interface para o DBA executar comandos de configuração.
response: Letra C
comment: O recurso AlwaysOn Availability Groups do SQL Server é uma solução de alta disponibilidade (HA) e recuperação de desastres, introduzida no SQL Server 2012. Ele permite espelhamento, buscando justamente garantir a alta disponibilidade do sistema. Portanto, correta a letra C – mas atenção, embora o termo “espelhamento” remeta ao antigo recurso Database Mirroring, o AlwaysOn Availability Groups é sua evolução, suportando toda a sua sistemática.
title: SQL Server
Other fields (not shown on cards):
back: Letra C - O recurso AlwaysOn Availability Groups do SQL Server é uma solução de alta disponibilidade (HA) e recuperação de desastres, introduzida no SQL Server 2012. Ele permite espelhamento, buscando justamente garantir a alta disponibilidade do sistema. Portanto, correta a letra C – mas atenção, embora o termo “espelhamento” remeta ao antigo recurso Database Mirroring, o AlwaysOn Availability Groups é sua evolução, suportando toda a sua sistemática.

front: (CEBRASPE/SEBRAE/2024) Em um banco de dados SQL Server configurado com AlwaysOn, um grupo de disponibilidade HA é um
a) grupo de tabelas configuradas para read-only.
b) conjunto de tabelas com escala de leitura.
c) conjunto de backups redundantes.
d) grupo de bancos de dados que fazem failover juntos.
response: Letra D
comment: Sim – essas últimas 3 questões todas foram no mesmo concurso e para o mesmo cargo, o que mostra a preferência da CEBRASPE por cobrar o Always ON. Vamos analisar as alternativas. a) Errado. O AlwaysOn opera com bancos de dados, não com tabelas. b) Errado. A leitura escalável (read-scale) é funcionalidade das réplicas secundárias, mas o grupo é de bancos, não de tabelas. c) Errado. Backups não fazem parte do conceito de grupo de disponibilidade; eles podem ser distribuídos entre réplicas, mas o grupo em si não é composto por backups. d) Certo. um grupo de disponibilidade (Availability Group) é uma unidade lógica que agrupa dois ou mais bancos de dados. Esses bancos funcionam como um bloco, ou seja, quando ocorre o failover (automático ou manual), todos os bancos pertencentes ao grupo de disponibilidade migram juntos para a réplica secundária designada, assumindo o papel de nova primária. Portanto, correta a letra D.
title: SQL Server
Other fields (not shown on cards):
back: Letra D - Sim – essas últimas 3 questões todas foram no mesmo concurso e para o mesmo cargo, o que mostra a preferência da CEBRASPE por cobrar o Always ON. Vamos analisar as alternativas. a) Errado. O AlwaysOn opera com bancos de dados, não com tabelas. b) Errado. A leitura escalável (read-scale) é funcionalidade das réplicas secundárias, mas o grupo é de bancos, não de tabelas. c) Errado. Backups não fazem parte do conceito de grupo de disponibilidade; eles podem ser distribuídos entre réplicas, mas o grupo em si não é composto por backups. d) Certo. um grupo de disponibilidade (Availability Group) é uma unidade lógica que agrupa dois ou mais bancos de dados. Esses bancos funcionam como um bloco, ou seja, quando ocorre o failover (automático ou manual), todos os bancos pertencentes ao grupo de disponibilidade migram juntos para a réplica secundária designada, assumindo o papel de nova primária. Portanto, correta a letra D.

front: (CEBRASPE/TC DF/2024) CREATE CLUSTERED INDEX idx_clustered ON schema1.table1 (column1 DESC, column2 ASC, column3 DESC); Considerando o comando precedente, do banco de dados MS-SQLSERVER 2019, julgue o próximo item. O comando cria um índice clusterizado em column1, column2 e column3 da tabela table1 no esquema schema1, com column1 e column3 classificados em ordem decrescente e column2 classificado em ordem crescente.
response: Certo
comment: O item está correto! O comando apresentado cria um índice clusterizado sobre as colunas column1, column2 e column3. Desde o SQL Server 2008, o T-SQL passou a aceitar a especificação da direção (ASC/DESC) para cada coluna em índices, inclusive em índices clusterizados. Essa ordenação define como os dados serão organizados fisicamente na tabela, pois, no caso do índice clusterizado, os dados da tabela são armazenados diretamente no B-tree do índice.
title: SQL Server
Other fields (not shown on cards):
back: Certo - O item está correto! O comando apresentado cria um índice clusterizado sobre as colunas column1, column2 e column3. Desde o SQL Server 2008, o T-SQL passou a aceitar a especificação da direção (ASC/DESC) para cada coluna em índices, inclusive em índices clusterizados. Essa ordenação define como os dados serão organizados fisicamente na tabela, pois, no caso do índice clusterizado, os dados da tabela são armazenados diretamente no B-tree do índice.

front: (FGV/CGE SC/2023) Em 1970, Codd propôs o modelo de dados relacional. Na época, os bancos de dados usavam modelos hierárquicos e de rede. O modelo relacional revolucionou a área de banco de dados deixando os dois outros modelos praticamente esquecidos. Como o nome do modelo já diz, um banco de dados relacional é uma coleção de relações com nomes distintos entre entidades. Um banco de dados é considerado bom quando o SGBD garante que as informações sendo armazenadas estão corretas e, para isso, é utilizado o conceito de restrições de integridade. Assim, para garantir a integridade dos dados, SGBDs como o Microsoft SQL Server implementam o conceito de chaves primária e estrangeiras. Em relação a chaves primárias e estrangeiras no Microsoft SQL Server, assinale V para a afirmativa verdadeira e F para afirmativa falsa.
( ) Se, ao criar uma chave primária em uma tabela, não for especificado NOCLUSTERED ou CLUSTERED e se essa tabela não possuir um índice CLUSTERED, por definição a chave primária é criada junto a um índice CLUSTERED.
( ) Os dados das colunas usadas para compor a chave primária devem possui valores exclusivos, de modo que o valor NULL só pode aparecer uma vez.
( ) Uma chave estrangeira de uma tabela pode fazer referência a uma coluna de outra tabela de outro banco de dados.
( ) Uma chave estrangeira de uma tabela não precisa estar vinculado a uma chave primária de outra tabela, desde que a coluna referenciada seja UNIQUE.
As afirmativas são, respectivamente,
a) F, F, V e V.
b) V, F, V e F.
c) V, F, F e V.
d) F, V, V e F.
e) V, F, F e F.
response: Letra C
comment: Vamos analisar cada afirmativa. ( ) Se, ao criar uma chave primária em uma tabela, não for especificado NOCLUSTERED ou CLUSTERED e se essa tabela não possuir um índice CLUSTERED, por definição a chave primária é criada junto a um índice CLUSTERED. Verdadeiro. Por padrão, ao criar uma chave primária, o SQL Server cria um índice associado a ela. Se nenhum índice clusterizado existir na tabela, o SQL Server irá criar a chave primária como um índice clusterizado automaticamente, a menos que você especifique explicitamente o contrário com NONCLUSTERED. ( ) Os dados das colunas usadas para compor a chave primária devem possui valores exclusivos, de modo que o valor NULL só pode aparecer uma vez. Falso. Na chave primária, os valores devem ser únicos e não podem ser nulos. Portanto, nem um único valor NULL é permitido. Isso difere de uma restrição UNIQUE, que permite múltiplos NULLs (dependendo do SGBD). No SQL Server, ao criar uma PRIMARY KEY, todas as colunas envolvidas são automaticamente marcadas como NOT NULL. ( ) Uma chave estrangeira de uma tabela pode fazer referência a uma coluna de outra tabela de outro banco de dados. Falso. No SQL Server, chaves estrangeiras (FOREIGN KEY) só podem referenciar objetos dentro do mesmo banco de dados. Não é possível criar uma FOREIGN KEY que aponte para uma tabela em outro banco. Para isso, seria necessário usar triggers ou validações manuais. ( ) Uma chave estrangeira de uma tabela não precisa estar vinculado a uma chave primária de outra tabela, desde que a coluna referenciada seja UNIQUE. Verdadeiro. Uma FOREIGN KEY no SQL Server pode referenciar qualquer coluna ou conjunto de colunas que possuam uma restrição UNIQUE, mesmo que não sejam a chave primária da tabela de destino. A exigência é que os valores referenciados sejam únicos e não nulos.~ Ficamos com V-F-F-V.
title: SQL Server
Other fields (not shown on cards):
back: Letra C - Vamos analisar cada afirmativa. ( ) Se, ao criar uma chave primária em uma tabela, não for especificado NOCLUSTERED ou CLUSTERED e se essa tabela não possuir um índice CLUSTERED, por definição a chave primária é criada junto a um índice CLUSTERED. Verdadeiro. Por padrão, ao criar uma chave primária, o SQL Server cria um índice associado a ela. Se nenhum índice clusterizado existir na tabela, o SQL Server irá criar a chave primária como um índice clusterizado automaticamente, a menos que você especifique explicitamente o contrário com NONCLUSTERED. ( ) Os dados das colunas usadas para compor a chave primária devem possui valores exclusivos, de modo que o valor NULL só pode aparecer uma vez. Falso. Na chave primária, os valores devem ser únicos e não podem ser nulos. Portanto, nem um único valor NULL é permitido. Isso difere de uma restrição UNIQUE, que permite múltiplos NULLs (dependendo do SGBD). No SQL Server, ao criar uma PRIMARY KEY, todas as colunas envolvidas são automaticamente marcadas como NOT NULL. ( ) Uma chave estrangeira de uma tabela pode fazer referência a uma coluna de outra tabela de outro banco de dados. Falso. No SQL Server, chaves estrangeiras (FOREIGN KEY) só podem referenciar objetos dentro do mesmo banco de dados. Não é possível criar uma FOREIGN KEY que aponte para uma tabela em outro banco. Para isso, seria necessário usar triggers ou validações manuais. ( ) Uma chave estrangeira de uma tabela não precisa estar vinculado a uma chave primária de outra tabela, desde que a coluna referenciada seja UNIQUE. Verdadeiro. Uma FOREIGN KEY no SQL Server pode referenciar qualquer coluna ou conjunto de colunas que possuam uma restrição UNIQUE, mesmo que não sejam a chave primária da tabela de destino. A exigência é que os valores referenciados sejam únicos e não nulos.~ Ficamos com V-F-F-V.

front: (VUNESP/TCM SP/2023) O sistema gerenciador de bancos de dados Microsoft SQL Server 2012 possui a opção OFFSET que pode ser inserida em um comando SELECT. Tal opção especifica
a) o número máximo de linhas que devem ser exibidas como resultado da execução do comando.
b) o número de linhas a serem excluídas da tabela alvo, antes da exibição das linhas de resultado.
c) o tempo mínimo para que a resposta solicitada seja exibida.
d) o número máximo de usuários simultâneos no banco de dados em questão.
e) quantas linhas devem ser ignoradas antes que o comando inicie a exibição das linhas de resultado.
response: Letra E
comment: Questão tranquila – o comando OFFSET define um intervalo de linhas que serão ignoradas antes que o comando SELECT inicie sua aplicação – portanto, correta a letra E.
title: SQL Server
Other fields (not shown on cards):
back: Letra E - Questão tranquila – o comando OFFSET define um intervalo de linhas que serão ignoradas antes que o comando SELECT inicie sua aplicação – portanto, correta a letra E.

front: (VUNESP/TCM SP/2023) A linguagem Transact SQL do sistema gerenciador de bancos de dados Microsoft SQL Server possui o comando BULK INSERT, cuja função é
a) codificar os dados de uma tabela especificada nesse comando.
b) confirmar as operações de inserção de dados realizadas em determinado período de tempo.
c) importar um arquivo com dados para uma tabela ou visão da base de dados.
d) restituir os registros excluídos de determinada tabela da base de dados.
e) eliminar os registros que contenham valores nulos nas tabelas do banco de dados.
response: Letra C
comment: O comando BULK INSERT é utilizado para importar grandes volumes de dados de um arquivo externo (como arquivos .txt, .csv, etc.) diretamente para uma tabela ou view do banco de dados. Ele é otimizado para performance e é amplamente usado em processos de carga massiva (bulk load). Vamos analisar as alternativas. a) Errado. BULK INSERT não codifica dados; ele importa. b) Errado. Ele não confirma inserções anteriores; apenas realiza importações. c) Certo. De acordo com o que vimos anteriormente, o BULK INSERT irá carregar dados em uma tabela. d) Errado. Não há função de restaurar registros excluídos com esse comando. e) Errado. BULK INSERT não elimina registros com NULL; ele insere o que está no arquivo. Portanto, correta a letra C.
title: SQL Server
Other fields (not shown on cards):
back: Letra C - O comando BULK INSERT é utilizado para importar grandes volumes de dados de um arquivo externo (como arquivos .txt, .csv, etc.) diretamente para uma tabela ou view do banco de dados. Ele é otimizado para performance e é amplamente usado em processos de carga massiva (bulk load). Vamos analisar as alternativas. a) Errado. BULK INSERT não codifica dados; ele importa. b) Errado. Ele não confirma inserções anteriores; apenas realiza importações. c) Certo. De acordo com o que vimos anteriormente, o BULK INSERT irá carregar dados em uma tabela. d) Errado. Não há função de restaurar registros excluídos com esse comando. e) Errado. BULK INSERT não elimina registros com NULL; ele insere o que está no arquivo. Portanto, correta a letra C.

front: (FGV/TJ RN/2023) Ao criar ou modificar um banco de dados no SQL Server é possível configurar a cláusula COLLATE da instrução CREATE DATABASE ou ALTER DATABASE. A configuração de COLLATE para um banco de dados:
a) afeta todos os metadados no banco de dados;
b) limita as opções de collation para expressões;
c) determina a definição de collation do servidor;
d) altera a definição de COLLATE no nível de coluna;
e) influencia a apresentação de dados dos tipos float e real.
response: Letra A
comment: A cláusula COLLATE, quando usada na instrução CREATE DATABASE ou ALTER DATABASE, define a ordenação padrão (collation) que será usada no escopo do banco de dados. Essa definição afeta: • Todas as operações de comparação e ordenação de strings (tipos CHAR, VARCHAR, TEXT, NCHAR, NVARCHAR, NTEXT) • A criação dos metadados internos, como nomes de objetos, procedimentos, triggers e views, que são armazenados com a collation do banco de dados. Portanto, quando configuramos a collation do banco, essa definição determina a collation padrão para objetos futuros e para os metadados internos, a menos que seja sobrescrita em nível de coluna ou de expressão. Vamos analisar as alternativas. a) Certo. Conforme acabamos de ver. b) Errado. A collation do banco não limita collation de expressões — collation pode ser definido por coluna, literal ou função. c) Errado. O collation do banco não determina o collation do servidor; é o oposto: por padrão, o collation do banco herda o do servidor, mas pode ser alterado. d) Errado. A definição de collation em nível de banco não altera collation já definida em colunas existentes. e) Errado. Collation não afeta tipos numéricos, como float e real. Ela se aplica apenas a tipos de dados de texto. Portanto, correta a letra A.
title: SQL Server
Other fields (not shown on cards):
back: Letra A - A cláusula COLLATE, quando usada na instrução CREATE DATABASE ou ALTER DATABASE, define a ordenação padrão (collation) que será usada no escopo do banco de dados. Essa definição afeta: • Todas as operações de comparação e ordenação de strings (tipos CHAR, VARCHAR, TEXT, NCHAR, NVARCHAR, NTEXT) • A criação dos metadados internos, como nomes de objetos, procedimentos, triggers e views, que são armazenados com a collation do banco de dados. Portanto, quando configuramos a collation do banco, essa definição determina a collation padrão para objetos futuros e para os metadados internos, a menos que seja sobrescrita em nível de coluna ou de expressão. Vamos analisar as alternativas. a) Certo. Conforme acabamos de ver. b) Errado. A collation do banco não limita collation de expressões — collation pode ser definido por coluna, literal ou função. c) Errado. O collation do banco não determina o collation do servidor; é o oposto: por padrão, o collation do banco herda o do servidor, mas pode ser alterado. d) Errado. A definição de collation em nível de banco não altera collation já definida em colunas existentes. e) Errado. Collation não afeta tipos numéricos, como float e real. Ela se aplica apenas a tipos de dados de texto. Portanto, correta a letra A.

front: (FUNDATEC/BRDE/2023) O DBA de um banco de dados SQL Server 2019 precisou procurar no catálogo algumas definições existentes sobre um esquema da base de dados específico para executar o seu trabalho. Ele descobriu que: • Para procurar as tabelas existentes, deveria consultar a SYS.TABLES, e para encontrar as chaves primárias existentes, poderia consultar a tabela ; • Encontraria na tabela o identificador do tipo de dado associado aos atributos de uma dada tabela; • Para encontrar os procedimentos armazenados na base de dados, precisava consultar a SYS.PROCEDURES, e que se quisesse saber detalhes dos parâmetros de um dado procedimento armazenado, poderia encontrá-los na ; Assinale a alternativa que preenche, correta e respectivamente, as lacunas do trecho acima.
a) SYS.INDEXES – SYS.COLUMNS – SYS.PARAMETERS
b) SYS. INDEXES _KEYS – SYS.TYPES – SYS.PARAMETERS
c) SYS.INDEXES – SYS. COLUMNS – SYS.PROCEDURES_EXTENDED
d) SYS.INDEXES – SYS.TYPES – SYS.PARAMETERS
e) SYS.PRIMARY_KEYS – SYS.TYPES – SYS.PROCEDURES_EXTENDED
response: Letra A
comment: Temos 3 lacunas. Para a primeira, devemos usar SYS.INDEXES - no SQL Server, chaves primárias são implementadas como índices, e a tabela sys.indexes contém a definição desses índices. Para a segunda lacuna, precisamos achar o identificador do tipo de dado associado aos atributos de uma tabela, o que pode ser encontrado na tabela SYS.COLUMNS. Por fim, a última lacuna deve ser preenchida com SYS.PARAMETERS, que é a tabela responsável por armazenar as informações dos parâmetros de procedimentos armazenados e funções. Sendo assim, correta a letra A.
title: SQL Server
Other fields (not shown on cards):
back: Letra A - Temos 3 lacunas. Para a primeira, devemos usar SYS.INDEXES - no SQL Server, chaves primárias são implementadas como índices, e a tabela sys.indexes contém a definição desses índices. Para a segunda lacuna, precisamos achar o identificador do tipo de dado associado aos atributos de uma tabela, o que pode ser encontrado na tabela SYS.COLUMNS. Por fim, a última lacuna deve ser preenchida com SYS.PARAMETERS, que é a tabela responsável por armazenar as informações dos parâmetros de procedimentos armazenados e funções. Sendo assim, correta a letra A.