Bancos de Dados SQL Server 2012 Databases.

Slides:



Advertisements
Apresentações semelhantes
Checkpoint SGBD com alta demanda de transações Checkpoint
Advertisements

Módulo 1: Criando bancos de dados e arquivos de banco de dados
Banco de Dados Prof. Antonio.
Banco de Dados I Aula 20.
BD em.NET: Passo a passo conexão com SQL Server 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.
Prof.: Bruno Rafael de Oliveira Rodrigues
Banco de Dados Prof.: Bruno Rafael de Oliveira Rodrigues.
Prof.: Bruno Rafael de Oliveira Rodrigues
Banco de Dados SQL TRIGGERS (Gatilhos)
SISTEMAS DE INFORMAÇÃO Sistemas de Bancos de Dados 2º Semestre – 2010 Pedro Antonio Galvão Junior Fone:
SISTEMAS DE INFORMAÇÃO Sistemas de Bancos de Dados 2º Semestre – 2010 Pedro Antonio Galvão Junior Fone:
Sistemas de Informação Redes de Computadores
Visões Marilde Santos.
Maurício Edgar Stivanello
Motor de Armazenamento
Sistema Gerenciador de Banco de Dados SGBD
Sumário 1 SQL Embutida 2 Processamento de Consultas
Componentes Arquitetônicos de um Banco de Dados Oracle
Banco de Dados Oracle AESO.
Introdução à Engenharia da Computação
Oficina sobre banco de dados
Daniel Paulo Introdução O tempo de resposta de um sistema é determinado pelo tempo que ele leva para retornar aos usuários às.
Daniel Paulo SQL Server 2012 Módulo III Daniel Paulo
Daniel Paulo Conceitos de Banco de Dados - Processamento de Transações de Dados - Gerenciamento de dados OLAP/OLTP - Alto desempenho.
SQL Structured Query Language
MySQL Gerdson de Araújo Silva Universidade Federal de Alagoas Maceió-AL, 21 de maio de 2009.
RECUPERAÇÃO APÓS FALHA
12 Horas Instrutor: Antonio Itamar Júnior
Banco de dados Profª Kelly Medeiros.
Bancos de Dados SQL Server 2012.
Bancos de Dados SQL Server 2012.
Aula R Prof. Naércio Filho Técnico em Informática
SQL Server 2012 Tipos de Dados e Tabelas
Bancos de Dados SQL Server 2012 SQL DML - Data Manipulation Language)
Tipos de Linguagens do Banco de Dados
(Linguagem de Consulta Estruturada)
SQL Server 2012 Integridade de Dados
Primeira aula de PL/SQL Parte II
Banco de Dados PostgreSQL.
SEGUNDA FASE / S2B MIC PERNAMBUCO SEGUNDA FASE / S2B MIC PERNAMBUCO
Desenvolvendo um script SQL
Rafael Lucio, Desenvolvedor Jr Padrão Informática e Assessor de TI Secretaria Municipal da Saúde;
Banco de dados.
Linguagem de Definição de Dados
Microsoft SQL Server 2008 SPARSE. Para que serve? –Otimiza o espaço de armazenamento de colunas com valores NULL.
Projeto de Sistemas de Informação Prof. Schneider Oracle Object-Relational.
Banco de dados O que é MySQL Criar bando de dados
SEGUNDA FASE / S2B MIC PERNAMBUCO
Triggers (Gatilhos) Professor Esp. Diego André Sant’Ana
SQLite Banco de Dados II.
RequisitePro Ismênia Galvão Lourenço da Silva ANÁLISE E ESPECIFICAÇÃO DE REQUISITOS CENTRO DE INFORMÁTICA UNIVERSIDADE FEDERAL DE PERNAMBUCO.
Fundamentos de Banco de Dados Fundamentos de Banco de Dados Prof. Gale 2º. Semestre 2008.
Projeto de Banco de Dados
Daniel Paulo Backup Para evitar perdas de informações importantes, será necessário criar estratégias para a implementação de.
Daniel Paulo Introdução O tempo de resposta de um sistema é determinado pelo tempo que ele leva para retornar aos usuários às.
Daniel Paulo Introdução Neste capítulo trataremos a relação entre tabelas e FILEGROUPS, bem como a alocação interna de dados.
Daniel Paulo Introdução Informações de uma tabela ou view podem ser encontradas de maneira mais rápida através da utilização.
Daniel Paulo SQL Server 2014 Módulo II Daniel Paulo
Daniel Paulo SQL Server 2014 Módulo II Daniel Paulo
Microsoft SQL Server Instruções para instalação/ recuperação de bancos de dados no SQL Server.
Linguagem de definição de dados - SQL
Fundamentos de Banco de Dados Prof. André Cypriano M. Costa
Banco de Dados -Aprendendo conceitos -Usando o SQL Conf para:
Administração de Banco de Dados José Antônio da Cunha CEFET-RN.
1 Programação de Banco de Dados José Antônio da Cunha George Azevedo da Silva.
Capturando Dados Históricos com Change Data Capture Arthur Luz | MCSA & MCT em SQL Server
2/6/2016 José Antônio da Cunha - CEFET - RN1 Programação de Banco de Dados Funções.
Programação para Internet Aula 11 SQL (Introdução a linguagem, comandos de modificação: Create, Drop, Alter, Insert, Delete, Update)
Índices - Full Text Searching IFRN José Antonio da Cunha.
Atividade ASP.NET Portal da Memoria Atividade Desenvolver uma aplicação ASP.NET com funcionalidade similar à existente no site centenário.ifrn.edu.br utilizando.
Transcrição da apresentação:

Bancos de Dados SQL Server 2012 Databases

Criando banco de dados Create database AlunoDB GO Select * from sys.databases where name = ‘AlunoDB’ sp_helpdb AlunoDB

Criando banco de dados É necessário definir: O nome do database O tamanho do database Os arquivos em que o banco de dados será armazenado (no mínimo um de dados e um de log) CREATE DATABASE Equipamentos ON PRIMARY ( NAME=EquipamentosData, FILENAME='c:\Program Files\..\..\Data\Equipamentos_Data.mdf', SIZE=10MB, MAXSIZE=15MB, FILEGROWTH=20%) LOG ON ( NAME=EquipamentosLog, FILENAME= 'c:\Program Files\..\..\Data\Equipamentos_Log.ldf', SIZE=3MB, MAXSIZE=5MB, FILEGROWTH=1MB) COLLATE SQL_Latin1_General_Cp1_CI_AS

Criando banco de dados Cria uma duplicata do banco model Armazena definição do novo database no banco master Veja databases existentes através da view de sistema sys.databases SELECT * FROM sys.databases

Criando banco de dados (sintaxe) CREATE DATABASE database_name [ON { [PRIMARY] (NAME = logical_file_name, FILENAME = 'os_file_name' [, SIZE = size] [, MAXSIZE = {max_sizeUNLIMITED}] [, FILEGROWTH = growth_increment] ) } [,...n] ] [LOG ON { (NAME = logical_file_name, [COLLATE collation_name]

Criando banco de dados (sintaxe) PRIMARY: Especifica os arquivos do filegroup primário, que contém todas as tabelas de sistema e todos os objetos de banco não associados à outros filegroups. Todo banco de dados contém um arquivo de dados primário, que é o ponto de partida do database e que aponta para todos os outros arquivos do database. A extensão recomendada é .MDF Se você não especificar a palavra-chave PRIMARY, o primeiro arquivo listado no comando se tornará o arquivo primário.

Criando banco de dados (sintaxe) FILENAME: Esse parâmetro especifica o nome e rota do arquivo no sistema operacional. Deve ser um folder local ao servidor onde o SQL está instalado. SIZE: Especifica o tamanho do arquivo de dados ou de log em (MB) ou KB (default) Mínimo de 512KB ou o tamanho mínimo do arquivo de dados primário do banco model Valor padrão (default) é de 1MB

Criando banco de dados (sintaxe) MAXSIZE: Especifica o tamanho máximo que o arquivo pode alcançar em MB ou KB. Se não especificado, o arquivo poderá crescer até o disco ficar completamente cheio. FILEGROWTH: Especifica o incremento de crescimento. O crescimento máximo não irá execeder Maxsize. Pode ser especificado em MB (default), KB ou %. Se não especificado, será se 10% ou 64KB no mínimo.

Criando banco de dados (sintaxe) COLLATION: Especifica a colação (collation) padrão do banco A collation de um banco compreende regras de classificação, conjunto de caracteres suportados e sensibilidade a acentos. Ex: SQL_Latin1_General_Cp1_CI_AS (USA) SQL_Latin1_General_Cp1_CI_AI (Brasil)

Criando Bancos de Dados Exercício (linha de comando): Criar um banco de dados de nome TesteDB, com um arquivo primário de 10 MB, tamanho máximo de 20 MB e crescimento de 10% e um arquivo de log transacional de 5 MB, tamanho máximo de 10 MB e crescimento de 1MB. Arquivo primário: C:\SQLDATA\TesteDB_Data.mdf Arquivo de log: C:\SQLDATA\TesteDB_Log.ldf

Log transacional funcionamento

Log transacional funcionamento 1. Uma solicitação de alteração de dados é enviada pela aplicação. 2. Quando a alteração é executada, as páginas afetadas são carregadas do disco para o cache (buffer) se as mesmas já não estiverem em cache devido a uma consulta ou alteração anterior. 3. Cada alteração nos dados é gravada no log de transação ao mesmo tempo em que ocorrem (em tempo real). As alterações são sempre gravadas no log em disco antes que as mesmas alterações sejam feitas no banco de dados. Esse técnica é chamada de “write-ahead log”. 4. De tempos em tempos, um processo denominado checkpoint escreve todas as transações completadas no disco. Se ocorre uma falha no sistema um processo de recuperação automatizado usa o log transacional para refazer (roll forward) as transações que completaram (committed) e desfazer (rollback) as transações incompletas.

Database Options configuração Configuráveis por: SQL Server Management Studio Linha de comando Alter Database Exec sp_dboption Ex: Alter database TesteDB SET READ_ONLY

Database Options configuração Modelos de recuperação do banco de dados: ALTER DATABASE <DBNAME> SET RECOVERY FULL BULK_LOGGED SIMPLE FULL proporciona total recuperabilidade em caso de falhas; BULK_LOGGED gera menos log, mas é mais vulnerável. SIMPLE recupera o banco somente até o último backup full ou diferencial.

Database Options configuração Controle do estado do banco de dados: ALTER DATABASE <DBNAME> SET READ_ONLY READ_WRITE SINGLE_USER (somente um usuário) RESTRICTED_USER (somente sysadmin ou db_owner) MULTI_USER (normal )

Database Options – Exercício 1 1. No banco master, mudar TesteDB para single_user Use master Alter database TesteDB set single_user 2. Abrir nova query e selecionar TesteDB Use TesteDB 3. Abrir mais uma query e selecionar TesteDB 4. No banco master, mudar TesteDB para multi_user Alter database TesteDB set multi_user with rollback immediate

Database Options – Exercício 2 1. Criar tabela de nome “Cliente” em TesteDB Use TesteDB; Create table Cliente (cod_cliente int not null, nome_cliente varchar (30) not null); 2. Inserir linha na tabela Cliente Insert into Cliente values (1,’João Silva’); Select * from Cliente; 3. No banco master, mudar TesteDB para read_only Use master; Alter database TesteDB set read_only with rollback immediate; 2. Tentar inserir nova linha na tabela Cliente Insert into Cliente values (2,’Maria Santos’); 3. No banco master, mudar TesteDB para read_write Alter database TesteDB set read_write with rollback immediate;

Obtendo informações sobre databases sp_helpdb sp_helpdb database_name sp_spaceused [objname] sp_helpfile Ex: sp_helpdb TesteDB Use TesteDB exec sp_spaceused @updateusage=true Use TesteDB exec sp_helpfile

Obtendo informações pelas views de sistema Select * from sys.databases Select * from sys.database_files Select * from sys.allocation_units

Gerenciando arquivos de dados e log Sintaxe: ALTER DATABASE database { ADD FILE < filespec > [ ,...n ] [ TO FILEGROUP filegroup_name ] | ADD LOG FILE < filespec > [ ,...n ] | REMOVE FILE logical_file_name [ WITH DELETE ] | ADD FILEGROUP filegroup_name | REMOVE FILEGROUP filegroup_name | MODIFY FILE < filespec > | MODIFY NAME = new_dbname | MODIFY FILEGROUP filegroup_name {filegroup_property | NAME = new_filegroup_name } | SET < optionspec > [ ,...n ] [ WITH < termination > ] | COLLATE < collation_name > }

Gerenciando arquivos (cont.) Usando crescimento automático de arquivos Boas práticas: Aloque um tamanho inicial suficiente para evitar operações de expansão frequentes. Determine um tamanho máximo para os arquivos. Configure os incrementos grandes o suficiente para evitar operações de expansão frequentes. Por exemplo, se o log cresce 40 MB por dia, configure o autogrow para 50 MB e não 1MB!

Gerenciando arquivos (cont.) Adicionando arquivos secundários de dados ALTER DATABASE TesteDB ADD FILE (NAME = TesteDB_Data2, FILENAME='c:\Program Files\..\..\ Data\TesteDB_Data2.ndf', SIZE=15MB, MAXSIZE=20MB) GO

Gerenciando arquivos (cont.) Expandindo arquivos manualmente ALTER DATABASE TesteDB MODIFY FILE ( NAME = ‘TesteLog', SIZE = 30MB) GO

Gerenciando arquivos (cont.) Exercícios: Adicionar 2 arquivos de dados ao banco TesteDB Expandir o arquivo de log de TesteDB para 30MB Mudar o autoincremento do arquivo de log de TesteDB para 10 % e o tamanho máximo para 100MB.

Deletando um Database DROP DATABASE Ex: Drop database TesteDB Não é possível excluir um database se: O mesmo está em uso É um database de sistema Está no meio de um Restore Deleta todos os arquivos de dados (operação irreversível)

Manutenção Básica DBCC Shrinkdatabase : compacta o Banco Inteiro EX: DBCC Shrinkdatabase (TesteDB, 15) DBCC Shrinkfile : compacta um arquivo do Banco Use TesteDB DBCC Shrinkfile (TesteDB_Data, 5) Auto_shrink : compacta o Banco automaticamente ALTER database TesteDB SET auto_shrink ON

Manutenção Básica Exercícios: Compactar arquivo de dados do banco AdventureWorks2012 para 100 MB. Verificar o tamanho final do mesmo. Compactar o banco AdventureWorks2012 deixando 15% de espaço livre. Verificar o tamanho final de todos os arquivos (dados e log).

Manutenção Básica Exercícios: Gerar registros de log com o script abaixo: Use AdventureWorks2012 dbcc dbreindex ('Person.Person') dbcc dbreindex ('Sales.SalesOrderDetail') Verificar tamanho do arquivo de log Compactar arquivo de log do banco AdventureWorks2012 para 1 MB. Verificar o tamanho final do mesmo. O que ocorreu?

Manutenção Básica Exercícios: Mudar o modelo de recuperação do banco AdventureWorks2012 para FULL Fazer backup de dados e log do banco AdventureWorks2012 backup database AdventureWorks2012 to disk = 'C:\SQLBACKUP\AdventureWorks2012_20131203.BAK' with init backup log AdventureWorks2012 to disk = 'C:\SQLBACKUP\AdventureWorks2012_201312030800.TRN' with init Compactar novamente o arquivo de log do banco AdventureWorks2012 para 1 MB. Verificar o tamanho final do mesmo. O que ocorreu?

Armazenamento Interno

Armazenamento Interno O SQL Server armazena, lê e escreve dados em blocos de 8KB, chamados páginas. Linhas de uma tabela, de um modo geral, não podem ser maiores que uma página, ou 8060 (8192 Bytes – overhead). Todas as páginas são armazenadas em extents. Um extent são oito páginas contíguas, ou 64KB. Páginas podem conter dados de tabelas, índices ou controles de alocação.

Links Úteis Create Database sintaxe: http://technet.microsoft.com/pt-br/library/ms176061(v=sql.120).aspx Alter Database sintaxe: http://technet.microsoft.com/pt-br/library/ms174269(v=sql.120).aspx DBCC shrinkdatabase: http://technet.microsoft.com/pt-br/library/ms190488.aspx