Vous êtes sur la page 1sur 220

Microsoft SQL Server 2008

Módulo 1 – Introdução ao Transact-SQL e SQL Server

Módulo 2 – Programação em Transact-SQL

Módulo 3 – Administração do SQL Server

Pós-Graduado em COMPUTAÇÃO FORENSE pela Universidade Mackenzie

em C OMPUTAÇÃO F ORENSE pela Universidade Mackenzie D A R C I L E A

DARCI LEANDRO DE OLIVEIRA

Extensão Lato Sensu em DIDÁTICA DO ENSINO SUPERIOR

Graduado em TECNOLOGIA EM BANCO DE DADOS na Faculdade IBTA

Formação DBA - DBA SQL Server pela Microsoft Official Curriculum - DBA Oracle através da Oracle University

Diretor na empresa DBCenter IT Solutions

Professor de Graduação e Pós-Graduação

Escritor de artigos técnicos para Sites, Revistas e Livros

Palestrante em Congressos

Membro da Comissão de Crimes de Alta Tecnologia - OAB-SP

Perito Forense Computacional

Contatos:

e-Mail:

leandro@dbcenter.com.br

Twitter:

twitter.com/LeandroDBCenter

LinkedIn:

br.linkedin.com/in/DarciLeandroDeOliveira

Skype:

LeandroDBCenter

MSN:

Leandro.dbcenter@hotmail.com

Site:

www.DBCenter.com.br

Capítulo 1

“Conhecendo“Conhecendo oo MicrosoftMicrosoft SQLSQL Server”Server”

CapítuloCapítulo 11 -- ConhecendoConhecendo oo MicrosoftMicrosoft SQLSQL ServerServer

1. Introdução

2. Modelos de armazenamento

3. A filosofia

cliente/servidor

4. APIs aprimoradas para acesso a dados

5. Arquitetura de aplicações para o SQL Server

6. Serviços do SQL Server

7. Banco de dados de sistema

8. Metadados

9. Objetos de um banco de dados do SQL Server

10. Nomes dos objetos

1.1. IntroduçãoIntrodução

OO MicrosoftMicrosoft SQLSQL ServerServer 20082008 apresentaapresenta asas seguintesseguintes características:características:

-- ÉÉ umum gerenciadorgerenciador dede bancobanco dede dadosdados dodo tipotipo relacirelaciononalal cliente/servidorcliente/servidor

-- DesenvolvidoDesenvolvido parapara processarprocessar transaçõestransações ee gerenciagerenciarr oo armazenamentoarmazenamento dede dadosdados

-- PossuiPossui tecnologiatecnologia parapara armazenamentoarmazenamento ee gerenciamentogerenciamento dede dadosdados dosdos ambientesambientes OLAPOLAP ee OLTPOLTP

-- DemonstraDemonstra altoalto desempenhodesempenho

1/12

CapítuloCapítulo 11 -- ConhecendoConhecendo oo MicrosoftMicrosoft SQLSQL ServerServer

1. Introdução

2. Modelos de armazenamento

3. A filosofia

cliente/servidor

4. APIs aprimoradas para acesso a dados

5. Arquitetura de aplicações para o SQL Server

6. Serviços do SQL Server

7. Banco de dados de sistema

8. Metadados

9. Objetos de um banco de dados do SQL Server

10. Nomes dos objetos

UmUm SGBDSGBD (Sistema(Sistema GerenciadorGerenciador dede BancoBanco dede Dados)Dados) éé ccapazapaz dede realizarrealizar umauma sériesérie dede tarefas,tarefas, como:como:

-- ControlarControlar oo compartilhamento,compartilhamento, oo armazenamento,armazenamento, aa organização,organização, aa segurançasegurança ee aa redundânciaredundância dosdos dadosdados

-- ControlarControlar aa atomicidadeatomicidade dasdas operaçõesoperações comcom dadosdados ee oo acessoacesso dede múltiplosmúltiplos usuáriosusuários (concorrência)(concorrência)

-- ProcessarProcessar osos dadosdados armazenadosarmazenados nosnos bancobanco dede dadosdados

-- FornecerFornecer ee controlarcontrolar aa integridadeintegridade dosdos dadosdados

-- PermitirPermitir aa recuperaçãorecuperação dede dadosdados perdidosperdidos devidodevido aa falhasfalhas

-- OferecerOferecer aa independênciaindependência dosdos dadosdados

-- ControlarControlar aa estruturaestrutura dodo bancobanco dede dadosdados

-- AceitarAceitar requerimentorequerimento dede dadosdados dede umauma aplicaçãoaplicação

-- PossibilitarPossibilitar queque diferentesdiferentes usuáriosusuários visualizemvisualizem ooss dadosdados

-- TransferirTransferir osos dadosdados desejadosdesejados porpor meiomeio dada instruçinstruçãoão dodo sistemasistema operacionaloperacional

-- EntreEntre outras

outras

2/12

CapítuloCapítulo 11 -- ConhecendoConhecendo oo MicrosoftMicrosoft SQLSQL ServerServer

1.

Introdução

2.

Modelos de armazenamento

3.

A filosofia

cliente/servidor

4.

APIs aprimoradas para acesso a dados

5.

Arquitetura de aplicações para o SQL Server

6.

Serviços do SQL Server

7.

Banco de dados de sistema

8.

Metadados

9.

Objetos de um banco de dados do SQL Server

10.

Nomes dos objetos

2.2. ModelosModelos dede armazenamentoarmazenamento

-- OLTPOLTP OnlineOnline TransactionTransaction ProcessingProcessing

-- OLAPOLAP OnlineOnline AnalyticalAnalytical ProcessingProcessing

-- TTabelaabela páginapágina 2121

3/12

CapítuloCapítulo 11 -- ConhecendoConhecendo oo MicrosoftMicrosoft SQLSQL ServerServer

1.

Introdução

2.

Modelos de armazenamento

3.

A filosofia

cliente/servidor

4.

APIs aprimoradas para acesso a dados

5.

Arquitetura de aplicações para o SQL Server

6.

Serviços do SQL Server

7.

Banco de dados de sistema

8.

Metadados

9.

Objetos de um banco de dados do SQL Server

10.

Nomes dos objetos

3.3. AA filosofiafilosofia clientecliente // servidorservidor

Vantagens:Vantagens:

-- MigraçãoMigração dodo sistemasistema parapara umum bancobanco dede dadosdados diferentediferente

-- ReduçãoRedução dodo tráfegotráfego dede rederede

-- CompartilhamentoCompartilhamento dosdos dadosdados

-- EscalabilidadeEscalabilidade

Desvantagens:Desvantagens:

-- MigraçãoMigração dede todastodas asas storedstored proceduresprocedures

-- LentidãoLentidão nono processamentoprocessamento dede regrasregras dede negócionegócio emem umauma máquinamáquina clientecliente

4/12

CapítuloCapítulo 11 -- ConhecendoConhecendo oo MicrosoftMicrosoft SQLSQL ServerServer

1.

Introdução

2.

Modelos de armazenamento

3.

A filosofia

cliente/servidor

4.

APIs aprimoradas para acesso a dados

5.

Arquitetura de aplicações para o SQL Server

6.

Serviços do SQL Server

7.

Banco de dados de sistema

8.

Metadados

9.

Objetos de um banco de dados do SQL Server

10.

Nomes dos objetos

3.13.1 ProtocoloProtocolo

ComunicaçãoComunicação viavia rederede entreentre todostodos osos servidoresservidores ee clientesclientes envolvidosenvolvidos nono processo.processo.

-- TCP/IPTCP/IP

(recomendado)(recomendado)

-- NamedNamed PipesPipes

-- SharedShared MemoryMemory

-- VIAVIA

5/12

CapítuloCapítulo 11 -- ConhecendoConhecendo oo MicrosoftMicrosoft SQLSQL ServerServer

1.

Introdução

2.

Modelos de armazenamento

3.

A filosofia

cliente/servidor

4.

APIs aprimoradas para acesso a dados

5.

Arquitetura de aplicações para o SQL Server

6.

Serviços do SQL Server

7.

Banco de dados de sistema

8.

Metadados

9.

Objetos de um banco de dados do SQL Server

10.

Nomes dos objetos

4.4. APIsAPIs aprimoradasaprimoradas parapara acessoacesso aa dadosdados

-- APIAPI (Application(Application ProgrammingProgramming Interface)Interface)

-- UtilizadoUtilizado pelopelo programadorprogramador parapara conectarconectar--sese aoao SGBDSGBD

6/12

CapítuloCapítulo 11 -- ConhecendoConhecendo oo MicrosoftMicrosoft SQLSQL ServerServer

1.

Introdução

2.

Modelos de armazenamento

3.

A filosofia

cliente/servidor

4.

APIs aprimoradas para acesso a dados

5.

Arquitetura de aplicações para o SQL Server

6.

Serviços do SQL Server

7.

Banco de dados de sistema

8.

Metadados

9.

Objetos de um banco de dados do SQL Server

10.

Nomes dos objetos

5.5. ArquiteturaArquitetura dede aplicaçõesaplicações parapara oo SQLSQL ServerServer

ÉÉ possívelpossível dividirdividir umauma aplicaçãoaplicação emem trêstrês camadascamadas ‘l‘lógicas’ógicas’

-- CamadaCamada dede dadosdados -- CamadaCamada dede negóciosnegócios -- CamadaCamada dede apresentaçãoapresentação

5.15.1 EstruturaEstrutura dada arquiteturaarquitetura dasdas aplicaçõesaplicações

-- ServidorServidor InteligenteInteligente

-- ClienteCliente InteligenteInteligente

-- SistemasSistemas dede NN CamadasCamadas

-- InternetInternet

7/12

CapítuloCapítulo 11 -- ConhecendoConhecendo oo MicrosoftMicrosoft SQLSQL ServerServer

1.

Introdução

2.

Modelos de armazenamento

3.

A filosofia

cliente/servidor

4.

APIs aprimoradas para acesso a dados

5.

Arquitetura de aplicações para o SQL Server

6.

Serviços do SQL Server

7.

Banco de dados de sistema

8.

Metadados

9.

Objetos de um banco de dados do SQL Server

10.

Nomes dos objetos

6.6. ServiçosServiços dodo SQLSQL ServerServer

-- SQLSQL ServerServer (MSSQLSERVER)(MSSQLSERVER)

(principal(principal serviço)serviço)

-- SQLSQL ServerServer AgentAgent

(serviço(serviço agendamento)agendamento)

-- SQLSQL ServerServer FullTextFullText SearchSearch

(pesquisa(pesquisa emem colunascolunas dodo tipotipo text)text)

-- ReportingReporting ServicesServices

(Gerenciador(Gerenciador dede Relatório)Relatório)

-- OtherOther ServicesServices

-- InstanceInstance -- MSSQLServerMSSQLServer$$ComprasCompras -- MSSQLServerMSSQLServer$$RecursosHumanosRecursosHumanos

8/12

CapítuloCapítulo 11 -- ConhecendoConhecendo oo MicrosoftMicrosoft SQLSQL ServerServer

1.

Introdução

2.

Modelos de armazenamento

3.

A filosofia

cliente/servidor

4.

APIs aprimoradas para acesso a dados

5.

Arquitetura de aplicações para o SQL Server

6.

Serviços do SQL Server

7.

Banco de dados de sistema

8.

Metadados

9.

Objetos de um banco de dados do SQL Server

10.

Nomes dos objetos

7.7. BancoBanco dede dadosdados dede sistemasistema

7.17.1 MASTERMASTER PrincipalPrincipal bancobanco dede dadosdados

7.27.2 TEMPDBTEMPDB RotinasRotinas temporáriastemporárias

7.37.3 MODELMODEL DatabaseDatabase templatetemplate,, modelomodelo

7.47.4 MSDBMSDB AgentAgent ServicesServices

9/12

CapítuloCapítulo 11 -- ConhecendoConhecendo oo MicrosoftMicrosoft SQLSQL ServerServer

1. Introdução

2. Modelos de armazenamento

3. A filosofia

cliente/servidor

4. APIs aprimoradas para acesso a dados

5. Arquitetura de aplicações para o SQL Server

6. Serviços do SQL Server

7. Banco de dados de sistema

8. Metadados

9. Objetos de um banco de dados do SQL Server

10. Nomes dos objetos

8.8. MetadadosMetadados

-- DadosDados dosdos DadosDados

-- TTabelasabelas ee ViewsViews queque armazenamarmazenam informaçõesinformações sobresobre asas característicascaracterísticas dosdos demaisdemais objetosobjetos

8.18.1 ObtendoObtendo metadadosmetadados

selectselect name,name, xtypextype fromfrom sysObjectssysObjects

8.1.18.1.1 ProceduresProcedures queque retornamretornam metadadosmetadados

páginaspáginas 3333 ee 3434

8.1.28.1.2 FunçõesFunções queque retornamretornam metadadosmetadados

páginaspáginas 3535 ee 3636

10/12

CapítuloCapítulo 11 -- ConhecendoConhecendo oo MicrosoftMicrosoft SQLSQL ServerServer

1.

Introdução

2.

Modelos de armazenamento

3.

A filosofia

cliente/servidor

4.

APIs aprimoradas para acesso a dados

5.

Arquitetura de aplicações para o SQL Server

6.

Serviços do SQL Server

7.

Banco de dados de sistema

8.

Metadados

9.

Objetos de um banco de dados do SQL Server

10.

Nomes dos objetos

9.9. ObjetosObjetos dede umum bancobanco dede dadosdados dodo SQLSQL ServerServer

-- DatabaseDatabase

-- TTableable

-- ViewView

-- ProcedureProcedure

-- FunctionFunction

-- TriggerTrigger

-- EntreEntre outros:outros:

-- ConstraintConstraint -- DefaultDefault -- IndexIndex -- RuleRule -- UserUser DefinedDefined DataTypeDataType

11/12

CapítuloCapítulo 11 -- ConhecendoConhecendo oo MicrosoftMicrosoft SQLSQL ServerServer

1. Introdução

2. Modelos de armazenamento

3. A filosofia

cliente/servidor

4. APIs aprimoradas para acesso a dados

5. Arquitetura de aplicações para o SQL Server

6. Serviços do SQL Server

7. Banco de dados de sistema

8. Metadados

9. Objetos de um banco de dados do SQL Server

10. Nomes dos objetos

10.10. NomesNomes dosdos objetosobjetos

-- TotalmenteTotalmente qualificadoqualificado

-- ParcialmenteParcialmente qualificadoqualificado

Estrutura:Estrutura:

ServerServer

Exemplo:Exemplo:

DatabaseDatabase

SchemaSchema

ObjectObject

srvsql1.compra.srvsql1.compra.felipefelipe tb_clientetb_cliente

12/12

EXERCÍCIOSEXERCÍCIOS

PáginasPáginas 519519 atéaté 521521

Capítulo 2

“Instalando“Instalando oo SQLSQL Server”Server”

CapítuloCapítulo 22 -- InstalandoInstalando oo SQLSQL ServerServer

1. Introdução

2. Edições do Microsoft SQL Server 2005

3. Requisitos de hardware, software e sistemas operacionais

4. Otimizando o

hardware

5. Considerações sobre a instalação do SQL Server

6. Collation

7. Configurando o uso de relatórios de erros

1.1. IntroduçãoIntrodução

-- EdiçõesEdições dodo MicrosoftMicrosoft SQLSQL ServerServer

-- RequisitosRequisitos dede HardwareHardware

-- LicenciamentoLicenciamento dodo SoftwareSoftware

-- MecanismoMecanismo dede autenticaçãoautenticação

-- CollationCollation adequadoadequado

-- BibliotecasBibliotecas dede rederede aa seremserem utilizadasutilizadas

8. Instalando o SQL Server através de scripts

9. Comunicação

cliente/servidor

10. Solucionando

problemas

-- ContextoContexto dede segurançasegurança dada contaconta dosdos serviçosserviços

-- MétodoMétodo dede instalaçãoinstalação aa serser utilizadoutilizado comcom oo SQLSQL SeServrverer

1/11

CapítuloCapítulo 22 -- InstalandoInstalando oo SQLSQL ServerServer

1.

Introdução

2.

Edições do Microsoft SQL Server 2005

3.

Requisitos de hardware, software e sistemas operacionais

4.

Otimizando o

hardware

5.

Considerações sobre a instalação do SQL Server

6.

Collation

7.

Configurando o uso de relatórios de erros

8.

Instalando o SQL Server através de scripts

9.

Comunicação

cliente/servidor

10.

Solucionando

problemas

2.2. EdiçõesEdições dodo MicrosoftMicrosoft SQLSQL ServerServer 20082008

2.12.1 ExpressExpress EditionEdition

VersãoVersão gratuitagratuita

2.22.2 WorkgroupWorkgroup EditionEdition

IdealIdeal parapara pequenaspequenas ee médiasmédias empresasempresas

2.32.3 DeveloperDeveloper EditionEdition

ExclusivaExclusiva parapara DesenvolvimentoDesenvolvimento

2.42.4 StandardStandard EditionEdition

ExcelenteExcelente opçãoopção parapara empresaempresa dede pequeno,pequeno, médiomédio

grandegrande porte,porte, porém,porém, limitadalimitada emem recursosrecursos avançadosavançados

ee

2.52.5 EnterpriseEnterprise EditionEdition

EdiçãoEdição FullFull dodo SoftwareSoftware

2.62.6 WebWeb EditionEdition VoltadaVoltada parapara ProvedoresProvedores dede InternetInternet

2.72.7 CompactCompact 3.53.5 EditionEdition EspecialmenteEspecialmente desenvolvidadesenvolvida parapara PocketPCPocketPC

2/11

CapítuloCapítulo 22 -- InstalandoInstalando oo SQLSQL ServerServer

1.

Introdução

2.

Edições do Microsoft SQL Server 2005

3.

Requisitos de hardware, software e sistemas operacionais

4.

Otimizando o

hardware

5.

Considerações sobre a instalação do SQL Server

6.

Collation

7.

Configurando o uso de relatórios de erros

8.

Instalando o SQL Server através de scripts

9.

Comunicação

cliente/servidor

10.

Solucionando

problemas

3.3. RequisitosRequisitos dede hardware,hardware, SoftwareSoftware ee SistemasSistemas OperacionaisOperacionais

3.13.1 ExpressExpress EditionEdition

3.23.2 WorkgroupWorkgroup EditionEdition

3.33.3 DeveloperDeveloper EditionEdition

3.43.4 StandardStandard EditionEdition

3.53.5 EnterpriseEnterprise EditionEdition

3.63.6 WebWeb EditionEdition

3.73.7 EspaçoEspaço emem DiscoDisco VerificarVerificar antesantes dede instalarinstalar sese temtem livrelivre 1.61.6 GBGB devidodevido aa arquivosarquivos temporáriostemporários queque serãoserão utilizadosutilizados nono momentomomento dada instalação.instalação.

3/11

CapítuloCapítulo 22 -- InstalandoInstalando oo SQLSQL ServerServer

1.

Introdução

2.

Edições do Microsoft SQL Server 2005

3.

Requisitos de hardware, software e sistemas operacionais

4.

Otimizando o

hardware

5.

Considerações sobre a instalação do SQL Server

6.

Collation

7.

Configurando o uso de relatórios de erros

8.

Instalando o SQL Server através de scripts

9.

Comunicação

cliente/servidor

10.

Solucionando

problemas

4.4. OtimizandoOtimizando oo hardwarehardware

-- ProcessadorProcessador 2,2, 4,4, 88 processadoresprocessadores

-- DiscoDisco RAIDRAID –– ““Redundant Array of Inexpensive Disks” (vamos(vamos estudarestudar nono capítulocapítulo 3)3)

-- MemóriaMemória 2,2, 4,4, 88 GBGB

4/11

CapítuloCapítulo 22 -- InstalandoInstalando oo SQLSQL ServerServer

1.

Introdução

2.

Edições do Microsoft SQL Server 2005

3.

Requisitos de hardware, software e sistemas operacionais

4.

Otimizando o

hardware

5.

Considerações sobre a instalação do SQL Server

6.

Collation

7.

Configurando o uso de relatórios de erros

8.

Instalando o SQL Server através de scripts

9.

Comunicação

cliente/servidor

10.

Solucionando

problemas

5.5. ConsideraçõesConsiderações sobresobre aa instalaçãoinstalação dodo SQLSQL ServerServer

5.15.1 LicençasLicenças

CALLCALL ((ClientClient AccessAccess License)License)

-- ProcessorProcessor

->->

ProcessadoresProcessadores

-- UserUser

->->

UsuáriosUsuários

-- DeviceDevice

->->

InstânciasInstâncias

5/11

CapítuloCapítulo 22 -- InstalandoInstalando oo SQLSQL ServerServer

1.

Introdução

2.

Edições do Microsoft SQL Server 2005

3.

Requisitos de hardware, software e sistemas operacionais

4.

Otimizando o

hardware

5.

Considerações sobre a instalação do SQL Server

6.

Collation

7.

Configurando o uso de relatórios de erros

8.

Instalando o SQL Server através de scripts

9.

Comunicação

cliente/servidor

10.

Solucionando

problemas

5.5. ConsideraçõesConsiderações sobresobre aa instalaçãoinstalação dodo SQLSQL ServerServer

5.25.2 ComponentesComponentes dada instalaçãoinstalação ((advancedadvanced))

5.2.15.2.1 EspecificandoEspecificando osos componentescomponentes dada instalaçãoinstalação

“Escolhendo“Escolhendo oo queque iráirá serser instalado”instalado”

-- SQLSQL ServerServer DatabaseDatabase

-- AnalysisAnalysis ServicesServices

-- ReportingReporting ServicesServices

-- NotificationNotification ServicesServices

-- IntegrationIntegration ServicesServices

-- WorkstationWorkstation Components,Components, BooksBooks Online,Online, DevelopmentDevelopment

6/11

CapítuloCapítulo 22 -- InstalandoInstalando oo SQLSQL ServerServer

1.

Introdução

2.

Edições do Microsoft SQL Server 2005

3.

Requisitos de hardware, software e sistemas operacionais

4.

Otimizando o

hardware

5.

Considerações sobre a instalação do SQL Server

6.

Collation

7.

Configurando o uso de relatórios de erros

8.

Instalando o SQL Server através de scripts

9.

Comunicação

cliente/servidor

10.

Solucionando

problemas

5.5. ConsideraçõesConsiderações sobresobre aa instalaçãoinstalação dodo SQLSQL ServerServer

5.35.3 InstânciasInstâncias dodo SQLSQL ServerServer

-- InstanceInstance DefaultDefault MSSQLSERVERMSSQLSERVER

-- NamedNamed InstanceInstance MSSQLSERVER$MSSQLSERVER$nome_que_voce_atribuiunome_que_voce_atribuiu

5.45.4 EspecificandoEspecificando aa contaconta dodo administradoradministrador

-- ServiceService AccountAccount

-- AquiAqui éé definidodefinido oo nomenome dada contaconta queque oo MicrosoftMicrosoft SQLSQL ServerServer iráirá serser executadoexecutado

7/11

CapítuloCapítulo 22 -- InstalandoInstalando oo SQLSQL ServerServer

1.

Introdução

2.

Edições do Microsoft SQL Server 2005

3.

Requisitos de hardware, software e sistemas operacionais

4.

Otimizando o

hardware

5.

Considerações sobre a instalação do SQL Server

6.

Collation

7.

Configurando o uso de relatórios de erros

8.

Instalando o SQL Server através de scripts

9.

Comunicação

cliente/servidor

10.

Solucionando

problemas

5.5. ConsideraçõesConsiderações sobresobre aa instalaçãoinstalação dodo SQLSQL ServerServer

5.4.15.4.1 EspecificandoEspecificando umauma contaconta porpor serviçoserviço

5.4.25.4.2 EspecificandoEspecificando umauma contaconta pertencentepertencente aoao sistemsistemaa

-- LocalLocal SystemSystem

5.4.35.4.3 EspecificandoEspecificando umauma contaconta pertencentepertencente aoao dominiodominio

-- DomainDomain AccountAccount

5.55.5 EspecificandoEspecificando osos serviçosserviços queque serãoserão iniciadosiniciados automaticamenteautomaticamente

-- AutoAuto StartStart

8/11

CapítuloCapítulo 22 -- InstalandoInstalando oo SQLSQL ServerServer

1. Introdução

2. Edições do Microsoft SQL Server 2005

3. Requisitos de hardware, software e sistemas operacionais

4. Otimizando o

hardware

5. Considerações sobre a instalação do SQL Server

6. Collation

7. Configurando o uso de relatórios de erros

8. Instalando o SQL Server através de scripts

9. Comunicação

cliente/servidor

10. Solucionando

problemas

6.6. CollationCollation

ConjuntoConjunto dede regrasregras internasinternas responsávelresponsável porpor determideterminarnar critérioscritérios parapara aa comparação,comparação, ordenaçãoordenação ee apresentaçapresentaçãoão dosdos dadosdados

CSCS

-- CaseCase SensitiveSensitive

CICI

-- CaseCase InsensitiveInsensitive

ASAS

-- AccentAccent SensitiveSensitive

AIAI

-- AccentAccent InsentiveInsentive

ExecuteExecute sp_HelpSortsp_HelpSort

SelectSelect ** fromfrom fn_HelpCollations()fn_HelpCollations()

9/11

CapítuloCapítulo 22 -- InstalandoInstalando oo SQLSQL ServerServer

1.

Introdução

2.

Edições do Microsoft SQL Server 2005

3.

Requisitos de hardware, software e sistemas operacionais

4.

Otimizando o

hardware

5.

Considerações sobre a instalação do SQL Server

6.

Collation

7.

Configurando o uso de relatórios de erros

8.

Instalando o SQL Server através de scripts

9.

Comunicação

cliente/servidor

10.

Solucionando

problemas

7.7. ConfigurandoConfigurando oo usouso dede relatóriosrelatórios dede erroserros

7.17.1 ErrorError ReportingReporting

AoAo ocorrerocorrer algumalgum erroerro nono SoftwareSoftware dodo SQLSQL ServerServer éé possívelpossível reportarreportar automaticamenteautomaticamente aa MicrosoftMicrosoft sobresobre aa mensagemmensagem dede erro.erro.

7.27.2 FeatureFeature UsageUsage

PeriodicamentePeriodicamente éé enviadoenviado umum relatóriorelatório parapara aa Microsoft.Microsoft.

10/11

CapítuloCapítulo 22 -- InstalandoInstalando oo SQLSQL ServerServer

1.

Introdução

2.

Edições do Microsoft SQL Server 2005

3.

Requisitos de hardware, software e sistemas operacionais

4.

Otimizando o

hardware

5.

Considerações sobre a instalação do SQL Server

6.

Collation

7.

Configurando o uso de relatórios de erros

8.

Instalando o SQL Server através de scripts

9.

Comunicação

cliente/servidor

10.

Solucionando

problemas

8.8. InstalandoInstalando oo SQLSQL ServerServer atravésatravés dede scriptsscripts

OO SQLSQL ServerServer podepode serser instaladoinstalado pelapela formaforma GráficaGráfica ouou atravésatravés dede Scripts.Scripts.

9.9. ComunicaçãoComunicação ClienteCliente // ServidorServidor

OO SQLSQL ServerServer instaladainstalada umum protocoloprotocolo nativonativo queque podepode serser utilizadoutilizado atravésatravés dosdos sistemassistemas emem comunicaçãocomunicação ccomom oo SoftwareSoftware dede BancoBanco dede Dados.Dados.

SQLSQL NativeNative ClientClient

10.10. SolucionandoSolucionando problemasproblemas

NaNa páginapágina 8989 éé apresentadoapresentado algumasalgumas dicasdicas dede comocomo solucionarsolucionar algunsalguns problemas,problemas, porém,porém, podepode ocorrerocorrer mumuitoito maismais problemas,problemas, sendosendo assimassim oo idealideal éé acessaracessar oo sitsitee dada MicrosoftMicrosoft parapara “tentar”“tentar” entenderentender oo queque possapossa estarestar ocorrendo.ocorrendo.

11/11

EXERCÍCIOSEXERCÍCIOS

PáginasPáginas 523523 atéaté 538538

Capítulo 3

“Banco“Banco dede dadosdados dede usuário”usuário”

CapítuloCapítulo 33 -- BancoBanco dede dadosdados dede usuáriousuário

1. Introdução

2. Arquivos (files)

3. Criando bancos de dados com comandos

4. Transaction Log

5. Alterando um banco de dados

6. Alocação de espaços

7. Opções de configuração de um banco de dados

8. RAID (Redundant Array of Inexpensive Disks)

1.1. IntroduçãoIntrodução

--

DataData FileFile

--

LogLog FileFile

--

FileGroupFileGroup

1/39

CapítuloCapítulo 33 -- BancoBanco dede dadosdados dede usuáriousuário

1.

Introdução

2.

Arquivos (files)

3.

Criando bancos de dados com comandos

4.

Transaction Log

5.

Alterando um banco de dados

6.

Alocação de espaços

7.

Opções de configuração de um banco de dados

8.

RAID (Redundant Array of Inexpensive Disks)

2.2. ArquivosArquivos (Files)(Files)

-- TiposTipos dede arquivos:arquivos:

-- PrimaryPrimary DataData FileFile

mdfmdf

(dados)(dados)

-- SecondarySecondary DataData FileFile

ndfndf

(dados)(dados)

-- TransactionTransaction LogLog FileFile

ldfldf

(transaction(transaction log)log)

2/39

CapítuloCapítulo 33 -- BancoBanco dede dadosdados dede usuáriousuário

1.

Introdução

2.

Arquivos (files)

3.

Criando bancos de dados com comandos

4.

Transaction Log

5.

Alterando um banco de dados

6.

Alocação de espaços

7.

Opções de configuração de um banco de dados

8.

RAID (Redundant Array of Inexpensive Disks)

2.2. ArquivosArquivos (Files)(Files)

2.12.1 AtributosAtributos dosdos arquivosarquivos

-- NomeNome LógicoLógico

-- NomeNome FísicoFísico

-- TTamanhoamanho inicialinicial

-- TTamanhoamanho máximomáximo

-- CrescimentoCrescimento

3/39

CapítuloCapítulo 33 -- BancoBanco dede dadosdados dede usuáriousuário

1.

Introdução

2.

Arquivos (files)

3.

Criando bancos de dados com comandos

4.

Transaction Log

5.

Alterando um banco de dados

6.

Alocação de espaços

7.

Opções de configuração de um banco de dados

8.

RAID (Redundant Array of Inexpensive Disks)

2.2. ArquivosArquivos (Files)(Files)

2.22.2 GrupoGrupo dede arquivosarquivos ((FileGroupFileGroup))

-- MelhoraMelhora aa performanceperformance

-- VáriosVários arquivosarquivos

-- VáriosVários HDsHDs

-- AlocaçãoAlocação dinâmicadinâmica

4/39

CapítuloCapítulo 33 -- BancoBanco dede dadosdados dede usuáriousuário

1.

Introdução

2.

Arquivos (files)

3.

Criando bancos de dados com comandos

4.

Transaction Log

5.

Alterando um banco de dados

6.

Alocação de espaços

7.

Opções de configuração de um banco de dados

8.

RAID (Redundant Array of Inexpensive Disks)

2.2. ArquivosArquivos (Files)(Files)

2.2.12.2.1 TiposTipos dede GruposGrupos dede ArquivosArquivos

-- FileGroupFileGroup PadrãoPadrão

-- FileGroupFileGroup DefinidoDefinido pelopelo UsuárioUsuário

5/39

CapítuloCapítulo 33 -- BancoBanco dede dadosdados dede usuáriousuário

1.

Introdução

2.

Arquivos (files)

3.

Criando bancos de dados com comandos

4.

Transaction Log

5.

Alterando um banco de dados

6.

Alocação de espaços

7.

Opções de configuração de um banco de dados

8.

RAID (Redundant Array of Inexpensive Disks)

2.2. ArquivosArquivos (Files)(Files)

2.32.3 RegrasRegras dosdos arquivosarquivos ee gruposgrupos dede arquivosarquivos

-- FileGroupFileGroup existeexiste somentesomente emem DataData FileFile

-- NãoNão existeexiste FileGroupFileGroup parapara LogLog FileFile

-- 11 FileGroupFileGroup contémcontém váriosvários DataData FileFile

-- 11 DataData FileFile pertencepertence aa 11 FileGroupFileGroup

6/39

CapítuloCapítulo 33 -- BancoBanco dede dadosdados dede usuáriousuário

1.

Introdução

2.

Arquivos (files)

3.

Criando bancos de dados com comandos

4.

Transaction Log

5.

Alterando um banco de dados

6.

Alocação de espaços

7.

Opções de configuração de um banco de dados

8.

RAID (Redundant Array of Inexpensive Disks)

2.2. ArquivosArquivos (Files)(Files)

2.42.4 RecomendaçõesRecomendações parapara oo usouso dede arquivosarquivos ee gruposgrupos dede arquivosarquivos

-- TTabelasabelas ee ÍndicesÍndices emem FileGroupFileGroup diferentesdiferentes

-- ArquivosArquivos dede DadosDados emem discosdiscos separadosseparados

-- AsAs tabelastabelas queque sãosão utilizadasutilizadas nono mesmomesmo JoinJoin oo idealideal éé cria-cria-laslas emem FileGroupFileGroup diferentesdiferentes

7/39

CapítuloCapítulo 33 -- BancoBanco dede dadosdados dede usuáriousuário

1.

Introdução

2.

Arquivos (files)

3.

Criando bancos de dados com comandos

4.

Transaction Log

5.

Alterando um banco de dados

6.

Alocação de espaços

7.

Opções de configuração de um banco de dados

8.

RAID (Redundant Array of Inexpensive Disks)

3.3. CriandoCriando bancosbancos dede dadosdados comcom comandoscomandos

-- ComandoComando CREATECREATE DATABASEDATABASE

3.13.1 CláusulasCláusulas dodo comandocomando CreateCreate DatabaseDatabase

-- Database_NameDatabase_Name -- OnOn -- PrimaryPrimary -- LogLog OnOn -- NameName -- FileNameFileName -- SizeSize -- MaxSizeMaxSize -- UnlimitedUnlimited -- FileGrowthFileGrowth

NomeNome dodo DatabaseDatabase InicioInicio dodo FileGroupFileGroup NomeNome dodo PrimeiroPrimeiro FileGroupFileGroup InicioInicio dodo TransactionTransaction LogLog NomeNome LógicoLógico dodo arquivoarquivo NomeNome FísicoFísico dodo arquivoarquivo TTamanhoamanho inicialinicial dodo arquivoarquivo TTamanhoamanho máximomáximo dodo arquivoarquivo IráIrá crescercrescer dede formaforma ilimitadailimitada FormaForma dede crescimentocrescimento

8/39

CapítuloCapítulo 33 -- BancoBanco dede dadosdados dede usuáriousuário

1.

Introdução

2.

Arquivos (files)

3.

Criando bancos de dados com comandos

4.

Transaction Log

5.

Alterando um banco de dados

6.

Alocação de espaços

7.

Opções de configuração de um banco de dados

8.

RAID (Redundant Array of Inexpensive Disks)

3.3. CriandoCriando bancosbancos dede dadosdados comcom comandoscomandos

3.23.2 SPsSPs queque fornecemfornecem informaçõesinformações sobresobre osos databasesdatabases

-- sp_helpdbsp_helpdb

-- sp_spaceusedsp_spaceused

-- sp_helpfilegroupsp_helpfilegroup

-- sp_helpfilesp_helpfile

DatabasesDatabases existentesexistentes

EspaçoEspaço utilizadoutilizado

FilegroupFilegroup existentesexistentes

InformaçõesInformações sobresobre osos arquivosarquivos

9/39

CapítuloCapítulo 33 -- BancoBanco dede dadosdados dede usuáriousuário

1.

Introdução

2.

Arquivos (files)

3.

Criando bancos de dados com comandos

4.

Transaction Log

5.

Alterando um banco de dados

6.

Alocação de espaços

7.

Opções de configuração de um banco de dados

8.

RAID (Redundant Array of Inexpensive Disks)

3.3. CriandoCriando bancosbancos dede dadosdados comcom comandoscomandos

3.33.3 ExemplosExemplos dede criaçãocriação dede databasesdatabases

DatabasesDatabases -- VendasVendas -- BibliotecaBiblioteca -- BibliotecaBiblioteca -- ProdutosProdutos -- TesteTeste -- ClienteCliente

páginapágina 108108 páginapágina 109109 páginapágina 110110 páginapágina 111111 páginapágina 112112 páginapágina 112112

10/39

CapítuloCapítulo 33 -- BancoBanco dede dadosdados dede usuáriousuário

1.

Introdução

2.

Arquivos (files)

3.

Criando bancos de dados com comandos

4.

Transaction Log

5.

Alterando um banco de dados

6.

Alocação de espaços

7.

Opções de configuração de um banco de dados

8.

RAID (Redundant Array of Inexpensive Disks)

4.4. TransactionTransaction LogLog

11-- AA aplicaçãoaplicação enviaenvia umauma transaçãotransação dede dadosdados

22-- AA transaçãotransação éé executadaexecutada

33-- AsAs páginaspáginas dede dadosdados afetadasafetadas sãosão carregadascarregadas dodo discodisco parapara aa memóriamemória “data“data cache”cache” IstoIsto nãonão iráirá ocorrerocorrer casocaso umauma queryquery anterioranterior jájá tenhatenha carregadocarregado essasessas páginaspáginas nono “data“data cache”cache”

44-- CadaCada comandocomando emitidoemitido éé registradoregistrado nono log.log. EsteEste registraregistra asas alteraçõesalterações antesantes dasdas mesmasmesmas seremserem registradasregistradas nono database.database.

55-- PorPor umum processoprocesso automáticoautomático denominadodenominado “checkpoint”“checkpoint”,, asas alteraçõesalterações jájá registradasregistradas sãosão escritasescritas emem suassuas ttabelasabelas correspondentes.correspondentes.

11/39

CapítuloCapítulo 33 -- BancoBanco dede dadosdados dede usuáriousuário

1.

Introdução

2.

Arquivos (files)

3.

Criando bancos de dados com comandos

4.

Transaction Log

5.

Alterando um banco de dados

6.

Alocação de espaços

7.

Opções de configuração de um banco de dados

8.

RAID (Redundant Array of Inexpensive Disks)

4.4. TransactionTransaction LogLog

4.14.1 SituaçõesSituações queque produzemproduzem atividadeatividade excessivaexcessiva dodo loglog

-- CarregamentoCarregamento dede dadosdados emem tabelastabelas comcom índiceíndice

-- TransaçõesTransações queque executamexecutam modificaçõesmodificações emem excessoexcesso

-- UsoUso dede WriteTextWriteText ouou UpdateTextUpdateText comcom WithWith LogLog parapara incluir/alterarincluir/alterar dadosdados TextText ouou Image.Image.

4.24.2 GerenciandoGerenciando oo crescimentocrescimento dodo arquivoarquivo dede DadosDados ee dede LogLog

-- MonitorarMonitorar oo crescimentocrescimento constantementeconstantemente

12/39

CapítuloCapítulo 33 -- BancoBanco dede dadosdados dede usuáriousuário

1.

Introdução

2.

Arquivos (files)

3.

Criando bancos de dados com comandos

4.

Transaction Log

5.

Alterando um banco de dados

6.

Alocação de espaços

7.

Opções de configuração de um banco de dados

8.

RAID (Redundant Array of Inexpensive Disks)

5.5. AlterandoAlterando umum BancoBanco dede DadosDados

ComandoComando ALTERALTER DATABASEDATABASE

-- DatabaseDatabase

-- AddAdd FileFile

-- NameName

-- FileNameFileName

-- SizeSize

-- MaxSizeMaxSize

-- UnlimitedUnlimited

-- FileGrowthFileGrowth

-- ToTo FileGroupFileGroup

NomeNome dodo DatabaseDatabase

AdicionaAdiciona umum arquivoarquivo dede DadosDados

NomeNome LógicoLógico dodo arquivoarquivo

NomeNome FísicoFísico dodo arquivoarquivo

TTamanhoamanho inicialinicial dodo arquivoarquivo

TTamanhoamanho máximomáximo dodo arquivoarquivo

IráIrá crescercrescer dede formaforma ilimitadailimitada

FormaForma dede crescimentocrescimento

NomeNome dodo filegroupfilegroup

13/39

CapítuloCapítulo 33 -- BancoBanco dede dadosdados dede usuáriousuário

1.

Introdução

2.

Arquivos (files)

3.

Criando bancos de dados com comandos

4.

Transaction Log

5.

Alterando um banco de dados

6.

Alocação de espaços

7.

Opções de configuração de um banco de dados

8.

RAID (Redundant Array of Inexpensive Disks)

5.5. AlterandoAlterando umum BancoBanco dede DadosDados

ComandoComando ALTERALTER DATABASEDATABASE

-- AddAdd LogLog FileFile

-- RemoveRemove FileFile

-- AddAdd FileGroupFileGroup

AdicionaAdiciona umum arquivoarquivo dede LogLog

RemoveRemove umum arquivoarquivo fisicofisico

AdicionaAdiciona umum filegroupfilegroup

-- RemoveRemove FileGroupFileGroup RemoveRemove umum filegroupfilegroup

-- ModifyModify FileFile

-- ReadOnlyReadOnly

-- ReadWriteReadWrite

-- DefaultDefault

ModificaModifica ((sizesize,, filename,filename, maxsizemaxsize ee FileGrowth)FileGrowth) dodo arquivoarquivo indicadoindicado

ConfiguraConfigura oo databasedatabase apenasapenas parapara leituraleitura

ConfiguraConfigura oo databasedatabase parapara escritaescrita ee leituraleitura

IndicaIndica qualqual filegroupfilegroup seráserá defaultdefault

14/39

CapítuloCapítulo 33 -- BancoBanco dede dadosdados dede usuáriousuário

1.

Introdução

2.

Arquivos (files)

3.

Criando bancos de dados com comandos

4.

Transaction Log

5.

Alterando um banco de dados

6.

Alocação de espaços

7.

Opções de configuração de um banco de dados

8.

RAID (Redundant Array of Inexpensive Disks)

5.5. AlterandoAlterando umum BancoBanco dede DadosDados

5.15.1 AdicionandoAdicionando umum arquivoarquivo (112)(112)

5.25.2 AdcionandoAdcionando umum grupogrupo dede arquivosarquivos (112)(112)

5.35.3 AdicionandoAdicionando umum arquivoarquivo emem umum FileGroupFileGroup (113)(113)

5.45.4 ConfigurandoConfigurando umum FileGroupFileGroup comocomo padrãopadrão (113)(113) -- depoisdepois voltarvoltar oo [[primaryprimary]] parapara defaultdefault

5.55.5 RemovendoRemovendo umum arquivoarquivo (114)(114)

5.65.6 RemovendoRemovendo umum arquivoarquivo dodo FileGroupFileGroup (114)(114)

5.75.7 AumentandoAumentando oo tamanhotamanho dede umum arquivoarquivo (114)(114)

5.85.8 ReduzindoReduzindo oo tamanhotamanho dede umum bancobanco dede dadosdados (final(final dada páginapágina 115)115)

NoTruncateNoTruncate ->->

->->

TrucateOnlyTrucateOnly

nãonão liberalibera parapara oo S.O.S.O. liberalibera parapara oo S.O.S.O.

15/39

CapítuloCapítulo 33 -- BancoBanco dede dadosdados dede usuáriousuário

1.

Introdução

2.

Arquivos (files)

3.

Criando bancos de dados com comandos

4.

Transaction Log

5.

Alterando um banco de dados

6.

Alocação de espaços

7.

Opções de configuração de um banco de dados

8.

RAID (Redundant Array of Inexpensive Disks)

5.5. AlterandoAlterando umum BancoBanco dede DadosDados

5.95.9 ReduzindoReduzindo oo tamanhotamanho dede umum arquivoarquivo (final(final dada páginapágina 116)116)

5.105.10 ReduzindoReduzindo automaticamenteautomaticamente oo tamanhotamanho dede umum arquarquivoivo

-- OpçãoOpção ““Auto_ShrinkAuto_Shrink””

-- OO própriopróprio SQLSQL ServerServer iráirá reduzirreduzir parapara oo tamanhotamanho queque eleele acharachar necessárionecessário ee realizarárealizará essaessa atividadeatividade nono momentomomento (horário)(horário) queque eleele acharachar melhormelhor

ALTER DATABASE

Biblioteca

SET

AUTO_SHRINK

ON

16/39

CapítuloCapítulo 33 -- BancoBanco dede dadosdados dede usuáriousuário

1.

Introdução

2.

Arquivos (files)

3.

Criando bancos de dados com comandos

4.

Transaction Log

5.

Alterando um banco de dados

6.

Alocação de espaços

7.

Opções de configuração de um banco de dados

8.

RAID (Redundant Array of Inexpensive Disks)

5.5. AlterandoAlterando umum BancoBanco dede DadosDados

5.115.11 ConsideraçõesConsiderações sobresobre reduçãoredução AA reduçãoredução sósó poderápoderá serser realizadarealizada nosnos espaçosespaços nãonão utilizados.utilizados.

5.125.12 ReduzindoReduzindo oo arquivoarquivo dede loglog dede transaçõestransações AsAs vezesvezes nãonão éé possívelpossível reduzirreduzir oo arquivoarquivo dede loglog nono exatoexato momentomomento devidodevido aoao SQLSQL ServerServer estarestar utilizandoutilizando parapara realizarrealizar algumaalguma transação.transação. ApósApós umum restartrestart nono serviçoserviço aa reduçãoredução iráirá sese efetivarefetivar

5.135.13 RemovendoRemovendo umum bancobanco dede dadosdados (119)(119)

5.145.14 AlterandoAlterando oo nomenome dede umum bancobanco dede dadosdados (120)(120)

17/39

CapítuloCapítulo 33 -- BancoBanco dede dadosdados dede usuáriousuário

1.

Introdução

2.

Arquivos (files)

3.

Criando bancos de dados com comandos

4.

Transaction Log

5.

Alterando um banco de dados

6.

Alocação de espaços

7.

Opções de configuração de um banco de dados

8.

RAID (Redundant Array of Inexpensive Disks)

6.6. AlocaçãoAlocação dede espaçosespaços

6.16.1 PáginasPáginas dede DadosDados

-- CadaCada páginapágina dede dadosdados contémcontém 81928192 BytesBytes queque éé equivalenteequivalente aa 88 KBKB

-- 81928192 BytesBytes (cada(cada página)página) ** 128128 páginaspáginas == 11 MBMB

-- CadaCada páginapágina possui:possui:

-- CabeçalhoCabeçalho -- LinhasLinhas dede DadosDados -- RowRow OffsetOffset (final(final dede cadacada tabela)tabela) -- EntradaEntrada (espaço(espaço livre)livre)

18/39

CapítuloCapítulo 33 -- BancoBanco dede dadosdados dede usuáriousuário

1.

Introdução

2.

Arquivos (files)

3.

Criando bancos de dados com comandos

4.

Transaction Log

5.

Alterando um banco de dados

6.

Alocação de espaços

7.

Opções de configuração de um banco de dados

8.

RAID (Redundant Array of Inexpensive Disks)

6.6. AlocaçãoAlocação dede espaçosespaços

6.26.2 ExtentsExtents

-- UmUm extentextent éé compostocomposto porpor 88 páginaspáginas contínuas.contínuas.

-- 81928192 BytesBytes (cada(cada página)página) ** 88 páginaspáginas == 6464 KBKB

-- 6464 KBKB (1(1 extent)extent) ** 1616 (extent(extent)) == 1MB1MB

-- DoisDois tipostipos dede Extents:Extents:

-- ExtentExtent UniformesUniformes == únicoúnico objetoobjeto

-- ExtentExtent MistasMistas == váriosvários objetosobjetos

19/39

CapítuloCapítulo 33 -- BancoBanco dede dadosdados dede usuáriousuário

1.

Introdução

2.

Arquivos (files)

3.

Criando bancos de dados com comandos

4.

Transaction Log

5.

Alterando um banco de dados

6.

Alocação de espaços

7.

Opções de configuração de um banco de dados

8.

RAID (Redundant Array of Inexpensive Disks)

6.6. AlocaçãoAlocação dede espaçosespaços

6.36.3 DimensionandoDimensionando umauma tabelatabela

-- ObterObter aa médiamédia dasdas colunascolunas dede tamanhotamanho variávelvariável parparaa calcularcalcular oo númeronúmero dede bytesbytes ocupadosocupados porpor umauma linhalinha ddaa tabela.tabela.

Exemplo:Exemplo: 9898 bytesbytes porpor registroregistro

-- DividirDividir 80608060 pelopelo tamanhotamanho (em(em bytes)bytes) dede umauma linhalinha

dada tabelatabela parapara calcularcalcular aa quantidadequantidade dede linhaslinhas emem uumama páginapágina dede dadosdados dada tabela.tabela.

Exemplo:Exemplo: 80608060 bytesbytes porpor páginapágina // 9898 bytesbytes porpor regisregistrotro == 8282 registrosregistros porpor páginapágina

-- DividirDividir aa quantidadequantidade totaltotal dede linhaslinhas dada tabelatabela pepelala quantidadequantidade dede registroregistro queque aa páginapágina suporta.suporta.

Exemplo:Exemplo: 53255325 totaltotal registrosregistros // 8282 registrosregistros porpor papaginagina == 6464 páginaspáginas

20/39

CapítuloCapítulo 33 -- BancoBanco dede dadosdados dede usuáriousuário

1.

Introdução

2.

Arquivos (files)

3.

Criando bancos de dados com comandos

4.

Transaction Log

5.

Alterando um banco de dados

6.

Alocação de espaços

7.

Opções de configuração de um banco de dados

8.

RAID (Redundant Array of Inexpensive Disks)

7.7. OpçõesOpções dede configuraçãoconfiguração dede umum bancobanco dede dadosdados

7.17.1 OpçõesOpções dodo SQLSQL

ANSI_NULL_DEFAULTANSI_NULL_DEFAULT

onon|| OFFOFF

DefineDefine sese oo padrãopadrão seráserá NullNull ouou NotNot NullNull

ANSI_NULLSANSI_NULLS onon || OFFOFF SeSe comparadocomparado comcom NULLNULL iráirá retornarretornar verdadeiroverdadeiro

ANSI_PADDINGANSI_PADDING onon || OFFOFF RetiraRetira osos espaçosespaços nono finalfinal dodo campocampo quandoquando forfor charchar nono momentomomento dada visualizaçãovisualização

ANSI_WARNINGSANSI_WARNINGS onon || OFFOFF NãoNão apareceaparece mensagensmensagens dede erros,erros, porpor exemplo,exemplo, quandoquando estouraestoura umum limitelimite dede umum campocampo

----------------------------------------------------------------------------------------------------------------------------------------

http://msdn.microsoft.com/pthttp://msdn.microsoft.com/pt--br/library/ms190356.br/library/ms190356.aspxaspx

21/39

CapítuloCapítulo 33 -- BancoBanco dede dadosdados dede usuáriousuário

1.

Introdução

2.

Arquivos (files)

3.

Criando bancos de dados com comandos

4.

Transaction Log

5.

Alterando um banco de dados

6.

Alocação de espaços

7.

Opções de configuração de um banco de dados

8.

RAID (Redundant Array of Inexpensive Disks)

7.7. OpçõesOpções dede configuraçãoconfiguração dede umum bancobanco dede dadosdados

7.17.1 OpçõesOpções dodo SQLSQL

ARITHABORTARITHABORT onon || OFFOFF MesmoMesmo apresentandoapresentando erroerro nana divisãodivisão porpor zerozero oo processoprocesso continuacontinua normalmentenormalmente

CONCAT_NULL_YIELDS_NULLCONCAT_NULL_YIELDS_NULL onon || OFFOFF PermitePermite concatenarconcatenar conteúdoconteúdo comcom valorvalor nulonulo

QUOTED_IDENTIFIERQUOTED_IDENTIFIER onon || OFFOFF NãoNão permitepermite utilizarutilizar aspasaspas duplasduplas

NUMERIC_ROUNDABORTNUMERIC_ROUNDABORT onon || OFFOFF NãoNão apresentaapresenta mensagemmensagem casocaso arredondararredondar ee perderperder precisãoprecisão

RECURSIVE_TRIGGERSRECURSIVE_TRIGGERS onon || OFFOFF NãoNão permitepermite queque umum triggertrigger acioneacione eleele mesmomesmo

22/39

CapítuloCapítulo 33 -- BancoBanco dede dadosdados dede usuáriousuário

1.

Introdução

2.

Arquivos (files)

3.

Criando bancos de dados com comandos

4.

Transaction Log

5.

Alterando um banco de dados

6.

Alocação de espaços

7.

Opções de configuração de um banco de dados

8.

RAID (Redundant Array of Inexpensive Disks)

7.7. OpçõesOpções dede configuraçãoconfiguração dede umum bancobanco dede dadosdados

7.27.2 OpçõesOpções dede automaçãoautomação

AUTO_CLOSEAUTO_CLOSE ONON ((expressexpress)|)| OFFOFF (demais)(demais) FechaFecha oo bancobanco dede dadosdados ee liberalibera osos recursosrecursos quandoquando nenhumnenhum usuáriousuário estáestá conectadoconectado

AUTO_CREATE_STATISTICSAUTO_CREATE_STATISTICS ONON || offoff AsAs estatísticasestatísticas dosdos índicesíndices serãoserão criadascriadas automaticamenteautomaticamente quandoquando houverhouver necessidadenecessidade

AUTO_UPDATE_STATISTICSAUTO_UPDATE_STATISTICS ONON || offoff AsAs estatísticasestatísticas dosdos índicesíndices serãoserão atualizadasatualizadas automaticamenteautomaticamente quandoquando houverhouver necessidadenecessidade

AUTO_SHRINKAUTO_SHRINK onon || OFFOFF NãoNão reduzreduz oo tamanhotamanho dosdos arquivosarquivos dede dadosdados ee loglog automaticamenteautomaticamente

23/39

CapítuloCapítulo 33 -- BancoBanco dede dadosdados dede usuáriousuário

1.

Introdução

2.

Arquivos (files)

3.

Criando bancos de dados com comandos

4.

Transaction Log

5.

Alterando um banco de dados

6.

Alocação de espaços

7.

Opções de configuração de um banco de dados

8.

RAID (Redundant Array of Inexpensive Disks)

7.7. OpçõesOpções dede configuraçãoconfiguração dede umum bancobanco dede dadosdados

7.37.3 OpçõesOpções dede disponibilidadedisponibilidade dodo bancobanco dede dadosdados

ONLINEONLINE OO databasedatabase estáestá abertoaberto

EMERGENCYEMERGENCY OO databasedatabase ficafica aberto,aberto, porém,porém, somentesomente parapara leituraleitura ee sósó consegueconsegue conectarconectar--sese quemquem tivertiver comcom oo privilégioprivilégio dede sysAdminsysAdmin

OFFLINEOFFLINE OO databasedatabase estáestá fechadofechado

READ_ONLYREAD_ONLY OsOs dadosdados podempodem serser apenasapenas lidoslidos ((selectselect).). NãoNão podempodem serser modificadosmodificados ((insertinsert,,updateupdate,delete),delete)

READ_WRITEREAD_WRITE OsOs dadosdados poderãopoderão serser lidoslidos ee modificadosmodificados

24/39

CapítuloCapítulo 33 -- BancoBanco dede dadosdados dede usuáriousuário

1.

Introdução

2.

Arquivos (files)

3.

Criando bancos de dados com comandos

4.

Transaction Log

5.

Alterando um banco de dados

6.

Alocação de espaços

7.

Opções de configuração de um banco de dados

8.

RAID (Redundant Array of Inexpensive Disks)

7.7. OpçõesOpções dede configuraçãoconfiguração dede umum bancobanco dede dadosdados

7.37.3 OpçõesOpções dede disponibilidadedisponibilidade dodo bancobanco dede dadosdados

SINGLE_USERSINGLE_USER ApenasApenas umum únicoúnico usuáriousuário iráirá conseguirconseguir sese conectarconectar

RESTRICTED_USERRESTRICTED_USER IráIrá conectarconectar--sese somentesomente osos usuáriosusuários queque tivertiver oo privilégioprivilégio dede dbCreatordbCreator,, sysAdminsysAdmin ee db_ownerdb_owner

MULTI_USERMULTI_USER TodosTodos osos usuáriosusuários conseguemconseguem conectarconectar--sese

25/39

CapítuloCapítulo 33 -- BancoBanco dede dadosdados dede usuáriousuário

1.

Introdução

2.

Arquivos (files)

3.

Criando bancos de dados com comandos

4.

Transaction Log

5.

Alterando um banco de dados

6.

Alocação de espaços

7.

Opções de configuração de um banco de dados

8.

RAID (Redundant Array of Inexpensive Disks)

7.7. OpçõesOpções dede configuraçãoconfiguração dede umum bancobanco dede dadosdados

7.47.4 OpçãoOpção dede parametrizaçãoparametrização

SIMPLESIMPLE OO própriopróprio SQLSQL ServerServer escolheescolhe qualqual consultaconsulta eleele iráirá parametrizarparametrizar parapara facilitarfacilitar aa pesquisa.pesquisa.

FORCEDFORCED OO SQLSQL ServerServer iráirá parametrizarparametrizar todastodas asas consultas.consultas.

26/39

CapítuloCapítulo 33 -- BancoBanco dede dadosdados dede usuáriousuário

1.

Introdução

2.

Arquivos (files)

3.

Criando bancos de dados com comandos

4.

Transaction Log

5.

Alterando um banco de dados

6.

Alocação de espaços

7.

Opções de configuração de um banco de dados

8.

RAID (Redundant Array of Inexpensive Disks)

7.7. OpçõesOpções dede configuraçãoconfiguração dede umum bancobanco dede dadosdados

7.57.5 OpçõesOpções dede recuperaçãorecuperação

RECOVERYRECOVERY

-- FULLFULL (padrão)(padrão) ArmazenaArmazena nono arquivoarquivo dede TransactionTransaction LogLog todastodas asas transações.transações.

-- BULK_LOGGEDBULK_LOGGED RegistraRegistra nono arquivoarquivo dede TransactonTransacton LogLog oo mínimomínimo possívelpossível dasdas transaçõestransações ((createcreate indexindex,, bcp)bcp)

-- SIMPLESIMPLE NãoNão registraregistra asas transaçõestransações nono arquivoarquivo dede TransactionTransaction LogLog

27/39

CapítuloCapítulo 33 -- BancoBanco dede dadosdados dede usuáriousuário

1.

Introdução

2.

Arquivos (files)

3.

Criando bancos de dados com comandos

4.

Transaction Log

5.

Alterando um banco de dados

6.

Alocação de espaços

7.

Opções de configuração de um banco de dados

8.

RAID (Redundant Array of Inexpensive Disks)

7.7. OpçõesOpções dede configuraçãoconfiguração dede umum bancobanco dede dadosdados

7.57.5 OpçõesOpções dede recuperaçãorecuperação

PAGE_VERIFYPAGE_VERIFY FormaForma dede verificarverificar aa integridadeintegridade dodo conteúdoconteúdo dasdas páginaspáginas dede dadosdados

FormasFormas dede cálculoscálculos diferentes:diferentes:

-- CHECKSUMCHECKSUM (padrão)(padrão) -- TORN_PAGE_DETECTIONTORN_PAGE_DETECTION -- NONENONE

28/39

CapítuloCapítulo 33 -- BancoBanco dede dadosdados dede usuáriousuário

1.

Introdução

2.

Arquivos (files)

3.

Criando bancos de dados com comandos

4.

Transaction Log

5.

Alterando um banco de dados

6.

Alocação de espaços

7.

Opções de configuração de um banco de dados

8.

RAID (Redundant Array of Inexpensive Disks)

7.7. OpçõesOpções dede configuraçãoconfiguração dede umum bancobanco dede dadosdados

7.67.6 OpçõesOpções dede comportamentocomportamento dodo CursorCursor

CURSOR_CLOSE_ON_COMMITCURSOR_CLOSE_ON_COMMIT onon || OFFOFF OsOs cursorescursores continuamcontinuam abertosabertos mesmomesmo quandoquando aa transaçãotransação chegouchegou aoao fim.fim. ÉÉ necessárionecessário fecharfechar oo cursorcursor

CURSOR_DEFAULTCURSOR_DEFAULT

-- LOCALLOCAL OO cursorcursor existiráexistirá somentesomente dede formaforma local,local, ouou seja,seja, dentrodentro dada procedure,procedure, triggertrigger,, blocobloco tt-- sqlsql

-- GLOBALGLOBAL (padrão)(padrão) OO cursorcursor existiráexistirá dede formaforma global,global, ouou seja,seja, qualquerqualquer procedure,procedure, triggertrigger ouou blocobloco t-t-sqlsql queque forfor executadoexecutado poderápoderá utilizarutilizar esseesse mesmomesmo cursorcursor

29/39

CapítuloCapítulo 33 -- BancoBanco dede dadosdados dede usuáriousuário

1.

Introdução

2.

Arquivos (files)

3.

Criando bancos de dados com comandos

4.

Transaction Log

5.

Alterando um banco de dados

6.

Alocação de espaços

7.

Opções de configuração de um banco de dados

8.

RAID (Redundant Array of Inexpensive Disks)

7.7. OpçõesOpções dede configuraçãoconfiguração dede umum bancobanco dede dadosdados

7.77.7 OpçõesOpções dede nívelnível dede isolamentoisolamento dasdas transaçõestransações

ALLOW_SNAPSHOT_ISOLATIONALLOW_SNAPSHOT_ISOLATION onon || OFFOFF OO própriopróprio SQLSQL ServerServer controlacontrola oo nívelnível dede isolamentoisolamento dasdas transações.transações.

READ_COMMITTED_SNAPSHOTREAD_COMMITTED_SNAPSHOT onon || OFFOFF OO própriopróprio SQLSQL ServerServer controlacontrola oo nívelnível dede locklock dasdas transações.transações.

30/39

CapítuloCapítulo 33 -- BancoBanco dede dadosdados dede usuáriousuário

1.

Introdução

2.

Arquivos (files)

3.

Criando bancos de dados com comandos

4.

Transaction Log

5.

Alterando um banco de dados

6.

Alocação de espaços

7.

Opções de configuração de um banco de dados

8.

RAID (Redundant Array of Inexpensive Disks)

7.7. OpçõesOpções dede configuraçãoconfiguração dede umum bancobanco dede dadosdados

7.87.8 OpçõesOpções dede monitoramentomonitoramento dosdos eventoseventos

ENABLE_BROKERENABLE_BROKER HabilitaHabilita oo ServiceService BrokerBroker

DISABLE_BROKERDISABLE_BROKER (padrão)(padrão) DesabilitaDesabilita oo ServiceService BrokerBroker

NEW_BROKERNEW_BROKER CriaCria umum novonovo BrokerBroker IdentifierIdentifier

ERROR_BROKER_CONVERSATIONSERROR_BROKER_CONVERSATIONS CasoCaso ocorrerocorrer erroserros mensagensmensagens sãosão emitidasemitidas

31/39

CapítuloCapítulo 33 -- BancoBanco dede dadosdados dede usuáriousuário

1.

Introdução

2.

Arquivos (files)

3.

Criando bancos de dados com comandos

4.

Transaction Log

5.

Alterando um banco de dados

6.

Alocação de espaços

7.

Opções de configuração de um banco de dados

8.

RAID (Redundant Array of Inexpensive Disks)

7.7. OpçõesOpções dede configuraçãoconfiguração dede umum bancobanco dede dadosdados

7.97.9 OpçõesOpções dede controlecontrole dede acessoacesso externoexterno

DB_CHAININGDB_CHAINING onon || OFFOFF NãoNão permitepermite queque scriptsscripts acessemacessem objetosobjetos dede outrooutro bancobanco dede dadosdados casocaso nãonão tenhatenha privilégioprivilégio direto.direto.

TRUSTWORTHYTRUSTWORTHY onon || OFFOFF InformaInforma queque oo bancobanco dede dadosdados podepode nãonão serser confiávelconfiável apósapós umum Attach/Attach/DetachDetach

7.107.10 OpçãoOpção parapara otimizarotimizar aa correlaçãocorrelação dosdos dadosdados onon || OFFOFF QuandoQuando ONON otimizaotimiza oo desempenhodesempenho criandocriando estatísticasestatísticas quandoquando éé realizadarealizada comparaçãocomparação entreentre camposcampos datetimedatetime dentrodentro dede umum JoinJoin casocaso oo campocampo forfor PKPK ouou FK.FK.

7.117.11 ResumoResumo dasdas opçõesopções

PáginaPágina 142142

32/39

CapítuloCapítulo 33 -- BancoBanco dede dadosdados dede usuáriousuário

1.

Introdução

2.

Arquivos (files)

3.

Criando bancos de dados com comandos

4.

Transaction Log

5.

Alterando um banco de dados

6.

Alocação de espaços

7.

Opções de configuração de um banco de dados

8.

RAID (Redundant Array of Inexpensive Disks)

8.8. RAIDRAID ((RedundantRedundant ArrayArray ofof InexpensiveInexpensive Disks)Disks)

8.18.1 TiposTipos dede RAIDRAID

BaseadosBaseados emem HardwareHardware -- MuitoMuito utilizadoutilizado

-- CompraCompra dede discosdiscos

BaseadosBaseados emem SoftwareSoftware

-- NãoNão éé muitomuito utilizadoutilizado porpor algunsalguns fatores:fatores:

-- DependeDepende dede umum SistemaSistema OperacionalOperacional ee dada capacidadecapacidade dede processamentoprocessamento dodo computadorcomputador parapara atingiratingir umum desempenhodesempenho satisfatóriosatisfatório

-- ÉÉ maismais lentolento

-- ExigeExige maioresmaiores esforçosesforços dede configuraçãoconfiguração

33/39

CapítuloCapítulo 33 -- BancoBanco dede dadosdados dede usuáriousuário

1.

Introdução

2.

Arquivos (files)

3.

Criando bancos de dados com comandos

4.

Transaction Log

5.

Alterando um banco de dados

6.

Alocação de espaços

7.

Opções de configuração de um banco de dados

8.

RAID (Redundant Array of Inexpensive Disks)

8.8. RAIDRAID ((RedundantRedundant ArrayArray ofof InexpensiveInexpensive Disks)Disks)

8.28.2 NíveisNíveis dede RAIDRAID

RaidRaid 00 (striping(striping semsem tolerânciatolerância àà falha)falha)

- Dois ou mais discos rígidos são agrupados.

- Os dados são gravados distribuindo-se a carga entre os discos

- É rápido, pois a leitura e a gravação são distribuídas.
- ,

serão perdidos.

Não é muito se uro já

g

,

ue se um disco falhar todos os dados

q

são distribuídas. - , serão perdidos. Não é muito se uro já g , ue se
são distribuídas. - , serão perdidos. Não é muito se uro já g , ue se

34/39

CapítuloCapítulo 33 -- BancoBanco dede dadosdados dede usuáriousuário

1.

Introdução

2.

Arquivos (files)

3.

Criando bancos de dados com comandos

4.

Transaction Log

5.

Alterando um banco de dados

6.

Alocação de espaços

7.

Opções de configuração de um banco de dados

8.

RAID (Redundant Array of Inexpensive Disks)

8.8. RAIDRAID ((RedundantRedundant ArrayArray ofof InexpensiveInexpensive Disks)Disks)

8.28.2 NíveisNíveis dede RAIDRAID

RaidRaid 11 (mirroring(mirroring -- espelhamento)espelhamento)

- Um dos discos serve de espelho para o outro.

- Tudo que é gravado em um dos discos é gravado no outro

- Isso faz com que a performance de gravação seja prejudicada

É

- uma forma bem segura porém cara, visto que é preciso duplicacar os HD´s

de gravação seja prejudicada É - uma forma bem segura porém cara, visto que é preciso
de gravação seja prejudicada É - uma forma bem segura porém cara, visto que é preciso

35/39

CapítuloCapítulo 33 -- BancoBanco dede dadosdados dede usuáriousuário

1.

Introdução

2.

Arquivos (files)

3.

Criando bancos de dados com comandos

4.

Transaction Log

5.

Alterando um banco de dados

6.

Alocação de espaços

7.

Opções de configuração de um banco de dados

8.

RAID (Redundant Array of Inexpensive Disks)

8.8. RAIDRAID ((RedundantRedundant ArrayArray ofof InexpensiveInexpensive Disks)Disks)

8.28.2 NíveisNíveis dede RAIDRAID

RaidRaid 55 (paridade(paridade distribuída)distribuída)

- Para esse tipo de RAID, há necessidade de no mínimo 3 discos.

- As informações de paridade são gravadas em cada disco.

- Boa performance em Leitura, Escrita e apresenta segurança.

- Se um disco falhar, as informações nele contidas podem ser reconstruídas através da paridade existente em cada disco.

disco falhar, as informações nele contidas podem ser reconstruídas através da paridade existente em cada disco.

36/39

CapítuloCapítulo 33 -- BancoBanco dede dadosdados dede usuáriousuário

1.

Introdução

2.

Arquivos (files)

3.

Criando bancos de dados com comandos

4.

Transaction Log

5.

Alterando um banco de dados

6.

Alocação de espaços

7.

Opções de configuração de um banco de dados

8.

RAID (Redundant Array of Inexpensive Disks)

8.8. RAIDRAID ((RedundantRedundant ArrayArray ofof InexpensiveInexpensive Disks)Disks)

8.28.2 NíveisNíveis dede RAIDRAID

RaidRaid 1010 (mirroring(mirroring ee stripingstriping comcom altaalta performance)performance)

- Para esse tipo de RAID, há necessidade de no mínimo 4 discos.

- Os dois primeiros trabalharão em modo Striping (aumentando o desempenho)

- Os outros dois armazenarão uma có ia exata dos dois

p

primeiros (mantendo uma tolerância à falhas)

- Este modo é uma junção do RAID 0 com o RAID 1

- É muito utilizado em servidores de Banco de Dados que necessitem alta performance e tolerância à falhas.

RAID 1 - É muito utilizado em servidores de Banco de Dados que necessitem alta performance

37/39

CapítuloCapítulo 33 -- BancoBanco dede dadosdados dede usuáriousuário

1.

Introdução

2.

Arquivos (files)

3.

Criando bancos de dados com comandos

4.

Transaction Log

5.

Alterando um banco de dados

6.

Alocação de espaços

7.

Opções de configuração de um banco de dados

8.

RAID (Redundant Array of Inexpensive Disks)

8.8. RAIDRAID ((RedundantRedundant ArrayArray ofof InexpensiveInexpensive Disks)Disks)

8.38.3 ConsideraçõesConsiderações sobresobre aa formaforma dede armazenamentoarmazenamento ddee dadosdados

-- UtilizarUtilizar oo RAIDRAID ouou criarcriar osos logslogs dede transaçõestransações emem discosdiscos rígidosrígidos separadosseparados

-- ParaPara cadacada discodisco físicofísico existente,existente, criarcriar umum arquivarquivoo

-- OO databasedatabase tempdbtempdb devedeve serser colocadocolocado emem umum sistemasistema I/OI/O diferentediferente dosdos usersusers databasesdatabases

-- VolumesVolumes compactadoscompactados nãonão devemdevem serser utilizadosutilizados

-- UtilizarUtilizar discosdiscos formatadosformatados comcom NTFSNTFS

-- UtilizarUtilizar maismais dede umum FileGroupFileGroup parapara agruparagrupar osos arquivosarquivos

-- AA tolerânciatolerância aa falhasfalhas nãonão éé fornecidafornecida porpor FileGroupsFileGroups

38/39

CapítuloCapítulo 33 -- BancoBanco dede dadosdados dede usuáriousuário

1.

Introdução

2.

Arquivos (files)

3.

Criando bancos de dados com comandos

4.

Transaction Log

5.

Alterando um banco de dados

6.

Alocação de espaços

7.

Opções de configuração de um banco de dados

8.

RAID (Redundant Array of Inexpensive Disks)

8.8. RAIDRAID ((RedundantRedundant ArrayArray ofof InexpensiveInexpensive Disks)Disks)

8.38.3 ConsideraçõesConsiderações sobresobre aa formaforma dede armazenamentoarmazenamento ddee dadosdados

-- AA tecnologiatecnologia RAIDRAID podepode serser utilizadautilizada comcom FileGroupsFileGroups

-- AsAs tabelastabelas ee seusseus índicesíndices nonclusterednonclustered devemdevem serser armazenadosarmazenados emem discosdiscos diferentesdiferentes

-- AA utilizaçãoutilização dada tecnologiatecnologia RAIDRAID podepode serser maismais vanvantatajosajosa dodo queque oo empregoemprego dede FileGroups.FileGroups. OO gerenciamentogerenciamento dede FileGroupsFileGroups implicaimplica emem umauma cargacarga administrativaadministrativa extraextra,, oo queque nãonão aconteceacontece comcom oo usouso dede RAIDRAID

-- SeSe oo computadorcomputador possuirpossuir diversosdiversos processadoresprocessadores ee discos,discos, oo SQLSQL ServerServer realizarárealizará oo scanscan paraleloparalelo dosdos dadosdados

-- CasoCaso oo FileGroupFileGroup dede umauma tabelatabela apresenteapresente váriosvários arquivos,arquivos, oo SQLSQL ServerServer realizarárealizará váriosvários scansscans paralelosparalelos parapara essaessa tabelatabela

39/39

EXERCÍCIOSEXERCÍCIOS

PáginasPáginas 539539 atéaté 553553

Capítulo 4

“Índices”“Índices”

CapítuloCapítulo 44 -- ÍndicesÍndices

O que é?

- Considerado um objeto

- Usado e mantido automaticamente pelo SGBD

- Pode reduzir a E/S do disco usando um método rápido de acesso a caminhos para localizar os dados rapidamente

- Utilizado para acelerar a recuperação de linhas usando um ponteiro

- Necessário realizar atualização periódica

- Em alguns SGBD, os índices são baseados em estatísticas

1/17

CapítuloCapítulo 44 -- ÍndicesÍndices

Quando não criar?

- Tabela for pequena

- Colunas não forem utilizadas com freqüência em uma cláusula where

- Alta Densidade X Baixa Seletividade

- Tabela atualizada com freqüência

2/17

CapítuloCapítulo 44 -- ÍndicesÍndices

Quando criar?

- Um coluna possuir uma ampla faixa de valores;

- Uma coluna contiver um grande número de valores nulos;

- Colunas forem utilizadas com freqüência na cláusula where ou em alguma condição de junção;

- Tabela for grande com Alta Seletividade

3/17

CapítuloCapítulo 44 -- ÍndicesÍndices

Simples

# Código Root Page 1 4600 2 9000 # Código # Código Index 3 1230
#
Código
Root
Page
1
4600
2
9000
#
Código
#
Código
Index
3
1230
5
5230
Page
3
1780
5
6490
4
3920
6
7520
4
4600
6
9000
1
2
Código
Nome
Status
Código
Nome
Status
Código
Nome
Status
Código
Nome
Status
Data
1230
Maria
Ativo
3920
Aline
Ativo
5230
Claudia
Ativo
Page
7520
Pedro
Ativo
Ativo
Ativo
Inativo
Ativo
1780
André
4600
Felipe
6490
Marcos
9000
Rangel
3
4
5
6
select * from cliente select * from cliente where codigo = 6490 select nome, status
select * from cliente
select * from cliente where codigo = 6490
select nome, status from cliente where codigo >= 6000

4/17

CapítuloCapítulo 44 -- ÍndicesÍndices

Composto

# Código Nome Root Page 1 Felipe 4600 2 Rangel 9000 # Código Nome #
# Código
Nome
Root
Page
1 Felipe
4600
2 Rangel
9000
#
Código
Nome
#
Código
Nome
Index
3
1230
Maria
5
5230
Cláudia
Page
3
1780
Aline
5
6490
André
4
1780
Marcos
6
7520
Pedro
4
4600
Felipe
6
9000
Rangel
1
2
Código
Nome
Status
Código
Nome
Status
Código
Nome
Status
Código
Nome
Status
Data
1230
Maria
Ativo
1780
Marcos
Ativo
5230
Cláudia
Ativo
Page
7520
Pedro
Ativo
Inativo
1780
Aline
Ativo
Felipe
Ativo
Ativo
4600
6490
Marcos
9000
Rangel
3
4
5
6
select * from cliente where codigo = 4600 select nome from cliente where codigo =
select * from cliente where codigo = 4600
select nome from cliente where codigo = 7520
select * from cliente where codigo = 1780 and nome = ‘Marcos’

5/17

CapítuloCapítulo 44 -- ÍndicesÍndices

-- ClusteredClustered -- OsOs dadosdados sãosão organizadoorganizado fisicamentefisicamente

CREATECREATE CLUSTEREDCLUSTERED INDEXINDEX nome_do_indicenome_do_indice ONON nome_da_tabelanome_da_tabela (nome_da_coluna(nome_da_coluna))

-- NonClusteredNonClustered -- ÉÉ criadocriado umum novonovo objetoobjeto ondeonde asas informaçõesinformações sãosão organizadasorganizadas logicamentelogicamente ee atravésatravés dede ponteirosponteiros acesacessamsam osos dadosdados físicos.físicos.

CREATECREATE NONCLUSTEREDNONCLUSTERED INDEXINDEX nome_do_indicenome_do_indice ONON nome_da_tabelanome_da_tabela (nome_da_coluna(nome_da_coluna))

-- UniqueUnique -- PodePode serser ClusteredClustered ouou NonClusteredNonClustered -- NãoNão podepode terter dadosdados duplicadosduplicados

6/17

CapítuloCapítulo 44 -- ÍndicesÍndices

-- CompostoComposto -- SãoSão índicesíndices compostocomposto porpor maismais dede umauma coluna.coluna. -- Exemplo:Exemplo: Nome,Nome, Cidade,Cidade, nessenesse casocaso iráirá ordenarordenar poporr nomenome quandoquando osos nomesnomes foremforem iguaisiguais iráirá ordenarordenar pelapela segundasegunda coluna.coluna. -- ÉÉ possívelpossível fazerfazer índiceíndice compostocomposto comcom atéaté 1616 coluncolunasas

-- PilhasPilhas

 

-- SãoSão tabelastabelas queque nãonão possuempossuem índiceíndice clustered.clustered.

-- IAMIAM

 

-- IndexIndex AllocationAllocation MapMap -- SãoSão páginaspáginas responsáveisresponsáveis pelopelo mapeamentomapeamento dasdas demademaisis páginaspáginas ((extentsextents)) dede cadacada objetoobjeto

-- PFSPFS

-- PagePage FreeFree SpaceSpace -- SãoSão páginaspáginas responsáveisresponsáveis porpor dizerdizer quaisquais sãosão osos extentsextents queque contémcontém espaçoespaço disponíveldisponível

7/17

CapítuloCapítulo 44 -- ÍndicesÍndices

createcreate tabletable teste_umteste_um

(( cod_testecod_teste nome_testenome_teste

intint char(20)char(20) notnot null);null);

notnot null,null,

insertinsert teste_umteste_um valuesvalues (1,(1, ‘Calor’)‘Calor’) insertinsert teste_umteste_um valuesvalues (2,(2, ‘Vapor’)‘Vapor’) insertinsert teste_umteste_um valuesvalues (3,(3, ‘Temperatura’)‘Temperatura’) insertinsert teste_umteste_um valuesvalues (3,(3, ‘Pressão’)‘Pressão’)

createcreate uniqueunique clusteredclustered indexindex i_TesteUmi_TesteUm onon teste_umteste_um (cod_teste(cod_teste)) withwith ignore_dup_keyignore_dup_key

selectselect ** fromfrom teste_umteste_um

createcreate tabletable teste_doisteste_dois

(( cod_testecod_teste nome_testenome_teste

intint char(20)char(20) notnot null);null);

notnot null,null,

createcreate uniqueunique clusteredclustered indexindex i_TesteDoisi_TesteDois onon teste_doisteste_dois (cod_teste(cod_teste)) withwith ignore_dup_keyignore_dup_key

insertinsert teste_doisteste_dois selectselect ** fromfrom teste_umteste_um

selectselect ** fromfrom teste_doisteste_dois

8/17

CapítuloCapítulo 44 -- ÍndicesÍndices

-- CriandoCriando índicesíndices nono modomodo gráficográfico

PáginasPáginas 190190 atéaté 192192

-- QuaisQuais sãosão osos índicesíndices queque umauma determinadadeterminada tabelatabela cconontémtém ??

executeexecute

sp_helpIndexsp_helpIndex nome_tabelanome_tabela

-- DesfragmentandoDesfragmentando umum índiceíndice

DBCCDBCC IndexDefragIndexDefrag (‘(‘nome_banconome_banco’’,, ‘‘nome_tabelanome_tabela’’,, ‘‘nome_indexnome_index’)’)

-- ReconstruindoReconstruindo umum índiceíndice

createcreate indexindex i_TesteUmi_TesteUm onon teste_umteste_um (cod_teste(cod_teste)) withwith drop_existingdrop_existing

9/17

CapítuloCapítulo 44 -- ÍndicesÍndices

-- CaracterísticasCaracterísticas dasdas páginaspáginas dada tabelatabela

DBCCDBCC ShowContigShowContig (‘(‘nome_tabelanome_tabela’)’)

-- OsOs índicesíndices sãosão baseadosbaseados emem estatísticasestatísticas

-- IdentificandoIdentificando asas estatísticasestatísticas

DBCCDBCC Show_StatisticsShow_Statistics (nome_tabela(nome_tabela,, nome_index)nome_index)

-- AtualizandoAtualizando asas estatísticasestatísticas

updateupdate statisticsstatistics nome_tabelanome_tabela

-- CriandoCriando asas estatísticasestatísticas

createcreate statisticsstatistics nome_indexnome_index onon nome_tabelanome_tabela (nome_coluna(nome_coluna))

10/17

CapítuloCapítulo 44 -- ÍndicesÍndices

Montando o Cenário

1) Criar a tabela Funcionario

CREATE TABLE Funcionario

(

Cod_Func

int

not null

Identity,

Nome_Func

varchar(100)

not null,

Data_CadFunc

datetime

not null ,

SexoFunc

char(1)

not null,