Treinamento Banco de Dados - ToTVS

September 10, 2018 | Author: hpegoraro262 | Category: Sql, Databases, Data, Information Science, Digital Technology
Share Embed Donate


Short Description

Download Treinamento Banco de Dados - ToTVS...

Description

Treinamentos TOTVS 2011

Treinamento Banco de dados TOTVS 2011

SUMARIO

Sumário TREINAMENTO BANCO DE DADOS.................................................................... 1 INTRODUÇÃO ....................................................................................................... 7 DESCRIÇÃO DO FUNCIONAMENTO DO BANCO DE DADOS ........................... 8 FUNÇÕES BÁSICAS DE UM SGBD: .................................................................... 8 ARQUITETURA SUPORTADAS ............................................................................ 9 INSTALAÇÃO DO SQL SERVER 2008 ............................................................... 15 PREPARANDO A INSTALAÇÃO - MS SQL SERVER 2008 .......................................... 15 INICIANDO A INSTALAÇÃO – SQL SERVER 2008 ..................................................... 16 1.2 – CENTROS DE INSTALAÇÃO DO SQL SERVER ................................................. 17 1.3 – ESPECIFICAÇÕES DA EDIÇÃO SQL SERVER 2008.......................................... 18 1.4 – LICENCIAMENTO DO PRODUTO ..................................................................... 19 1.5 INSTALAÇÃO DOS ARQUIVOS DE SUPORTE DE INSTALAÇÃO. ............................... 20 Clique no botão Install. .......................................................................... 20 1.6 – CHECANDO CONFIGURAÇÃO DO SISTEMA ...................................................... 21 1.7 – SELECIONANDO COMPONENTES PARA A INSTALAÇÃO ..................................... 22 1.8 – NOME DA INSTÂNCIA ................................................................................... 23 1.9- VERIFICAÇÃO DO ESPAÇO EM DISCO .............................................................. 24 1.10 CONFIGURAÇÃO DO SERVER ........................................................................ 25 1.11 CONFIGURAÇÃO DE COLLATION .................................................................... 27 2.1 - CONFIGURAÇÃO ACCOUNT PROVISIONIG:......................................... 28 2.2 - NA JANELA ERROR AND USAGE REPORTING.................................................... 30 2.3 - NA OPÇÃO DE INSTALLATION RULES:............................................................. 31 2.4- NA OPÇÃO READY TO INSTALL ...................................................................... 32 2.5 - NO FINAL DA INSTALAÇÃO CLIQUE EM CLOSE: ................................................ 33 VERIFICAÇÃO DO COLLATION DAS BASES SQL SERVER ............................ 34 SCRIPTS PARA CRIAÇÃO DE USUÁRIOS NAS VERSÕES 2000,2005 E 2008 DO SQL SERVER. .................................................................................................... 37 SQL SERVER 2000 ............................................................................................ 37 SQL SERVER 2005 ............................................................................................ 38 SQL SERVER 2008 ............................................................................................ 39 CONFIGURAÇÕES DO SERVIDOR ................................................................... 40 PARAMETRIZANDO O BANCO CORPORE NO SERVIDOR SQL SERVER ..... 41 LIMITES DO SQL SERVER 2005 ........................................................................ 44 CONFIGURAÇÃO DAS MÁQUINAS CLIENTES SQL SERVER: ........................ 46 DEMONSTRANDO ALGUMAS FUNÇÕES BÁSICAS DE UM SGDB (SQL SERVER): ................................................................................................................. 47 FUNÇÃO BACKUP PARA BASE DE DADOS NO SQL SERVER: .................... 48 TOTVS-2011 – Let’s Share

2

DEMONSTRANDO COMO FAZER UM BACKUP NO SQL SERVER 2005: ..... 49 FUNÇÃO RESTAURAÇÃO DE UM BACKUP DE BASE DE DADOS NO SQL SERVER: ....... 55 DEMONSTRANDO COMO RESTAURAR UM BACKUP NO SQL SERVER 2005: ...................................................................................................................... 55 FUNÇÃO DETACH DE UMA BASE DE DADOS NO SQL SERVER: ................ 61 FUNÇÃO ATTACH DE UM BASE DE DADOS NO SQL SERVER: ................... 63 PROCEDIMENTOS PARA EXECUTAR O PROFILER DO SQL SERVER 2005. 66 MANUTENÇÃO NA BASE DE DADOS DA RM: .................................................. 71 DICAS DE PERFORMANCE SQL SERVER ....................................................... 74 1)CONFIGURAR A MEMÓRIA UTILIZADA PELO SQL SERVER................................... 74 2) UTILIZAÇÃO DE PROCESSADORES .................................................................... 75 3) ALOCAÇÃO DE ESPAÇO EM DISCO .................................................................... 75 4) DISTRIBUIÇÃO DE ARQUIVOS DO BANCO DE DADOS NO DISCO ............................ 76 5) SOLUÇÕES BASEADAS EM HARDWARE .............................................................. 76 6) RODAR DIARIAMENTE ATUALIZAÇÃO DE ESTATÍSTICAS ........................................ 77 RECRIAR TODOS OS ÍNDICES DA BASE DE DADOS SEMANALMENTE. ......................... 77 RODAR SEMANALMENTE O DBCC CHECKDB ...................................................... 77 DESMARQUE AS SEGUINTES OPÇÕES NO BANCO DE DADOS:................................... 78 DICAS PARA QUALQUER BANCO DE DADOS ................................................. 78 1) TRABALHAR COM SERVIDOR DEDICADO PARA O BD ............................................ 78 2) DESABILITAR ANTI VIRUS ................................................................................. 78 3)VERIFICAR SE O DISCO ESTÁ FRAGMENTADO. ..................................................... 78 INSTALAÇÃO DO ORACLE 11G SERVER ......................................................... 79 1.1 - INICIANDO A INSTALAÇÃO ............................................................................. 79 Observações: ................................................................................................ 80 VERIFICANDO AS CONFIGURAÇÕES DO MICRO: ....................................................... 81 1.2 - W ELCOME .................................................................................................. 82 1.3 - TIPOS DE INSTALAÇÃO E LINGUAGEM............................................................. 83 1.4 - DEFININDO A LOCALIZAÇÃO DOS ARQUIVOS ................................................... 84 1.5 – VERIFICAÇÃO DE PRÉ-REQUISITOS ............................................................... 86 1.6 – OPÇÃO DE CONFIGURAÇÃO DO BANCO ........................................................ 87 1.7 – CONFIGURAÇÃO DO BANCO ......................................................................... 88 1.8 – OPÇÕES DE CONFIGURAÇÃO DO BANCO DE DADOS ...................................... 89 1.9– DETALHES DE CONFIGURAÇÃO DO BANCO DE DADOS .................................... 90 1.10 – OPÇÃO DE GERENCIAMENTO DE BANCO DE DADOS ..................................... 92 1.11 – OPÇÕES DE ARMAZENAMENTO DE ARQUIVOS DO BANCO ............................. 93 1.12– OPÇÕES DE BACKUP E RECUPERAÇÃO ....................................................... 95 1.13 – SENHAS DO BANCO DE DADOS .................................................................. 96 1.14– GERENCIAMENTO DE CONFIGURAÇÃO DE REGISTROS ................................... 97 1.15 – LISTA DE PRODUTOS A SEREM INSTALADOS ................................................ 98 1.16- AGUARDANDO A INSTALAÇÃO ...................................................................... 99 1.17 - CONFIGURANDO AS FERRAMENTAS ........................................................... 100 1.18- IDENTIFICAÇÃO DA INSTÂNCIA.................................................................... 101 1.19 – FIM DA INSTALAÇÃO ................................................................................ 102 CRIANDO UMA INSTÂNCIA NO ORACLE 11G................................................ 103 TOTVS-2011 – Let’s Share

3

0 – BEM-VINDO ................................................................................................. 103 1 – OPERAÇÕES ............................................................................................... 103 2 – MODELOS DE BANCO DE DADOS ................................................................... 103 3 – IDENTIFICAÇÃO DO BANCO DE DADOS ........................................................... 103 4 – OPÇÕES DE GERENCIAMENTO ...................................................................... 103 5 – CREDENCIAIS DO BANCO DE DADOS ............................................................. 103 6– OPÇÕES DE ARMAZENAMENTO ...................................................................... 104 7 – LOCALIZAÇÃO DOS ARQUIVOS DE BANCO DE DADOS ...................................... 104 8 – CONFIGURAÇÃO DE RECUPERAÇÃO .............................................................. 104 9 – CONTEÚDO DO BANCO DE DADOS................................................................. 104 10 – PARÂMETROS DE INICIALIZAÇÃO ................................................................. 104 11 – DEFINIÇÕES DE SEGURANÇA ...................................................................... 104 12 – TAREFAS DE MANUTENÇÃO AUTOMÁTICA .................................................... 105 13 - ARMAZENAMENTO DE BANCO DE DADOS ...................................................... 105 14 – OPÇÕES DE CRIAÇÃO ................................................................................ 105 NETCA ............................................................................................................... 106 CRIANDO ALIAS PARA A BASE....................................................................... 109 1.4 - ATIVANDO O UTILITÁRIO SQL PLUS ............................................................ 114 1.5 - EXECUTANDO O SCRIPT PARA GERAÇÃO DOS TABLESPACES ........................ 116 1.5 – EXCLUINDO O SCHEMA RM (OPCIONAL) .................................................. 117 1.6 - EXECUTANDO O SCRIPT PARA CRIAÇÃO DE USUÁRIOS ................................. 118 CRIANDO ARQUIVO DE PARÂMETROS PARA IMPORTAÇÃO DE DADOS DA BASE EXEMPLO

............................................................................................................................. 119 IMPORTAR A BASE ............................................................................................. 119 COMANDOS ÚTEIS ORACLE........................................................................... 123 SEGURANÇA NO CORPORE RM .................................................................... 126 BDE ADMINISTRATOR: .................................................................................... 127 1 - CONFIGURANDO O BDE PARA ACESSAR O SQL SERVER: ................................ 128 CONFIGURANDO O BDE PARA ACESSAR O ORACLE ............................... 130 PARAMETRIZAÇÃO DO BDE ........................................................................ 131 CONVERSÃO DA BASE DE DADOS VERSÃO 11.20 ...................................... 133 PROCEDIMENTOS DE ANÁLISE E MANUTENÇÃO DA BASE DE DADOS. .. 140 SQL SERVER .................................................................................................... 140 PROCEDIMENTOS PARA EXECUTAR O PROFILER DO SQL SERVER 2005. ............................................................................................................................. 140 DBCC – DATABASE CONSISTENCY CHEKER ............................................... 145 COMANDOS DE MANUTENÇÃO .................................................................. 146 COMANDOS DE STATUS.............................................................................. 147 COMANDOS DE VALIDAÇÃO ....................................................................... 148 SENTENÇAS SQL ............................................................................................. 149 DML - Linguagem de Manipulação de Dados ............................................. 149 SELECT .................................................................................................. 149 INSERT ................................................................................................... 150 TOTVS-2011 – Let’s Share

4

UPDATE ................................................................................................. 150 DELETE .................................................................................................. 150 DDL - Linguagem de Definição de Dados................................................... 150 CREATE ................................................................................................. 150 DROP...................................................................................................... 150 DCL - LINGUAGEM DE CONTROLE DE DADOS ............................................. 150 GRANT ................................................................................................... 150 REVOKE ................................................................................................. 150 BEGIN TRAN .......................................................................................... 150 COMMIT ................................................................................................. 150 ROLLBACK ............................................................................................. 151 CONSULTANDO DADOS ATRAVÉS DE SENTENÇAS SQL PELO SQL SERVER:................................................................................................................. 151 CONSULTANDO DADOS ATRAVÉS DE SENTENÇAS SQL PELO ORACLE: 152 PROPRIEDADES DE UMA TABELA NO SQL SERVER ................................... 153 CLÁUSULAS...................................................................................................... 154 ORDER BY - Utilizada para ordenar os registros selecionados com uma ordem especifica. ............................................................................................. 155 UNION - Utilizada para unir duas ou mais colunas. .................................... 155 Operadores Lógicos.................................................................................... 155 Operadores de Comparação ...................................................................... 155 FUNÇÕES DE AGRUPAMENTO ............................................................................. 155 As funções de agrupamento se usam dentro de uma cláusula “SELECT” em grupos de registros para devolver um único valor que se aplica a um grupo de registros. Elas ignoram valores nulos. ............................................................. 155 EXPRESSÕES ARITMÉTICAS: ............................................................................... 156 EXEMPLIFICANDO ALGUMAS SENTENÇAS SQL: ......................................... 157 SELECTS ....................................................................................................... 157 CONSULTAS COM JUNÇÃO ......................................................................... 168 OUTER JOINS ................................................................................................ 169 SUBQUERY ................................................................................................... 171 INSERT .............................................................................................................. 172 UPDATE ............................................................................................................ 172 DELETE ............................................................................................................. 173 CREATE ............................................................................................................ 174 ALTER TABLE ................................................................................................... 175 DROP................................................................................................................. 177 GRANT .............................................................................................................. 178 REVOKE ............................................................................................................ 179 BEGIN TRAN ..................................................................................................... 180 ROLLBACK ........................................................................................................ 181 TOTVS-2011 – Let’s Share

5

OTIMIZAÇÃO DE CONSULTAS SQL ................................................................ 183 HARDWARE ...................................................................................................... 184 ARQUIVOS ........................................................................................................ 185 OTIMIZANDO O DESEMPENHO DO SERVIDOR USANDO OPÇÕES DE CONFIGURAÇÃO DE MEMÓRIA ........................................................................ 188 OTIMIZANDO O DESEMPENHO DO SERVIDOR USANDO OPÇÕES DE CONFIGURAÇÃO DE E/S ................................................................................... 189 RAID ............................................................................................................... 189 UTILIZANDO GRUPOS DE ARQUIVOS COM RAID ...................................... 192 BOAS PRÁTICAS E TUNNING ......................................................................... 198 ORACLE ........................................................................................................... 198 CONFIGURAÇÃO DE BANCO DE DADOS EXTERNO - MSSQL .................... 202 INTRODUÇÃO ............................................................................................... 202 ERROS COMUNS OCORRIDOS NO BDE ADMINISTRATOR. ........................ 206

TOTVS-2011 – Let’s Share

6

INTRODUÇÃO

Aviso Em se tratando de banco de dados podemos ter uma grande variedade de utilizações e procedimentos, porém as informações abaixo são aplicáveis aos ambientes internos da TOTVS para análise e testes dos atendentes do Help Desk, em ambientes complexos e de produção algumas configurações podem ter abordagens diferentes, portanto este material é uma material de treinamento interno e que não deve ser usado para criação de ambientes complexos e de produção. TOTVS-2011 – Let’s Share

7

Para esta abordagem é necessário um contato com a equipe de Infra-Estrutura e Banco de dados.

Descrição do funcionamento do banco de dados Podemos entender por banco de dados qualquer sistema gerenciador que reúna e mantenha organizada uma série de informações relacionadas a um determinado assunto em uma determinada ordem.

Funções básicas de um SGBD: O trabalho com uma base de dados implica diversos tipos de operações sobre as tabelas e os dados que eles contêm, tais como:



Função Backup para uma Base de Dados.



Função Restauração de um backup já feito para uma base de dados.



Inserir novos registros;



Procurar e visualizar um registro;



Eliminar registros existentes;



Selecionar registros e/ou campos;



Ordenar os registros de uma tabela;



Juntar ou intercalar registros de tabelas diferentes;

TOTVS-2011 – Let’s Share

8



Fazer cópias ou duplicações de Tabelas;



Alterar a estrutura de campos de uma Tabela;



Eliminar Tabelas;

OBS: As Funções acima são geralmente feitas através de “Sentenças feitas na Linguagem SQL”, também chamados de “Scripts” ou “Query”.Visando melhor aproveitamento da solução de gestão empresarial que reúne todos os aplicativos, o Corpore RM é composto de uma base de dados que contém as tabelas de todos os aplicativos que a TOTVS oferece.

ARQUITETURA SUPORTADAS



CLIENTE/SERVIDOR

A arquitetura Cliente/Servidor é estruturada em duas camadas. A primeira camada é onde se localiza o aplicativo. Essa camada é responsável pela regra de negócio, comandos de manipulação de dados e interface com o usuário. A segunda camada é onde se encontra a base de dados, responsável pelo armazenamento de informações e execução dos comandos oriundos da camada cliente.

TOTVS-2011 – Let’s Share

9

- Multi-camadas A arquitetura Multi-Camadas é estruturada para poder dar uma maior mobilidade, desempenho e facilidade de manutenções na aplicação. Em seu conceito geral, essa arquitetura, possui no mínimo 3 camadas. A primeira camada contempla a interface com o usuário. A segunda camada é responsável pelo tratamento da regra de negocio do aplicativo. Já a terceira camada é responsável pelas transações do banco de dados.

- Web

TOTVS-2011 – Let’s Share

10

A arquitetura Web, o cliente acessa o Servidor Web, onde está instalado o TOTVS Portal, via intranet ou extranet. O Servidor Web possui uma camada de Biblioteca cliente, onde se localiza a camada de interface com o usuário, que acessa via Remoting o Servidor de Aplicações. Este por sua vez acessa ao Servidor de Banco de Dados via ADO.Net



TERMINAL SERVICE

A arquitetura RM via Terminal Service permite o cliente acessar o Servidor de Terminal Service na rede da empresa ou via internet e utilizar os produtos da Linha RM seguindo a mesma arquitetura de Winform e Webform.

TOTVS-2011 – Let’s Share

11

Observações Para ambiente com grande volume de processamento, a TOTVS recomenda o uso de um servidor de aplicação. O modelo de arquitetura Multi-Camadas será o padrão do software da linha RM em 2011. Processos para Geração de Cubos e Relatórios, Cálculo de Folha, devem ser agendados para períodos de menor carga de processamento dos servidores. Utilize filtros que retornem no máximo 200 registros na visão. No cadastro de Servidores de Aplicação, utilize o campo “Número máximo de Registros” para limitar os registros retornados do banco de dados. Não utilize a base de produção para Armazenamento dos Cubos

TOTVS-2011 – Let’s Share

12

Os aplicativos da linha CorporeRM são homologados para trabalhar nos servidores de BD:

A TOTVS recomenda aos usuários do banco de dados Microsoft SQL Server 2000, o upgrade para o SQL Server 2005 ou 2008 e reconfiguração do seu nível de isolamento, para obter melhorias de desempenho. Bancos de dados do MS-SQL 2005 e MS-SQL 2008 devem ter o Nível de Compatibilidade “SQL Server 2000 (8)”. É necessário instalar os servidores SQL’s com essa compatibilidade para manter a estabilidade de comunicação entre o BDE e o banco de dados. O banco de dados da RM não suporta replicação total (de todas as tabelas) da base de dados. É recomendado pela TOTVS que o software de banco de dados não seja virtualizado. Consulte previamente a TOTVS caso você queira criar triggers ou stored procedures na base de dados RM. A TOTVS recomenda que o produto RM BIS (Gestão Estratégica) seja executado em uma base de dados D-1 para não comprometer o desempenho da base de dados de produção. Atualmente, totalizamos um banco de aproximadamente 4468 tabelas onde existem mais de 13053 relacionamentos que contribuem com o bom funcionamento e desempenho do sistema.

TOTVS-2011 – Let’s Share

13

As tabelas são diferenciadas pelas letras iniciais, onde são referenciadas da seguinte forma:

A tabela GDIC (GCAMPOS) contém a descrição de todas as tabelas, colunas e o que o campo armazena. A chamamos de Dicionário de Dados. A

tabela

GLINKSREL

contém

a

descrição

de

todas

as

constraints

(relacionamento entre tabelas) que o Corpore RM possui na versão específica. A tabela GAUTOINC é utilizada para o controle de auto incremento de algumas colunas nos diversos sistemas. Ex: A consulta select * from gautoinc where codautoinc='codpessoa' irá retornar o número de pessoas que estão cadastradas no Corpore, este valor vai conferir com o da sentença SELECT MAX(CODIGO) FROM PPESSOA As tabelas GPARAMS, GUSUARIO, GPERMIS, GACESSO, GSISTEMA, GCOLIGADA, GUSRPERFIL são alimentadas ao importar o arquivo de licença e as

TOTVS-2011 – Let’s Share

14

mesmas contêm os dados da empresa e suas permissões de acesso, veja mais detalhes no item de segurança.

INSTALAÇÃO DO SQL SERVER 2008 Este guia tem como objetivo auxiliar a instalação do gerenciador de banco de dados SQL Server 2008 para a execução padrão do Corpore RM. 1. O Assistente de Instalação instalará os pré-requisitos do SQL Server se eles ainda não estiverem no computador. Os pré-requisitos incluem: •

.NET Framework 3.5 SP1



SQL Server Native Client



Arquivos de Suporte à Instalação do SQL Server

Para instalar os pré-requisitos, clique em Instalar. 2. O Verificador de Configuração do Sistema verificará o estado do sistema do computador antes da continuação da Instalação.

Preparando a instalação - MS SQL Server 2008 Para efetuar a instalação do MS SQL Server 2008, é necessário mapear um drive de rede para o CD-ROM caso o computador não possua CD-ROM.

TOTVS-2011 – Let’s Share

15

Iniciando a instalação – SQL Server 2008 No Windows Explorer 1 – Acesse o CD ou o caminho mapeado do SQL Server 2008 e dê um duplo clique no arquivo Setup.exe.

TOTVS-2011 – Let’s Share

16

1.2 – Centros de Instalação do SQL Server No diálogo apresentado, escolha a opção “New SQL Serverstand-alone installations or add features to an existing installation”:

TOTVS-2011 – Let’s Share

17

1.3 – Especificações da edição SQL Server 2008



Clique no botão Next



Clique no 1 botão OK.

TOTVS-2011 – Let’s Share

18

1.4 – Licenciamento do Produto 1 – Leia o termo de responsabilidade. 2 – Marque a opção I accept the licensing terms. 3 – Clique no botão Next.

TOTVS-2011 – Let’s Share

19

1.5 Instalação dos arquivos de suporte de instalação. •

Clique no botão Install.

TOTVS-2011 – Let’s Share

20

1.6 – Checando configuração do sistema

TOTVS-2011 – Let’s Share

21

1.7 – Selecionando componentes para a instalação

TOTVS-2011 – Let’s Share

22

No diálogo Components to Install: Os componentes listados abaixo são os essenciais para utilização do produto TOTVS, porém os demais componentes podem ser selecionados de acordo com a necessidade do cliente. 1 – Selecione a opção Database Engine Services. 2 – Selecione as opções Managment Tools- Basic , SQL Server Books Online e Managment Tools- Complete 3 – Clique no botão Next.

3

1.8 – Nome da instância TOTVS-2011 – Let’s Share

23

No diálogo Instance Configuration: 1 – Selecione a opção Default Instance. 2 – Clique no botão Next. Esta etapa define o nome pelo qual seu servidor SQL irá responder. Se escolher pela instância padrão o SQL terá o mesmo nome de seu servidor, se for uma instância nomeada o SQL irá atender por: NOME_SERVIDOR\NOME_SQL.

1.9- Verificação do espaço em disco

TOTVS-2011 – Let’s Share

24



Clique em Next:

1.10 Configuração do Server TOTVS-2011 – Let’s Share

25

No diálogo Service Account: 1 – Marque a opção SQL Server Agent. 2 – Selecione a opção SQL Server Database Engine. 3 – Marque a opção SQL Server Browser. 4 – Clique no botão Next.

Use the same account for all SQL Server services

TOTVS-2011 – Let’s Share

26

1.11 Configuração de Collation •

Marque a opção Customize



Marque a opção: SQL_Latin1_General_CP1_CI_AI



Clique em Ok

TOTVS-2011 – Let’s Share

27

2.1 - CONFIGURAÇÃO ACCOUNT PROVISIONIG: 1. Marque a opção Mixed Mode - Nessa opção, poderão autenticar tanto contas Windows e contas criadas posteriormente dentro do SQL. 2. Defina a senha do usuário SA - Atenção: O SA é o usuário master do seu SQL Server, por isso não atribua uma senha fraca e não ESQUEÇA a senha . 3. Adicionar uma conta Windows ao grupo de administradores do SQL. Clicando em ADD ou pode adicionar uma conta de administrador e também o usuário atual clicando no botão Add Current User

TOTVS-2011 – Let’s Share

28

TOTVS-2011 – Let’s Share

29

2.2 - Na janela error and usage reporting 1- Clique em Next

TOTVS-2011 – Let’s Share

30

2.3 - Na opção de Installation Rules: 1- Clique em Next

TOTVS-2011 – Let’s Share

31

2.4- Na opção Ready To Install 1- Clique em Install

TOTVS-2011 – Let’s Share

32

2.5 - No final da instalação clique em Close:

Instalação concluída com Sucesso.

Os produtos TOTVS utilizam o modo de autenticação pelo Windows e pelo SQL Server. Isso significa que além do usuário poder se conectar no banco através de um usuário/senha já previamente cadastrado no Windows NT/2000/XP/VISTA/..., como descrito no modo acima, ele também pode se conectar através de logins exclusivos do SQL Server. No caso das aplicações da linha rm, são utilizados dois logins específicos: Os logins RM e SYSDBA. O login rm tem permissão de dbo(database owner) ou dono da base, já o usuário sysdba possui permissão para selecionar apenas algumas tabelas de controle da aplicação. Default language: English Usuários: São utilizados por padrão os seguintes usuários/alias para acesso ao Banco de Dados. Usuário SYSDBA (cujo nome e senha não devem ser alterados). Este usuário tem acesso apenas às tabelas de LOGIN e deve ser criado/configurado através do script USUARIOS.SQL. TOTVS-2011 – Let’s Share

33

Alias RM (que é tratado como Dono do Banco de Dados). Este usuário deve ser criado/configurado através do script USUARIOS.SQL ou ACERTAUSUARIOS.SQL Deve-se atentar para a seguinte questão: Não deve existir na base um usuário rm, e sim um alias que age como dono das tabelas, portanto na pasta security>users do SQL Server Management Studio ou Enterprise Manager não deve existir o usuário rm, já em security>logins deve existir ambos os logins rm e sysdba. Veja o padrão em security>users

Propriedades do banco de dados: Ansi Null Default: ON; Auto Create Statistics: OFF; Auto Update Statistics: OFF. Autenticação: Feita pelo SQL Server e Windows.

Verificação do collation das bases SQL Server TOTVS-2011 – Let’s Share

34

Seguindo o padrão da TOTVS, na criação do banco Corpore SQL SERVER, deve-se

utilizar o

collation

CP1_Latin1_General_CP1_CI_AI,

(DICTIONARY

ORDER, CASE-INSENSITIVE, ACCENT-INSENSITIVE, FOR USE WHITH 1252 CHARACTER SET) lembramos que na instalação o default é o sort order 52; Para verificar qual o collation está alocado em um cliente, basta logar no SQL Server Enterprise Manager, clicar com o botão da direita no nome do servidor, propriedade | collation. Caso o collation esteja incorreto, para acertá-lo colocando o padrão Corpore, deve-se reinstalar o SQL Serve, selecionando a opção correta.

Para verificar o colation da database, deve clicar com o botão da direita do mouse no nome da database | propriedades. Para acertar um collation incorreto de acordo com o padrão Corpore, apenas pode ser executado via banco de dados através de customização.

TOTVS-2011 – Let’s Share

35

TOTVS-2011 – Let’s Share

36

Scripts para criação de usuários nas versões 2000,2005 e 2008 do SQL Server. Criação do SYSDBA e RM no SQL Server:

SQL Server 2000 SP_CONFIGURE 'ALLOW UPDATES', '1' go RECONFIGURE WITH OVERRIDE go DELETE SYSUSERS WHERE NAME = '\RM' DELETE SYSUSERS WHERE NAME = '\SYSDBA' DELETE SYSUSERS WHERE NAME = 'RM' DELETE SYSUSERS WHERE NAME = 'SYSDBA' /* CRIAÇÃO DOS USUÁRIOS */ IF NOT EXISTS(SELECT * FROM MASTER.DBO.SYSLOGINS WHERE NAME = 'RM') EXEC SP_ADDLOGIN RM,RM GO sp_addalias RM,dbo GO IF NOT EXISTS(SELECT * FROM MASTER.DBO.SYSLOGINS WHERE NAME = 'SYSDBA') EXEC SP_ADDLOGIN SYSDBA,masterkey GO sp_adduser SYSDBA,SYSDBA GO GRANT SELECT ON GPARAMS TO SYSDBA GO GRANT SELECT, UPDATE ON GUSUARIO TO SYSDBA GO GRANT SELECT ON GPERMIS TO SYSDBA GO GRANT SELECT ON GACESSO TO SYSDBA GO GRANT SELECT ON GSISTEMA TO SYSDBA GO GRANT SELECT ON GCOLIGADA TO SYSDBA GO GRANT SELECT ON GUSRPERFIL TO SYSDBA GO GRANT SELECT ON GSISTEMA TO SYSDBA GO SP_CONFIGURE 'ALLOW UPDATES', '0' go RECONFIGURE WITH OVERRIDE go

TOTVS-2011 – Let’s Share

37

SQL Server 2005 IF EXISTS(SELECT * FROM DBO.SYSUSERS WHERE NAME = 'SYSDBA') EXEC sp_dropuser 'SYSDBA' GO IF EXISTS(SELECT * FROM DBO.SYSUSERS WHERE NAME = '\SYSDBA') EXEC sp_dropuser 'SYSDBA' GO IF EXISTS(SELECT * FROM DBO.SYSUSERS WHERE NAME = 'sysdba') EXEC sp_dropuser 'sysdba' GO IF EXISTS(SELECT * FROM DBO.SYSUSERS WHERE NAME = '\sysdba') EXEC sp_dropuser 'sysdba' GO IF EXISTS(SELECT * FROM DBO.SYSUSERS WHERE NAME = '\rm') EXEC sp_dropalias 'rm' GO IF EXISTS(SELECT * FROM DBO.SYSUSERS WHERE NAME = '\RM') EXEC sp_dropalias 'RM' GO IF EXISTS(SELECT * FROM DBO.SYSUSERS WHERE NAME = '\RM') EXEC sp_dropalias '\RM' GO IF NOT EXISTS(SELECT * FROM MASTER.DBO.SYSLOGINS WHERE NAME = 'rm') CREATE LOGIN rm WITH PASSWORD = 'rm',CHECK_POLICY=OFF GO EXEC sp_addalias rm,dbo GO IF NOT EXISTS(SELECT * FROM MASTER.DBO.SYSLOGINS WHERE NAME = 'sysdba') CREATE LOGIN sysdba WITH PASSWORD = 'masterkey',CHECK_POLICY=OFF GO EXEC sp_adduser sysdba,sysdba GO GRANT SELECT ON GPARAMS TO sysdba GO GRANT SELECT , UPDATE ON GUSUARIO TO sysdba GO GRANT SELECT ON GPERMIS TO sysdba GO GRANT SELECT ON GACESSO TO sysdba GO GRANT SELECT ON GSISTEMA TO sysdba GO GRANT SELECT ON GCOLIGADA TO sysdba GO GRANT SELECT ON GUSRPERFIL TO sysdba GO GRANT SELECT ON GSERVICO TO sysdba GO

TOTVS-2011 – Let’s Share

38

SQL Server 2008 /* 1º Parte */ SP_DROPUSER SYSDBA GO EXEC SP_CHANGEDBOWNER sa GO /* 2º Parte */ /* Criação dos usuários RM e SYSDBA */ IF NOT EXISTS(SELECT * FROM MASTER.DBO.SYSLOGINS WHERE NAME = 'rm') CREATE LOGIN rm WITH PASSWORD = 'rm',CHECK_POLICY=OFF GO

EXEC SP_CHANGEDBOWNER rm GO IF NOT EXISTS(SELECT * FROM MASTER.DBO.SYSLOGINS WHERE NAME = 'sysdba') CREATE LOGIN sysdba WITH PASSWORD = 'masterkey',CHECK_POLICY=OFF GO sp_adduser sysdba,sysdba GO GRANT SELECT ON GPARAMS TO sysdba GO GRANT SELECT , UPDATE ON GUSUARIO TO sysdba GO GRANT SELECT ON GPERMIS TO sysdba GO GRANT SELECT ON GACESSO TO sysdba GO GRANT SELECT ON GSISTEMA TO sysdba GO GRANT SELECT ON GCOLIGADA TO sysdba GO GRANT SELECT ON GUSRPERFIL TO sysdba GO GRANT SELECT ON GSERVICO TO sysdba GO

TOTVS-2011 – Let’s Share

39

CONFIGURAÇÕES DO SERVIDOR

Versão do SQL Server

RTM

SP1

SP2

SP3

SP4

(sem SP)

SQL Server 2008

10.00.1600.22

SQL Server 2005

9.00.1399.06

9.00.2047

9.00.3042

SQL Server 2000

8.00.194

8.00.384

8.00.532

8.00.760

8.00.2039

SQL Server 7.0

7.00.623

7.00.699

7.00.842

7.00.961

7.00.1063

No servidor será necessário instalar apenas o banco de dados e o Service Pack do mesmo. SQL Server. Para verificar a versão do Service Pack no SQL Server, execute o seguinte comando no Query Analyser: select @@version Para verificar uma lista completa de builds acesse: http://sqlserverbuilds.blogspot.com/

TOTVS-2011 – Let’s Share

40

O select abaixo nos traz informações como a versão,edição e service Pack do SQL além do nome da instancia, collation se está como single user etc... select serverproperty('productversion') as versão, cast(serverproperty('machinename') as sysname) as nome_maquina, cast(serverproperty('instancename')as sysname) as instancia_nomeada, cast(serverproperty('edition') as sysname) as edição, cast(serverproperty('productlevel') as sysname) as service_pack, cast(serverproperty('isclustered') as bit) as isclustered, cast(serverproperty('issingleuser') as bit) as issingleuser, cast(serverproperty('engineedition') as int) as engineedition, cast(databasepropertyex('nomedabase','collation')as sysname) as collation_base, convert(sysname, serverproperty('collation')) as collation_servidor

PARAMETRIZANDO O BANCO CORPORE NO SERVIDOR SQL SERVER Primeiramente, verifique a autenticação que está sendo realizada para conexão do SQL. Para isso, basta clicar com o botão direito do mouse no nome do servidor (Entreprise Manager), ir em propriedades. Na guia security, marque a autenticação SQL Server and Windows, o CorporeRM utiliza o usuário do banco de dados para realizar a autenticação do sistema, por este motivo, precisamos da autenticação do SQL para acessar o sistema; verifique se o serviço vai reiniciar após confirmar esta opção. Partindo do pressuposto que a base vazia foi criada com o nome de Corpore, o script de usuários também já foi executado na mesma, vamos conferir alguns parâmetros no banco: Ao selecionar o menu propriedades, clicando com o botão direito do mouse em cima da base Corpore, estarão todas as informações sobre a base de dados nas guias que iremos descrever:

TOTVS-2011 – Let’s Share

41

1. General – esta guia contém informações gerais da base, como data de criação, nome, tamanho, último backup... 2. Data files – contém o nome do file name, a localização do arquivo mdf que contém os dados, e o tamanho do mesmo. Podemos criar arquivos secundários apontando discos diferentes, que assim que esgotar o espaço do primeiro arquivo irá dar continuidade ao próximo. Sugerimos que seja parametrizado para o crescimento automático (Automatically Grow File) e no File Growth utilizar o file percent (10); já no Maximum File Size devemos ter muito critério ao marcar a opção de Unrestrict File Growth, apesar de recomendarmos, pois enquanto tiver espaço em disco e o banco necessitar ele irá expandir sem problemas, porém se o espaço estourar poderá danificar o banco de dados. 3. Transaction Log - contém o nome do file name, a localização do arquivo ldf que contém o log, e o tamanho do mesmo. Quanto à configuração, podemos basear nos critérios do Data files.

4. Filegroupes – Os grupos de arquivos permitem que os arquivos de banco de dados e objetos sejam logicamente agupados. A configuração padrão da RM não utiliza este recuro. 5. Options – Nesta guia, fazemos a seguinte recomendação: No Recovery Model, utilize a opção Simple que é para bancos pequenos ou os dados não são alterados com alta freqüência. Este modelo usa cópias completas ou diferenciais do banco de dados e a recuperação é limitada à restauração do banco até o ponto em que foi feito o último backup, porém os logs ocupam menos espaços no servidor. Caso deseje, poderá alterar este modelo a qualquer momento, de acordo com a sua necessidade, basta realizar um backup antes de alterar. Veja mais detalhes Na guia Settings solicitamos que marque somente o parâmetro:

TOTVS-2011 – Let’s Share

42



Ansi Null Default – quando esta opção é setada, os tipos de dados ou colunas que não estão explicitamente definidas como NOT NULL durante a criação ou alteração da tabela irá permitir valores nulos.

Verificando os demais parâmetros: •

Auto Close – quando esta opção está marcada, o banco criará overhead adicional associado com abertura e fechamento de arquivos do banco de dados, o que não recomendamos para bancos que estão constantemente em utilização.



Recursive Trigger – se não for adequadamente implementada, a recursão pode levar a loop sem fim.



Auto Shrink – caso esta opção esteja setada o banco e os arquivos de log se encolhem automaticamente, reduzindo o espaço de disco rígido e isso pode degradar o desempenho, caso seja necessário encolher o banco, poderá utilizar o comando DBCC SHRINKDATABASE.



Auto Update Statistics – configurada como True, as estatísticas de índice são automaticamente atualizadas, podendo gerar queda de desempenho



Auto Create Statistics – configurada como True, as estatísticas de índice são automaticamente criadas, sempre que você criar um índice, o SQL Server cria um conjunto de estatísticas sobre os dados contidos dentro do índice. O otimizador de consulta utiliza essas estatísticas para determinar se ele deve ou não utilizar o índice para ajudar a processar a consulta. Esta opção deve estar desmarcada para não gerar estatísticas em todas as tabelas, nosso banco já tem os índices devidamente criados, por isso, agende

uma

rotina

para

executar

a

procedure

RMATUALIZAESTATISTICAS que só atualiza das tabelas do Corpore. Ex: Quando o sistema executa um comando e que tenha uma cláusula WHERE e o Create Statistics está habilitado, o otimizador de consultas cria estatísticas até mesmo para colunas que não têm índices, mas que aparecem na cláusula WHERE. •

Torn Page Detection – este parâmetro marcado detecta se uma página está danificada, listando no event viewer, fica a critério do cliente marcar ou não esta opção, pois não influenciará no desempenho do banco

TOTVS-2011 – Let’s Share

43



Use Quoted Identifiers – marcando esta opção, os nomes de objetos dentro de aspas duplas não precisam obedecer à conveção para atribuição de nomes reservados ao SQL, como “date”, “primary”, sugerimos a não marcação deste parâmetro.



Compatibility Level – favor deixar com compatibilidade 8.0, caso contrário o banco irá preservar as características dos bancos anteriores, podendo trazer perda de desempenho por utilizar planos de execução de versões mais antigas.

LIMITES DO SQL SERVER 2005 Limites do Sistema Endereçamento de Memória

32TB

(64-bit)

64GB (32-bit using PAE) Número

máximo

de

processadores Número máximo de nós em Cluster

64

(64-bit)

32 (32-bit) 8 – versão Enterprise no Windows Server 2003 2 – versão Standard

Instâncias por servidor

50

Locks por isntância

Limitada

pela

memória

(64-bit)

2,147,483,647 (32-bit)

Limites do Database Databases por servidor

32,767

Tamanho do Database

1,048,516TB

Arquivos por database

32,767

Filegroups por database

265

Tamanho arquivo de dados

32TB

Tamanho arquivo de log

32TB

TOTVS-2011 – Let’s Share

44

Objetos no database

2,147,483,647

Identifier length

128

Limites das Tabelas Tabelas por database

Limitado pelo número de objetos em um database

Linhas por tabela

Limitado pelo disco

PRIMARY KEY por tabela

1

FOREIGN KEY por tabela

253

References por tabela

253

Triggers por tabela

Limitado pelo número de objetos em um database

Índices Clustered por tabela

1

Índices

NonClustered

por

249

constraints

por

249 nonclustered, 1 clustered

tabela UNIQUE tabela

Limites de Colunas Colunas por índice

16

Colunas por primary key

16

Colunas por foreign key

16

Colunas por table

1024

Tamanho da chave do Índice

900 bytes

Bytes por coluna caractere ou coluna binária

8000

(binary ) Bytes por text, ntext, ou image

2GB

Bytes por row

8060

Bytes por Índice

900

Bytes por primary key

900

TOTVS-2011 – Let’s Share

45

Bytes por foreign key

900

Limites do T-SQL Batch size

65,536 multiplicados pelo tamanho do pacote de rede

Tabelas por SELECT

256

Bytes no source text de

até 250MB

uma stored procedure Parâmetros por stored

1024

procedure Nested subqueries

32

Nested trigger levels

32

Colunas por SELECT

4096

Colunas por INSERT

1024

CONFIGURAÇÃO DAS MÁQUINAS CLIENTES SQL SERVER: Nas estações devemos instalar: 1) Client do banco de dados (Para SQL 2000 e Oracle) 2) BDE (versão 5.20 – para conferência, clique com o botão direito do mouse em cima de CoporeRM e em Version Information certifique a versão da maioria das DLL´s). 3) MDAC 2.81 ou superior (para certificar que a versão está correta, vá no iniciar, executar e digite regedit, abrindo o regedit peça para localizar MDAC, aperte a tecla F3 que a próxima chave mostra a versão) 4) Framework 5) Habilitar Protocolos e Serviços. TOTVS-2011 – Let’s Share

46

6) Biblioteca e Aplicativos Corpore

No SQL Server, é necessário habilitar os protocolos de comunicação: SQL 2000 -> Ir no Iniciar/Executar, digite cliconfg, na guia Geral desmarque as opções “Forçar criptografia de protocolo” e habilite os protocolos Shared Memory e TCP/IP. SQL 2005 -> Ir no Iniciar, Microsoft SQL Server 2005, Configurations Tools, e habilite os protocolos. SQL 2008 -> Vide SQL 2005 O serviço SQL Browser deve estar iniciado nos serviços do Windows em todas as versões do SQL, para que outras pessoas em outras maquinas consigam acessar sua instância SQL Server. No Oracle é necessário estar sempre iniciado o serviço OracleService”Nome da instancia” e o serviço OracleHome Listener (ouvinte) que é responsável pela comunicação do servidor com as estações clients.

DEMONSTRANDO ALGUMAS FUNÇÕES BÁSICAS DE UM SGDB (SQL SERVER):

Acessando o SGDB SQL Server: Para executar qualquer função no seu banco de dados, é necessário acessar o seu SGDB, no nosso caso usaremos o “Microsoft SQL Server” por ser o mais utilizado por Clientes da RM Sistemas. OBS: Usaremos a versão 2005 do “Microsoft SQL Server” por ser a mais atual. Para acessá-lo, acesse primeiramente em sua área de trabalho do Windows o Menu Iniciar – Programas - Microsoft SQL Server 2005 – SQL “Server Management Studio” ou “Server Management Studio Express”. TOTVS-2011 – Let’s Share

47

Logo na tela inicial conectar ao servidor que esta contida a Base de dados como demonstra a tela abaixo:

OBS: È permitido conexão a banco de dados SQL tanto local (em sua maquina) quanto em outra maquina, para isto basta informar a maquina a se conectar no campo “Server Name”, e com qual autenticação (Usuário). Dica:

Na opção Server Authentication optando no campo “Authentication”por

“Windows Autentication”, o SQL Server irá considerar como usuário, o usuário de rede atual, caso opte por “SQL Server Autentication” onde o SQL Server irá lhe solicitar um “Login” (usuário) e “Password” (Senha) para realizar a conexão.

FUNÇÃO BACKUP PARA BASE DE DADOS NO SQL SERVER: Refere-se à cópia de uma base dados com o objetivo de posteriormente recuperálos, caso haja necessidade ou algum problema com os dados originais. O backup consistente do banco de dados é de extrema importância para que possamos manter a integridade dos dados caso haja uma falha do sistema, hardware ou até mesmo para corrigir eventuais falhas de usuários, como por exemplo, a remoção

TOTVS-2011 – Let’s Share

48

acidental de um banco de dados. Para isto, é importante a adoção de uma política consistente de backup, bem como conhecer as possíveis técnicas para fazê-lo.

DEMONSTRANDO COMO FAZER UM BACKUP NO SQL SERVER 2005: Feito o procedimento demonstrado na seção “Acessando o SGDB SQL Server” (Pagina 19), procure a base de dados a ser feito o backup, geralmente a mesma se encontra dentro da pasta “Databases” clique com o botão direito do mouse sobre a base a ser feito o backup e acesse a opção Tasks – Back up..., como demonstrado na figura a seguir:

OBS: Geralmente as opções demonstradas acima, se encontram lateral esquerda da janela do aplicativo (Microsoft SQL Server Management Studio).

TOTVS-2011 – Let’s Share

49

Após procedimento acima, abrirá automaticamente uma janela, onde se deve informar o nome para o backup no campo “Name” e informar o caminho a ser salvo este backup clicando na opção “Add” conforme demonstrado na figura abaixo:

Obs.: Sempre atentem a observar se o campo “Database” esta com a base de dados corretamente preenchida.

Após acessar a opção “ADD”, será aberta uma outra janela onde se deve informar o caminho a ser salvo o backup, para tal deve ser usado o campo “...”:

TOTVS-2011 – Let’s Share

50

Abrirá automaticamente uma nova janela onde se deve localizar a pasta ou disco e atribuir um nome ao backup:

TOTVS-2011 – Let’s Share

51

Obs.: Note que no exemplo anterior selecionei a pasta C:\Bases\Backup – Exemplo, para que o SQL Server salve na mesma meu backup criado, o caminho escolhido é demonstrado no campo “Selected path:”. Também é necessário nesta mesma janela, escolher um tipo para este backup no campo “Files of type” (o SQL Server opta por defaut as extensões *.bak; *.trn) e nomear este backup, no exemplo acima, coloquei o nome “Exemplo” para meu Backup, como pode se verificar no campo “File name”. Após feito todo o procedimento acima, clique em “OK”, o sistema apresentará na tela anterior o caminho escolhido com o respectivo nome:

Agora, para iniciar o processo de Backup, basta clicar em “OK” como demonstra a tela seguinte:

TOTVS-2011 – Let’s Share

52

OBS: Note que o caminho escolhido, se encontra demonstrado no campo “Destination”. Após clicar em “Ok” como demonstrado na janela acima, o sistema irá fazer o backup demonstrando em sua margem inferior da lateral esquerda o status do processo:

TOTVS-2011 – Let’s Share

53

Para finalizar, o SQL Server lhe apresentará a seguinte tela:

Pronto, é só clicar em “OK “, pois seu Backup já foi feito com Sucesso e gravado com o nome e no caminho escolhido no processo acima:

TOTVS-2011 – Let’s Share

54

Função Restauração de um Backup de Base de Dados no SQL Server:

Uma restauração ou “RESTORE” de um banco de dados, nada mais é do que a operação de trazer os dados de um backup criado de volta para o SGDB.

DEMONSTRANDO COMO RESTAURAR UM BACKUP NO SQL SERVER 2005: Feito o procedimento demonstrado na seção “Acessando o SGDB SQL Server” (Pagina 19), procure a pasta “Databases” clique com o botão direito do mouse sobre a mesma e acesse a opção Restore Database..., como demonstrado na figura a seguir:

TOTVS-2011 – Let’s Share

55

Após procedimento acima, abrirá automaticamente uma janela, onde se deve informar um nome para a Base de dados no campo “To database:” e informar o caminho onde se encontra o backup a ser restaurado, para tal, habilite a opção “From device” e clique na opção “...” conforme demonstrado na figura a seguir:

OBS: Para demonstrar tal operação, usaremos o backup anteriormente feito na seção “Demonstrando como se fazer um Backup no SQL Server 2005”.

TOTVS-2011 – Let’s Share

56

Note que informei o Nome Exemplo_10 para minha base de dados em “To database”, já optei pela opção “From device” e selecionei na opção “...”: Abrirá uma nova janela onde se deve informar a localização do backup a ser restaurado:

Para Localizar tal backup, clique em “Add” conforme demonstrado anteriormente, localize o mesmo e clique em “OK” conforme demonstração abaixo:

TOTVS-2011 – Let’s Share

57

OBS: Note que informei o mesmo diretório em que o salvei o backup feito na seção “Demonstrando como se fazer um Backup no SQL Server 2005” (Pagina 23). Após o procedimento acima, o SQL Server apresentará a tela “Specify Backup” com o caminho informado:

Clique na opção “OK”. Após o SQL Server voltará à tela principal já com alguns dados preenchidos, tais como o caminho escolhido no campo “From Device” e o Backup informado logo abaixo na opção para se selecionar o Backup a restaurar, deve-se marcar ao backup em questão e clicar na opção “Options”, localizada no canto superior esquerdo da tela:

TOTVS-2011 – Let’s Share

58

Na Tela “Options”, deve-se informar o caminho para que o sistema salve os arquivos da Base de Dados restaurada, cuja extensão são “.mdf” e ”.ldf “respectivamente:

TOTVS-2011 – Let’s Share

59

Para informar um caminho diferente ao sugerido pelo SQL Server, basta clicar nas opções “...”, localizadas a frente dos caminhos informados. Basta clicar em “OK” e o backup será automaticamente restaurado no caminho informado:

Após restauração, o SQLServer apresentará a mensagem de Restauração executada com Sucesso:

TOTVS-2011 – Let’s Share

60

FUNÇÃO DETACH DE UMA BASE DE DADOS NO SQL SERVER: Detach é o processo que desativa (desliga) a base de dados. Note que após efetuar o Detach, base de dados deixa de estar disponível no servidor. Demonstrando a Função Detach no SQL Server 2005: Feito o procedimento demonstrado na seção “Acessando o SGDB SQL Server” (Pagina 19), procure a pasta “Databases”, encontre a Base de Dados a ser desativada, clique com o botão direito do mouse sobre a mesma, acesse a opção “Tasks” – “Detach...”

Na Próxima janela apresentada, basta clicar em “Ok”, e a desativação desta base será feita:

TOTVS-2011 – Let’s Share

61

Após executado este processo, a base em questão será excluída da guia “Databases” de seu SQL Server:

Mas continuará existindo no diretório em que foi restaurado anteriormente, na seção “Demonstrando como restaurar um Backup no SQL” Server 2005 (Pagina 26):

TOTVS-2011 – Let’s Share

62

FUNÇÃO ATTACH DE UM BASE DE DADOS NO SQL SERVER:

Attach é o processo que a ativa (liga) ou volta a ativar uma base de dados. Demonstrando a Função Detach no SQL Server 2005: Feito o procedimento demonstrado na seção “Acessando o SGDB SQL Server” (Pagina 19), procure a pasta “Databases”, clique com o botão direito do mouse sobre a mesma, acesse a opção “Attach...”:

Na Próxima janela apresentada, clique em “ADD...” para localizar a base a ser ativada:

TOTVS-2011 – Let’s Share

63

Localize a Base de dados e clique em “OK”:

O SQL Server automaticamente levará esta base e seu respectivo caminho para tela anterior, apresentando-o em “Databases to attach” e detalhando como ficará em ““Exemplo_10” databases details”: TOTVS-2011 – Let’s Share

64

Agora basta clicar em “OK” para executar a ativação da Base de Dados em questão. Após Ativação, a mesma estará sendo apresentada novamente na guia “Databases” de seu SQL Server:

Outras funções comuns como “Deletar”, “Renomear”, “Atualizar” ou “Verificar propriedades” de uma base de dados, também podem ser feitas, bastando clicar com o botão direito do mouse sobre a mesma:

TOTVS-2011 – Let’s Share

65

PROCEDIMENTOS PARA EXECUTAR O PROFILER DO SQL SERVER 2005.

Menu Programas  Microsoft SQL Server 2005  Performance Tools  SQL Server Profiler conforme figura abaixo.

TOTVS-2011 – Let’s Share

66

Será aberta a janela principal do Profiler. Clicar no ícone New Trace conforme figura abaixo

Será aberta a janela para logar no servidor conforme figura abaixo:

Em SQL Server informar o nome do servidor que se encontra o banco de dados Caso seja Administrador da máquina poderá utilizar “Windows authentication” caso contrario utilizar “SQL Server authentication” e logar com o usuário SA.

TOTVS-2011 – Let’s Share

67

Será exibida a janela abaixo, solicitando o nome para o Arquivo de trace (trace name), neste dever ser colocado qualquer nome conforme tela abaixo.

Selecionar a guia “orelha” Events Selection, marque as opções “Show all events” e “Show all coluns” para que possa ter uma melhor visualização dos eventos, na coluna events marque os eventos que você deseja que sejam gravados a serem gravados no log a ser gerado conforme tela abaixo.Geralmente os eventos a serem adicionados são: Errors and Warnings,Stored Procedure,Transactions e TSQL Obs.: O eventos (Security Audit,Sessions,Stored Procedures,TSQL) por padrão vem marcados podendo manter os mesmos.

TOTVS-2011 – Let’s Share

68

Selecionar o botão Column Filters... . Nesta janela será configurado os “critérios” para realizar a monitoração do log, desta forma podemos monitorar isoladamente o que uma determinada estação esta realizando no banco de dados especificado, deverá ser configurado os critérios DataBaseName e HostName. Em DataBaseName expandir ( clicar no sinal de + “mais” ao lado deste critério) e no item like adicionar o nome do banco de dados Ex: EXEMPLO, CORPORE. Conforme janela abaixo. Obs.: Caso não saiba o nome do banco de dados, este poderá ser verificado na propriedade DATABASE NAME do alias no BDE.

Conforme citado acima o outro critério a ser configurado será o HostName, neste deverá ser adicionado o nome da máquina na rede Ex: SERVER, STENOVATO, conforme janela abaixo :

TOTVS-2011 – Let’s Share

69

Após este procedimento, clicar no botão OK e logo em seguida no botão RUN, o profiler irá começar a gravar todas as transações enviadas para o banco de dados, simular o erro no aplicativo logo após clicar no botão STOP conforme janela abaixo

Logo após clicar na opção STOP , ir ao menu File  Save as  Trace File e informar um nome qualquer para o arquivo e clique no botão Salvar. Conforme janela abaixo.

TOTVS-2011 – Let’s Share

70

MANUTENÇÃO NA BASE DE DADOS DA RM: Para obtermos uma rotina de prevenção na base, os analistas de banco de dados da RM disponibilizam alguns scripts, e neste contém as seguintes funções do SQL: Esta procedure atualiza as estatísticas do seu banco, melhorando a performance da seguinte maneira: Exemplo: Suponhamos que uma tabela é criada apenas com 10 registros, e ao decorrer do tempo, a mesma contém 1000 registros. Para evitar que o banco de dados não realize um plano de execução como se a tabela tivesse apenas 10 registros, é necessário atualizar as estatísticas da mesma. Além dessa Procedure, temos também os scripts de manutenção de base de dados que tem como função fazer as seguintes rotinas;



Reindexando os índices da Tabela



Verificando estrutura das tabelas e do Banco



Verificando espaço alocado das tabelas e do Banco

TOTVS-2011 – Let’s Share

71



Alocação



Redução do log

Os scripts possuem os nomes de Manutenção.sql e mandatabase.sql, e podem ser adquiridos com o pessoal da equipe de suporte de banco de dados. Sugerimos que estas rotinas sejam executadas diariamente, porém caso seja executado com usuários conectados, os mesmos podem questionar queda de performance no sistema. Manutenção de bases SQL Server 1-manutenção.sql 2-man_database.sql 3-RMATUALIZAESTATISTICAS (Procedure de Sistema, basta digitar o nome da procedure e executar no Query Analyzer)

A execução dos scripts visa uma melhoria considerável na base. Favor realizar as seguintes consultas na base e enviar o resultado: SELECT * FROM SYSOBJECTS WHERE XTYPE='TR' SELECT OBJECT_NAME(ID),NAME FROM SYSINDEXES WHERE NAME LIKE '_WA_SYS%' SELECT * FROM SYSOBJECTS WHERE UID1 É RECOMENDADO QUE A EXECUÇÃO DOS SCRIPTS DE MANUTENÇÃO SEJA REALIZADA NO MOMENTO DE MENOR UTILIZAÇÃO DA BASE CORPORE.

TOTVS-2011 – Let’s Share

72

Caracter set/ordenação/case: O padrão utlizado pelo CORPORE RM é o Caracter Set 1252, Dictionary Order, Case Insensitive, Acent insensitive. Default language: English Usuários: São utilizados por padrão dois usuários para acesso ao Banco de Dados. •

Usuário SYSDBA (cujo nome e senha não devem ser alterados). Este usuário tem acesso apenas às tabelas de LOGIN e deve ser criado/configurado através do script USUARIOS.SQL.



Usuário RM (que é tratado como Dono do Banco de Dados). Este usuário deve ser criado/configurado através do script USUARIOS.SQL. Este usuário pode ter seu nome e senha alterados, porém caso isto seja feito, deve ser feito de acordo com o script USUARIOS.SQL.

Deve-se atentar para a seguinte questão: Não deve existir na base um usuário rm, e sim um alias que age como dono das tabelas, portanto na pasta security>users do SQL Server Management Studio ou Enterprise Manager não deve existir o usuário rm, já em security>logins deve existir ambos os logins rm e sysdba. Veja o padrão em security>users

TOTVS-2011 – Let’s Share

73

Propriedades do banco de dados: •

Ansi Null Default: ON;



Auto Create Statistics: OFF;



Auto Update Statistics: OFF.

Autenticação: Feita pelo SQL Server e Windows.

DICAS DE PERFORMANCE SQL SERVER Seguem abaixo algumas dicas para assegurar a performance em um Banco de Dados. Vale a pena lembrar que toda a tarefa de manutenção em um banco de Dados deve ser feita em um momento em que o banco de dados não esteja sendo utilizado por outros usuários. A maior parte das alterações feitas no Banco de Dados requer que o mesmo seja reinicializado para que a alteração tenha efeito.Toda alteração na configuração de um servidor de Banco de Dados deve ser monitorada de forma a verificar se o resultado esperado foi atingido. As dicas relacionadas abaixo são genéricas e úteis para grande parte dos servidores, porém em alguns casos estas não são suficientes para garantir uma boa performance. Neste caso, deve-se procurar uma ajuda especializada e fazer um ajuste fino e personalizado na configuração do servidor.

1)Configurar a memória utilizada pelo SQL SERVER Sugere-se utilizar a alocação dinâmica de Memória para o SQL Server. Caso esteja utilizando um servidor SQL Server Dedicado, sugerimos que a metade da memória disponível no servidor seja alocada como quantidade de memória mínima para o servidor (Minimum (MB)). Assim, caso o Servidor tenha 1GB de memória, deve-se alocar como mínimo para o SQL Server 512MB. Sugere-se calcular a memória máxima para o SQL Server da seguinte forma: deve-se reservar 20% da memória do servidor para o Sistema Operacional (considerando-se múltiplos de 128 MB), subtrai-se do total da memória do Servidor, o valor reservado para o Sistema Operacional, e esta quantidade de memória deve TOTVS-2011 – Let’s Share

74

ser a quantidade máxima de memória utilizada pelo SQL Server. No caso de um servidor com 1GB de memória como o citado acima, a quantidade máxima para o SQL Server deve ser 768MB.

2) Utilização de Processadores -Quando tiver mais que um processador, sugere-se fazer com que o SQLServer os utilize. Deve-se verificar, de acordo com cada edição do SQL Server (ver Books on Line) o número máximo de Processadores que o SQL Server pode usar. Quando o número de processadores no servidor ultrapassar o limite utilizado pela edição do SQL Server, o limite da Edição deve ser utilizado. Para permitir a utilização de mais de um processador pelo SQL Server, basta marcar o Check Box relativo a cada processador em "Processor". - Desmarque a opção "Boost SQL Server priority on Windows".(Quando esta opção está marcada, a prioridade do processador é para o SQL Server. Marcar está opção pode fazer com que todo o processamento da máquina seja direcionado para o SQL Server fazendo com que o Sistema Operacional seja prejudicado.) c ) Marcar a opção "Use All avaiable Processors to use for parallel execution of Queries" (SQL Server 2005). Esta opção irá fazer com o SQL Server utilize de forma otimizada mais de um processador para a execução de Queries em paralelo quando isto acarretar em um melhor plano de execução de uma determinada query.

3) Alocação de Espaço em Disco -Deve-se alocar espaço além do suficiente no disco para os DataFiles do Banco de Dados. (Desta forma não haverá uma frequente alocação de espaço em disco.) Deve-se configurar também o crescimento automático dos DataFiles. Sugere-se que seja configurado um crescimento de 20% em 20% do Data File e que este crescimento seja ilimitado. TOTVS-2011 – Let’s Share

75

- Deve-se alocar para o Log de transações um espaço correspondente a 25% ou 30% do tamanho dos DataFiles. Sugere-se adotar o crescimento automático de 10% e limitar o crescimento do log a 50% do tamanho dos DataFiles. Obs:A configuração da alocação de espaço em disco deve ser revisada periodicamente. Sugere-se que esta revisão seja feita mensalmente ou a cada dois meses.

4) Distribuição de arquivos do Banco de Dados no Disco -Crie um novo Filegroup e o coloque como default Filegroup Em geral é uma boa decisão armazenar e gerenciar objetos do sistema (SQL Server) e objetos de usuário (base Corpore) separadamente. Desta forma, os objetos do sistema não competem por espaço no primary Filegroup com os objetos de usuário. -Caso você tenha diversos discos físicos, tente criar um filegroup com um arquivo por disco físico. -Isto irá favorecer a performance, porque quando uma tabela é acessada sequencialmente, uma thread separada é criada para cada arquivo para fazer a leitura dos dados em paralelo. - Coloque o arquivo de Log em um disco físico diferente do arquivo de Dados Isto é importante para performance pois escrever no Log é uma atividade de escrita intensiva.

5) Soluções baseadas em Hardware Em geral RAID baseado em hardware oferece vantagens de performance se comparados com o RAID implementado no Sistema Operacional. Pode-se melhorar significativamente a performance do sistema implementando um RAID 5 baseado em hardware. - Arquivo de Paginação e Sistema Operacional

TOTVS-2011 – Let’s Share

76

Sempre que possível coloque os arquivos do Banco de Dados em discos diferentes do sistema operacional e arquivo de paginação. Isto também irá favorecer a performance do sistema.

6) Rodar diariamente atualização de estatísticas A atualização de estatísticas serve para que o SQL Server conheça melhor os dados que estão armazenados no Banco e através deste conhecimento escolha sempre o melhor plano de execução para as consultas ao Banco de Dados.A atualização de estatísticas no Banco de Dados Corpore RM pode ser feita através da execução da procedure RMATUALIZAESTATISTICAS. Deve-se criar uma tarefa responsável por executar diariamente e automaticamente esta procedure na Base de Dados.

Recriar todos os índices da Base de Dados semanalmente. A recriação dos índices permite a desfragmentação dos mesmos, o que reflete diretamente na performance do Banco de Dados.A recriação de Índices no Banco de Dados Corpore RM deve ser feita semanalmente através de uma tarefa agendada. Esta tarefa deve executar um script contendo comandos para a reconstrução dos índices em todas as tabelas do Banco de Dados. O comando a ser utilizado deve seguir o seguinte padrão: DBCC DBREINDEX (‘’)

Rodar semanalmente o DBCC CHECKDB O DBCC CHECKDB serve para verificar a integridade física do Banco de Dados.Não basta que o comando seja executado. Deve-se verificar o Log de execução do mesmo a fim de identificar algum segmento corrompido.Rode o utilitário e localize ocorrências da palavra "MSG", elas podem indicar problemas com integridade física no Banco de Dados.

TOTVS-2011 – Let’s Share

77

Desmarque as seguintes opções no Banco de Dados:

Auto update statistics Torn page detection Auto close Auto shrink Auto create statistics

DICAS PARA QUALQUER BANCO DE DADOS

1) Trabalhar com servidor dedicado para o BD Verificar se não há serviços desnecessários rodando na máquina além dos Serviços do Gerenciador de Banco de Dados.

2) Desabilitar Anti Virus Caso exista Anti-Virus habilitado no servidor de Banco de Dados, configurar o anti-virus para que o mesmo não faça verificação de arquivos do banco. Isto não é necessário, e degrada muito a performance do Banco de Dados, uma vez que a cada alteração no arquivo de Banco de Dados o Anti-virus deve fazer uma verificação do mesmo.

3)Verificar se o disco está fragmentado.

TOTVS-2011 – Let’s Share

78

Verificar mensalmente a fragmentação no disco onde está o Banco de Dados. Caso necessário, deve-se fazer a desfragmentação do mesmo. Caso seu Banco de Dados esteja rodando em um Sistema Operacional Windows, e rode o utilitário "Desfragmentador de Disco" do Windows para efetuar a desfragmentação. Antes de rodar o utilitário, tire um backup do Banco de Dados. Caso necessário, apague o banco de Dados e restaure o mesmo novamente.

INSTALAÇÃO DO ORACLE 11G SERVER Este guia tem como objetivo auxiliar a instalação do gerenciador de banco de dados Oracle 11g nos sistemas operacionais Windows NT Server, Windows NT Workstation, Windows 2000 Server, Windows 2000 Professional, Windows XP , Windows Vista, Windows Server 2003 e Windows Server 2008. Pré-requisitos para instalação: o Antes de iniciar a instalação, é recomendável serem fechadas todas as janelas de programas do Windows; o O computador servidor deve estar em rede com os computadores clientes; o A instalação deve ser executada por um usuário com atribuições de administrador local.

1.1 - Iniciando a Instalação 1- No Windows Explorer, acesse o CD de instalação do Oracle11g;

TOTVS-2011 – Let’s Share

79

Observações: Caso o servidor, onde o Oracle11g será instalado, não tenha drive de CDROM, coloque o CD em uma máquina que tenha drive de CD-ROM e compartilhe-o. Para maiores informações veja o tópico Mapeando o Drive de Rede para o CD ROM. 1- Execute o programa de instalação SETUP.EXE e aguarde até que as configurações do micro sejam verificadas.

TOTVS-2011 – Let’s Share

80

Verificando as configurações do micro:

TOTVS-2011 – Let’s Share

81

1.2 - Welcome No diálogo "Select Installation Method": 1- Selecione a opção [ADVANCED INSTALLATION]:

2- Clique em [NEXT].

TOTVS-2011 – Let’s Share

82

1.3 - Tipos de Instalação e linguagem No diálogo "Select Installation Type": 1 - Selecione a opção [Enterprise Edition (2.69GB)]; 2 - Clique no botão [PRODUCT LANGUAGES].

3 - No diálogo "Language Selection", mantenha apenas ENGLISH no quadro Select Languages (quadro à direita da janela).

TOTVS-2011 – Let’s Share

83

4 - Clique no botão [OK]. 5 - Ainda no diálogo " Select Installation Type ", pressione [NEXT].

1.4 - Definindo a Localização dos Arquivos No diálogo "Install Location": 1 - No campo [Oracle Base]: Verifique o caminho onde estão localizados os arquivos necessários para a instalação do Oracle11g. Você deve clicar no botão Browse e encontrar a pasta STAGE na instalação e selecionar o arquivo PRODUCTS.XML conforme a figura abaixo. 2 - Caso o caminho especificado no campo [Oracle Base] não esteja correto, utilize o botão [BROWSE…] para especificá-lo corretamente.

TOTVS-2011 – Let’s Share

84

3 - Como por padrão o Instalador do Oracle 11G utiliza a pasta de perfil do usuário para fazer a instalação, sugerimos que seja criada uma pasta chamada ORACLE em c:\ conforme print abaixo:

Crie uma nova pasta

Em [Software Location…] TOTVS-2011 – Let’s Share

85

4 - No campo [NAME]: Entre com o OraDb11g_home1. 5 - No campo [PATH]: Entre com o caminho onde será instalado o Oracle. Sugere-se deixar o caminho default: C:\ORACLE\PRODUCT\11.1.0\db_1. 6 - Caso queira alterar o caminho, clique no botão [BROWSE]. 7 - Clique em [NEXT].

1.5 – Verificação de pré-requisitos No diálogo "Product-Specific Prerequisite Checks": 1 – Certifique que a verificação dos pré-requisitos foi executada com sucesso. 2 - Clique em [NEXT].

TOTVS-2011 – Let’s Share

86

1.6 – Opção de Configuração do Banco No diálogo "Select Configuration Option": 1 - Escolha [CREATE A DATABASE] para criar uma instancia Oracle. 2 - Clique em [NEXT].

TOTVS-2011 – Let’s Share

87

1.7 – Configuração do Banco No diálogo "Select Database Configuration": 1 - Escolha [GENERAL PURPOSE]. 2 - Clique em [NEXT]. TOTVS-2011 – Let’s Share

88

1.8 – Opções de Configuração do Banco de Dados No diálogo "Specify Database Configuration Options":

TOTVS-2011 – Let’s Share

89

1 - No campo GLOBAL DATABASE NAME coloque o nome completo com domínio do seu banco de dados. 2 - No campo SID coloque o nome da instância que será criada. 3 - Clique em [NEXT].

1.9– Detalhes de Configuração do Banco de Dados

TOTVS-2011 – Let’s Share

90

No diálogo "Specify Database Configuration Details": 1 - No guia MEMORY, verifique a porcentagem de memória que será alocada para a instancia que esta sendo criada. 2 - Por padrão o Oracle deixa 40% da memória da maquina disponível para instancia. Sugerimos que para instancias de teste seja alocada apenas 15% da memória para a instancia por motivo de otimização de performance da maquina.

3 – Vá na guia CHARACTER SET 4 – Marque a opção [CHOOSE FROM THE LIST OF CARACTER SETS] 5 – No campo SELECT DATABASE CHARACTER SET escolha o conjunto de caracteres [West European WE8ISO8859P15]. 6 - Clique em [NEXT]. TOTVS-2011 – Let’s Share

91

1.10 – Opção de Gerenciamento de Banco de Dados

TOTVS-2011 – Let’s Share

92

No diálogo "Select Database Management Option": 1 - Escolha a opção [USE DATABASE CONTROL FOR DATABASE MANAGEMENT]. 2 - Clique em [NEXT].

1.11 – Opções de Armazenamento de Arquivos do Banco TOTVS-2011 – Let’s Share

93

No diálogo "Specify Database Storage Option": 1 - Escolha a opção [FILE SYSTEM]. 2 - Caso queira mudar a localização dos arquivos do banco de dados, clique no botão [BROWSE]. 3 - Clique em [NEXT].

TOTVS-2011 – Let’s Share

94

1.12– Opções de Backup e Recuperação No diálogo "Specify Backup and Recovery Options": 1 - Selecione a opção [DO NOT ENABLE AUTOMATED BACKUPS]. 2 - Clique em [NEXT].

TOTVS-2011 – Let’s Share

95

1.13 – Senhas do Banco de Dados No diálogo "Specify Database Schema Passwords": 1 - Marque a opção [USE THE SAME PASSWORD FOR ALL THE ACCOUNTS] 2 - Coloque uma senha no campo [ENTER PASSWORD] repetindo a mesma no campo [CONFIRM PASSWORD]. 3 - Clique em [NEXT].

TOTVS-2011 – Let’s Share

96

1.14– Gerenciamento de configuração de registros No diálogo "Oracle Configuration Manager Registration": 1 - Clique em [NEXT].

TOTVS-2011 – Let’s Share

97

1.15 – Lista de Produtos a serem Instalados No diálogo "Summary": 1 - Clique no botão [INSTALL].

TOTVS-2011 – Let’s Share

98

1.16- Aguardando a Instalação No diálogo "Install": 1 - Aguarde até que os arquivos de instalação sejam copiados ou que o botão [NEXT] seja habilitado novamente.

TOTVS-2011 – Let’s Share

99

1.17 - Configurando as Ferramentas No diálogo "Configuration Assistants": 1 - Aguarde até que o botão [NEXT] seja habilitado novamente. 2 - Clique em [NEXT].

TOTVS-2011 – Let’s Share

100

1.18- Identificação da Instância No diálogo "Database Configuration Assistant": 1 – Clique em OK.

TOTVS-2011 – Let’s Share

101

1.19 – Fim da Instalação No diálogo "End of Installation": 1 - Clique no botão [EXIT].

2 – Na caixa de diálogo, clique no botão Yes.

TOTVS-2011 – Let’s Share

102

Criando uma Instância no Oracle 11g Acesse o menu: INICIAR | Todos os Programas | Oracle - OraDb11g_home1 | Ferramentas de Configuração e Migração | Assistente de Configuração de Bancos de Dados 0 – Bem-vindo Na tela “Bem-vindo” 1 – Clique em “Próximo” 1 – Operações Na tela “Operações” 1 – Selecione a opção “Criar um Banco de Dados”; 2 – Clique em “Próximo”. 2 – Modelos de Banco de Dados Na tela “Modelos de Banco de Dados” 1 – Selecione a opção “Finalidade Geral ou Processamento de Transação”; 2 – Clique em “Próximo”. 3 – Identificação do Banco de Dados Na tela “Identificação do Banco de Dados” 1 – Digite o nome da instância que está sendo criada no campo “Nome do Banco de Dados Global”; 2 – Confirme o mesmo nome no campo “SID”; 3 – Clique em “Próximo”. 4 – Opções de Gerenciamento Na tela “Opções de Gerenciamento” 1 – Desmarque a opção “Configurar o Enterprise Manager”; 2 – Clique em “Próximo”. 5 – Credenciais do Banco de Dados Na tela “Credenciais do Banco de Dados” 1 – Marque a opção “Usar a mesma senha Administrativa para todas as contas”; 2 – Digite uma senha para as contas do Banco de Dados no campo “Senha”; 3 – Confirme a mesma senha no campo “Confirmar Senha”; TOTVS-2011 – Let’s Share

103

4 – Clique em “Próximo”. 6– Opções de Armazenamento Na tela “Opções de Armazenamento” 1 - Clique em “Próximo”. 7 – Localização dos Arquivos de Banco de Dados Na tela “Localização dos Arquivos de Banco de Dados” 1 - Clique em “Próximo”. 8 – Configuração de Recuperação Na tela “Configuração de Recuperação” 1 –Desmarque a opção Especifique a área de recuperação Flash, a mesma e utilizada para o recurso de flashback que tem utilidade em sistemas de produção além de ser o local padrão para onde o backup automático é feito. 2 - Clique em “Próximo”. 9 – Conteúdo do Banco de Dados Na tela “Conteúdo do Banco de Dados” 1 - Clique em “Próximo”. 10 – Parâmetros de Inicialização Na tela “Parâmetros de Inicialização” 1 – Defina a quantidade de memória do sistema que ficará disponível para o banco de dados Oracle, quanto maior mais performance, em contrapartida menos recursos para o sistema operacional – Recomendado o mínimo por se tratar de uma ambiente de desenvolvimento e teste. 2 – Dimensionamento set os processos para 900. 3 – Conjunto de caracteres – Deve ser usado a terceira opção Escolha na lista de conjuntos de caracteres, desmarque a opção “Mostrar apensa conjuntos de caracteres recomendados”, o padrão TOTVS é WE8ISO8859P1 4 - Clique em “Próximo”. 11 – Definições de Segurança TOTVS-2011 – Let’s Share

104

Na tela “Definições de Segurança” 1 – Marque a opção “Reverter para definições de segurança default anterior a 11g e mantenha as duas opções marcadas. 2 - Clique em “Próximo”.

12 – Tarefas de Manutenção Automática Na tela “Tarefas de Manutenção Automática” 1 – Desmarque a opção “Ativar tarefas de manutenção automática”; 2 - Clique em “Próximo”. 13 - Armazenamento de Banco de Dados Na tela “Armazenamento de Banco de Dados” 1 - Clique em “Próximo”. 14 – Opções de Criação Na tela “Opções de Criação” Dica: Em instalações no Windows 7 poderá ocorrer o erro: "ora-12638 credential retrieval failed" Para solucionar o problema deverá se

alterada a informação abaixo antes da

instalação: No arquivo sqlnet.ora \\Oracle\product\11.1.0\db_1\NETWORK\ADMIN Original - SQLNET.AUTHENTICATION_SERVICES= (NTS) Modificado - SQLNET.AUTHENTICATION_SERVICES= (NONE) Ativando um LISTENER no Oracle 11g

TOTVS-2011 – Let’s Share

105

NETCA Algumas vezes é necessário acionar manualmente o “netca” para configurar um Listener para a base de dados recém-criada. No ORACLE 11g normalmente aparece uma mensagem emitida pelo DATABASE CONTROL CONFIGURATION... Acesse pelo INICIAR – EXECUTAR digitando o comando “netca”...

Aguarde

até

abrir

o

programa

configurador

e

selecione

LISTENER

CONFIGURATION...

Selecione “Add” e avance pelo “NEXT” (ou “AVANÇAR”)...

TOTVS-2011 – Let’s Share

106

Digite no nome do seu LISTENER (Normalmente digitamos “LISTENER” mesmo)...

Selecione “TCP” como protocolo único e avance...

TOTVS-2011 – Let’s Share

107

Selecione a porta padrão 1521 (ou outra que lhe for passada pela infra-estrutura de rede) e avance...

TOTVS-2011 – Let’s Share

108

Aguarde a mensagem de sucesso do prompt...

Verifique no serviço do Windows (services.msc) se o serviço de Listener foi ativado (iniciado).

CRIANDO ALIAS PARA A BASE

1 - Através do Menu INICIAR | PROGRAMAS | ORACLE – ORAHOME | CONFIGURATION AND MIGRATION TOOLS,

acesse o utilitário "Net Manager".

TOTVS-2011 – Let’s Share

109

2 – No diálogo do "Oracle Net Manager”, vá no Explorer a esquerda nas opções: Oracle Net Configuration |

Local | Service Naming e clique no ícone “+” a esquerda

para adicionar um novo alias.

3 – Informe no campo “Net Service Name” o nome que você deseja dar para o Alias que irá criar.

TOTVS-2011 – Let’s Share

110

4 – Seleciono o tipo de Protocolo TCP/IP

5 – Informe no campo “Host Name” o nome do servidor onde se encontra a instância a ser apontada, e no campo “Port Number” o número da Porta da mesma.

6 – Informe no campo “Service Name” o nome da instancia a ser acessada.

TOTVS-2011 – Let’s Share

111

7 – Clique no botão “Testar” para verificar a consistência do login.

8 – Entre com o Usuário System, senha do mesmo e clique em OK.

TOTVS-2011 – Let’s Share

112

9 – Caso a conexão e configuração seja executada com sucesso conforme mensagem abaixo, clique em “Close” para finalizar.

10 – Salve a configuração através do menu: File | Save Network Configuration.

TOTVS-2011 – Let’s Share

113

1.4 - Ativando o Utilitário SQL Plus 1

- Através

do

Menu

INICIAR | Todos

os Programas |

Oracle



OraDb11g_Home1| Desenvolvimento de Aplicações, acesse o utilitário "SQL Plus".

No diálogo "Log On":

TOTVS-2011 – Let’s Share

114

1 - No campo [USER NAME:], digite SYSTEM. 2 - No Campo [PASSWORD:], digite a senha definida para o usuário system Para se conectar a uma instância especifica você deverá informar o nome da instancia.

A sintaxe do comando é rm/[email protected] TOTVS-2011 – Let’s Share

115

Onde considera-se usuário/[email protected]

1.5 - Executando o Script para Geração dos TableSpaces 1 - Edite o arquivo TBSPACE.SQL (utilize para esta operação utilitários do tipo WordPad ou NotePad) que se encontra no diretório onde foram instalados os arquivos para geração da Base de Dados. Caso necessário, altere os caminhos onde serão criados os Datafiles, para caminhos válidos no Servidor.

TOTVS-2011 – Let’s Share

116

Execute

o

script

para

geração

de

TableSpaces.

Digite:

@C:\CORPORERM\DADOS\TBSPACE9i.SQL (Onde o caminho digitado deve ser o caminho onde foram instalados os arquivos para geração de Base de Dados) e tecle ENTER

1.5 – Excluindo o schema RM (OPCIONAL) ATENÇÃO: Esse passo deve ser executado apenas na ocasião de já se ter uma instancia criada com uma base de dados importada e deseja-se alterar o arquivo de backup (dmp). Drop o schema RM (dono das tabelas Corpore) da seguinte maneira conectado no SQL PLUS (ou tools) com o usuário SYSTEM: Conecte com o usuário System: Execute o comando: COMANDO: DROP USER RM CASCADE;

TOTVS-2011 – Let’s Share

117

1.6 - Executando o Script para Criação de Usuários

Após a finalização da exclusão do schema acima (opcional), ainda conectado com o usuário SYSTEM no SQL Plus (ou Tools), execute o script de criação dos usuários do Corpore RM (SYSDBA E RM) – Usuários.txt No

SQL

PLUS,

execute

o

script

para

criação

de

Usuários.

Digite:

@C:\CORPORERM\DADOS\USUARIOS.SQL (Onde o caminho digitado deve ser o caminho onde foram instalados os arquivos para geração de Base de Dados)

TOTVS-2011 – Let’s Share

118

CRIANDO ARQUIVO DE PARÂMETROS PARA IMPORTAÇÃO DE DADOS DA BASE EXEMPLO Crie um arquivo texto com o nome de IPORT.TXT (utilize para esta operação utilitários do tipo WordPad ou NotePad), com o seguinte conteúdo:

Observe que: 1- O primeiro RM é o usuário, o segundo é a senha e ORCL é o alias que aponta para a instância que se quer importar a base. 2-

O

caminho

especificado

na

linha

FILE

=

C:\CorporeRM\Dados\EXEMPLOORACLE.DMP, é o local onde se encontra o arquivo EXEMPLOORACLE.DMP que será importado. 3- O caminho especificado na linha LOG = C:\CorporeRM\Dados\IMPORT.TXT, é o local onde será criado o arquivo de log da importação.

Importar a Base Através do Menu Iniciar | Programas, Acesse o "Command Prompt".No "Command Prompt" digite o seguinte comando: IMP Parfile = C:\Temp\IMPORT.txt Onde o caminho deve corresponder ao caminho onde foi criado o arquivo IMPORT.txt Quando acabar de importar os dados rode o script acesso.sql para que seja concedida as devidas permissões dos usuários do Banco as tabelas.

TOTVS-2011 – Let’s Share

119

No SQL Plus, execute o script de Permissão de Acesso para Usuários. Digite: @C:\CORPORERM\DADOS\ACESSO.SQL (Onde o caminho digitado deve ser o caminho onde foram instalados os arquivos para geração de Base de Dados) Tecle Enter, aguarde até finalizar a execução do Script, feche o Log e digite SPOOL OFF

A base estará pronta para uso. Existe um outro processo de importação chamado de Oracle data pump que deve ser realizado da seguinte maneira. copiar o arquivo dmp para a pasta dpdump do oracle Exemplo: C:\oracle\product\10.2.0\admin\ORCL1\dpdump Acesse o prompt de comando e execute o seguinte comando. impdp dumpfile= logfile= schemas=rm DICA: para saber se o arquivo é um Dump criado pelo Expdp ou pelo Exp basta executar no DOS o comando Type no arquivo. Sintaxe: Type more TOTVS-2011 – Let’s Share

120

Exemplo: Type c:\rm.dmp | more Se for um arquivo exportado pelo Exp ele trará no cabeçalho a versão do Oracle em que foi realizado o export Se for um arquivo exportado pelo Expdp ele trará o cabeçalho código binário (ilegivel) No caso de existirem vários dumps, geralmente em casos de bases muito grandes utilize os seguintes procedimentos: No exemplo abaixo o nome da instancia era RM7 1-logar com o usuário SYSTEM no SQL Plus (Criação de diretórios) CREATE DIRECTORY datadir1 AS 'E:\oracle\product\10.2.0\oradata\RM7'; CREATE DIRECTORY datadir2 AS 'E:\oracle\product\10.2.0\oradata\RM7'; CREATE DIRECTORY datadir3 AS 'E:\oracle\product\10.2.0\oradata\RM7';

2-Permissão para o usuário GRANT READ,WRITE ON DIRECTORY datadir1 TO RM; GRANT READ,WRITE ON DIRECTORY datadir2 TO RM; GRANT READ,WRITE ON DIRECTORY datadir3 TO RM;

3-Copiar

os

arquivos

de

Dump

para

o

diretorio

E:\oracle\product\10.2.0\oradata\RM7' 4-No

DOS

digitar

:

impdp

rm/rm

SCHEMAS=RM

DUMPFILE=datadir1:dp1.dmp,datadir2:dp2.dmp,datadir3:dmp logfile=datadir1:logimpdp.log

Scripts de criação de usuários Oracle:

TOTVS-2011 – Let’s Share

121

Após criar a instância você deverá se conectar a base com o usuário SYSTEM e executar o script para criação dos usuário rm e SYSDBA.

CREATE USER RM IDENTIFIED BY RM DEFAULT TABLESPACE RM_DADOS TEMPORARY TABLESPACE RM_TMP; \\ Cria no BD um login RM de senha RM

CREATE USER SYSDBA IDENTIFIED BY masterkey DEFAULT TABLESPACE RM_DADOS TEMPORARY TABLESPACE RM_TMP; \\ Cria login SYSDBA de senha MASTERKEY

CREATE ROLE ACESSO_RM;

GRANT CONNECT,DBA,RESOURCE TO RM; \\ Dá ao RM permissão total as tabelas

GRANT CONNECT, RESOURCE TO ACESSO_RM;

GRANT CONNECT,RESOURCE,ACESSO_RM TO SYSDBA; \\ Estabelecendo permissões ao SYSDBA

ALTER

USER SYSDBA

DEFAULT ROLE ALL;

Verificar versão do Oracle Para verificar a versão do Oracle basta executar o select abaixo. SELECT VERSION FROM V$INSTANCE Verificação dos parâmetros no Oracle TOTVS-2011 – Let’s Share

122

No padrão corpore a linguagem padrão para o SGBD Oracle é o NLS_Lang WE8ISO8859P1. Certifique que a linguagem do Oracle da estação esteja igual a do servidor. Para isso, execute na estação a seguinte consulta: Select * from nls_database_parameters (irá listar a linguagem do servidor) Select * from nls_session_parameters (irá listar a linguagem da estação)

No caso de estarem diferentes do padrão, siga os passos do exemplo abaixo: Na instalação do Oracle o idioma escolhido foi brazilian e deveria ser american na estação, conforme o servidor. Os seguintes procedimentos deverão ser executados na estação: •

Ir no iniciar/executar, digitar regedit e teclar ok.



Apertar a tecla F3 e mandar localizar NLS_LANG



Todas as chaves NLS_LANG que estão como Brazilian... deverão ser alterada para AMERICAN_AMERICA.WE8ISO8859P1



Ir teclando F3 até terminar todas as NLS_LANG.



COMANDOS ÚTEIS ORACLE Abaixo alguns comandos úteis na administração de bases Oracle.

TOTVS-2011 – Let’s Share

123

-- VERIFICA INSTANCIA (IDENTIFICAR NOME DA INSTANCIA E INFORMAÇÕES DA MESMA) SELECT * FROM GLOBAL_NAME; SELECT * FROM V$INSTANCE; --VERSAO DO ORACLE (VERIFICAR QUAL É A VERSAO DO ORACLE) SELECT VERSION FROM V$INSTANCE -- VERIFICAR QUAIS SÃO OS USUÁRIOS DO SISTEMA (VERIFICAR TODOS OS USUÁRIOS EXISTENTES) SELECT * FROM DBA_USERS -- CONTA OBJETOS DO SCHEMA (CONTA E LISTA TODOS OS TIPOS DE OBJETOS COM UM OWNER ESPECÍFICO) SELECT COUNT(OBJECT_TYPE), OBJECT_TYPE FROM DBA_OBJECTS WHERE OWNER LIKE 'RM%' GROUP BY OBJECT_TYPE; SPOOL OFF -- VERIFICA ATRIBUTOS DO USUÁRIO (ATRIBUTOS GERAIS DE USUÁRIOS) SELECT * FROM DBA_USERS WHERE USERNAME LIKE 'RM%'; SELECT * FROM DBA_TAB_PRIVS WHERE GRANTOR LIKE 'RM%'; -- VERIFICA PREVILEGIOS DO USUÁRIO SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE LIKE 'RM%'; SELECT * FROM DBA_ROLE_PRIVS WHERE GRANTEE LIKE 'RM%'; -- DESATIVA USUÁRIO / ATIVA ALTER USER USER RM ACCOUNT LOCK; ALTER USER USER RM ACCOUNT UNLOCK; ALTER USER USER RM PASSWORD EXPIRE; -- VERIFICA STATUS DA CONTA SELECT USERNAME, ACCOUNT_STATUS FROM DBA_USERS -- VERIFICAR SE TEM ALGUM USUÁRIO USANDO O SISTEMA (BOM CASO DESEJE PARAR O SERVICO DO ORACLE SERVER) SELECT SADDR, SID, USERNAME, LOGON_TIME, STATUS, OSUSER, MACHINE, PROGRAM FROM V$SESSION; -- VERIFICA PREVILEGIOS DE ROLE SELECT * FROM DBA_ROLE_PRIVS; TOTVS-2011 – Let’s Share

124

-- CONTA OBJETOS DO SCHEMA SELECT COUNT(OBJECT_TYPE), OBJECT_TYPE FROM DBA_OBJECTS GROUP BY OBJECT_TYPE; -- CONTA OBJETOS DE UM SCHEMA ESPECÍFICO SELECT COUNT(OBJECT_TYPE), OBJECT_TYPE FROM DBA_OBJECTS WHERE OWNER LIKE 'RM%' GROUP BY OBJECT_TYPE; -- CONTA OBJETOS INVALIDOS SELECT COUNT (*) FROM DBA_OBJECTS WHERE STATUS='INVALID' AND OWNER LIKE 'RM%'; -- VERIFICA OBJETOS INVALIDOS SELECT OBJECT_TYPE, OBJECT_NAME, STATUS FROM DBA_OBJECTS WHERE STATUS='INVALID' AND OWNER LIKE 'RM%'; -- GERA SCRIPTS DOS OBJETOS INVALIDOS SELECT 'ALTER'||' '|| OBJECT_TYPE ||' '||OWNER ||'.'|| OBJECT_NAME || ' COMPILE;' FROM DBA_OBJECTS WHERE STATUS='INVALID' AND OWNER LIKE 'RM%'; -- VERIFICA AS ROLES RM SELECT * FROM DBA_ROLES WHERE ROLE LIKE '%RM%'; SELECT * FROM DBA_SYS_PRIVS WHERE LIKE '%RM%'; --ALTERAR SENHA DE USUARIO ALTER USER USER RM IDENTIFIED BY 'NOVA_SENHA'; --PROPRIEDADES DO SERVER (lANGUAGE, CHARACTER SET E ETC..) SELECT * FROM NLS_DATABASE_PARAMETERS --PROPRIEDADES DA SESSAO (lANGUAGE, CHARACTER SET E ETC..) SELECT * FROM NLS_SESSION_PARAMETERS --MOSTRA INFORMÇÕES GERAIS DA PARAMETRIZAÇÃO (NÃO FUNCIONA NO SQL TOOLS) SHOW PARAMETERS TOTVS-2011 – Let’s Share

125

--VERIFICAR TRIGGERS NA BASE SELECT * FROM DBA_TRIGGERS WHERE TABLE_OWNER='RM' --VARIAVEIS DE AMBIENTE CONN [email protected] SPOOL C:\LOGS SET ECHO ON SET TIMING ON SET LINES 1000 SET SQLBL ON ALTER SESSION SET NLS_DATE_FORMAT = 'DD/MM/YYYY HH24:MI:SS'; SELECT SYSDATE FROM DUAL; SHOW USER

Segurança no Corpore RM Alterando a senha do usuário RM Para se alterar a senha do usuário RM, é necessário seguir a seguinte ordem: •

Tire um backup do banco de dados



Logar na aplicação como “mestre” (usuário supervisor)



Acessar a opção: Cadastros / Segurança / Códigos de Acesso



Alterar os campos Senha: e Confirmação de Senha: para a futura senha do usuário de banco RM.



Alterar no banco a senha do usuário RM.

Alterando a senha do usuário SYSDBA A DLL de login permite ao cliente escolher um usuário diferente do SYSDBA para realizar a conexão com o banco de dados de modo a obter os parâmetros de conexão para o usuário. Esta

escolha

se



através

da

existência

do

arquivo:

\CorporeRM\CorporeRM.ini, que deve ter o seguinte formato: TOTVS-2011 – Let’s Share

126

[LOGIN] DBUSERNAME=usuario DBPASSWORD=senha Assim, a DLL procurará pela existência deste arquivo. Caso ele exista, ao invés do SYSDBA/masterkey, serão utilizados os parâmetros de conexão informados (usuário/senha). Mas essa modificação não é necessária e nem recomendada pela TOTVS, tendo em vista que este usuário só tem permissão de leitura nas tabelas globais.

BDE Administrator: O BDE Administrator é um engine ou programa que atua como uma interface entre o SGDB e o Aplicativo, ou seja é através deste programa que serão configuradas todas as propriedades para se conectar o aplicativo usado (ex: Softwares da RM Sistemas) a uma base de dados qualquer (ex:Banco de Dados contido no SQL Server). Caso você não saiba onde encontrar esta ferramenta, ela se encontra no painel de controle de seu sistema operacional. Caso não tenha o BDE instalado, será necessário sua instalação para conseguir conectar sua aplicação ao banco de dados.

Na página Database do BDE Administrator estão os aliases para os Banco de Dados disponíveis. E a página Configuration, exibe e permite que seja configurado os drivers instalados usados pelo BDE para gerenciar as tabelas. TOTVS-2011 – Let’s Share

127

1 - Configurando o BDE para acessar o SQL Server: Inicie o BDE “Administrator” - Lembre-se, ele se encontra no Painel de Controle.Utilize a opção “Object” e após em “New”. Selecione o nome do driver respectivo ao Banco que você deseja trabalhar. Neste caso, o SQL Server, seu driver é o MSSQL.

Agora informaremos um nome para nosso alias. Por Padrão, bases que serão utilizadas por sistemas do Corpore RM devem ser iniciados com o nome “CoporeRM” . Após nomeado, passaremos a configurar o alias criado: •

Altere o campo “Server Name” para o nome da maquina onde se encontra o banco de dados restaurado.



Altere o campo “Database Name” para o nome do banco de dados em questão criado no SGDB do SQL Server já restaurado.



Preencha o campo “Host Name” com o nome da sua maquina.



Preencha o campo “User Name” com o nome de um usuário com acesso para este banco de dados. (Por padrão usamos o nome “rm” ou “sysdba”).

Veja no exemplo abaixo como ficaria:

TOTVS-2011 – Let’s Share

128

Após estes preenchimentos, vamos testar a conexão com o banco: Primeiramente, salve estas alterações pelo ícone

, localizado na parte superior do BDE Administrator,

e após clique, 2 vezes sobre o alias criado, o BDE solicitará uma senha para executar tal conexão, por padrões, para o usuário “rm” deve-se usar a senha “rm” e para o usuário “sysdba” deve-se usar a senha “masterkey”:

Caso a conexão seja bem sucedida, após digitar a senha e clicar em “OK” o sistema apresentara os dados relativos a este alias em negrito:

TOTVS-2011 – Let’s Share

129

CONFIGURANDO O BDE PARA ACESSAR O ORACLE Inicie o BDE “Administrator” - Lembre-se, ele se encontra no Painel de Controle. Utilize a opção “Object” e após em “New”. Selecione o nome do driver respectivo ao Banco que você deseja trabalhar. Neste caso, o SQL Server, seu driver é o Oracle.

Agora informaremos um nome para nosso alias. Por Padrão, bases que serão utilizadas por sistemas do Corpore RM devem ser iniciados com o nome “CoporeRM” .Após nomeado, passaremos a configurar o alias criado: •

Altere o campo “Server Name” para o nome do alias que aponta para a instancia pré configurado no Net Manager.



Preencha o campo “User Name” com o nome de um usuário com acesso para este banco de dados. (Por padrão usamos o nome “rm” ou “sysdba”).Veja no exemplo abaixo como ficaria:

TOTVS-2011 – Let’s Share

130

Salve estas alterações pelo ícone

, localizado na parte superior do BDE

Administrator, e após clique, 2 vezes sobre o alias criado, o BDE solicitará uma senha para executar tal conexão, por padrões, para o usuário “rm” deve-se usar a senha “rm” e para o usuário “sysdba” deve-se usar a senha “masterkey”.Pronto, seu alias esta pronto e testado, agora basta executar a aplicação RM e selecionar este alias, conforme representado na tela a seguir:

PARAMETRIZAÇÃO DO BDE Na guia Database, ainda no alias CorporeRM: •

Type – selecionando o banco de dados (ORACLE)



"BLOB" (Binary Large OBject), recipiente para campos de origem diversas,

podendo ser até mesmo objetos definidos pelo próprio usuário. Num BLOB pode-se guardar imagem, som, textos longos, textos longos formatados. Este parâmetro pode comprometer a performance do sistema, por isso sugerimos que seja aumentado gradativamente. TOTVS-2011 – Let’s Share

131

O Blob Size – Limita o tamanho que a área temporária utilizada na memória (buffer) pode chegar. Setando este parâmetro para 64, significa que sua aplicação pode chegar a um blob de 64 K. >32 e 64 e < 65536. Sugerido inicialmente: 128 Iremos destacar alguns parâmetros que podem comprometer a performance do sistema e prevenir alguns erros: Na guia Configuration: Drivers/Native/oracle •

DLL32 - deverá ser parametrizada com SQLORA8.DLL (favor verificar a

versão desta DLL se é a 5.2.0.2, na guia Database , basta clicar com o botâo direito do mouse no CorporeRM, ir em Version Information e conferir a versão) •

VENDOR INIT - OCI.DLL

System/Init •

Langdriver – Driver da linguagem do sistema apropriado para a versão do

Windows do seu país: 'ascii' ANSI Local Share - False •

Memsize – Máximo de memória que o BDE poderá utilizar. Mínimo 16 MB,

máximo 205 MB. Sugerimos que coloque o valor da memória da estação, desde que seja menor que 205, se for maior, coloque 205. •

Maxfilehandles – Máximo de arquivos concorrentes que o BDE poderá

suportar, o valor alto dará impacto a uma boa performance no sistema, porém utilizará mais recurso do sistema operacional. Dever ser usado somente valor inteiro de 5 a 4096. OBS: È apresentado no final desta apostila os principais erros apresentados pelo BDE Administrator.

TOTVS-2011 – Let’s Share

132

CONVERSÃO DA BASE DE DADOS VERSÃO 11.20 Antes de iniciar o processo de conversão certifique-se dos seguintes requisitos. 1- Cópias de Segurança da base de dados. 2- Realizar o backup da base de produção e restaurar a mesma em um ambiente de teste, visando primeiramente realizar uma conversão neste ambiente de testes. 3- Caso possua customizações verificar junto ao Dep. De Customizações da TOTVS se as mesmas possuem versões compatíveis com a nova versão. 4- Criar um alias no BDE apontando para o ambiente de teste. 5- Instale o TOTVS Conversor da versão 11.20

1. Execute o TOTVS Conversor para continuar o processo selecione o botão Avançar

Fig.1-Tela inicial do processo de conversão

TOTVS-2011 – Let’s Share

133

2. É exibido o aviso abaixo.

Fig.2 - Esta tela remete a importância da análise prévia do documento de portabilidade da versão a ser utilizada. Analisando os requisitos de Hardware e software para a versão você estará garantindo maior confiabilidade ao seu ambiente de produção. 3. Ambiente 3 camadas

TOTVS-2011 – Let’s Share

134

Fig.3 - A tela acima possibilita o download do documento explicativo sobre a arquitetura 3 camadas que é uma recomendação da TOTVS desde a versão 10.70 4. Usuário e senha

Fig. 4 - A tela acima solicita o usuário e senha a serem utilizados para conversão. Por padrão orientamos que seja utilizado o usuário rm e sua respectiva senha. 5. Usuários conectados

Fig.5 - Esta tela apresenta os usuários conectados a base de dados. Caso não existam usuários conectados de fato será necessário liberar estes registros da tabela GLOGIN. TOTVS-2011 – Let’s Share

135

Para liberar os logins você deverá realizar o seguinte comando DELETE FROM GLOGIN e reiniciar o processo. 6. Aviso

Fig.6 - O aviso acima informa alguns cuidados necessários a uma boa conversão.

7.Iniciar conversão

TOTVS-2011 – Let’s Share

136

Fig. 7- Esta tela permite o inicio do processo de conversão. Através desta etapa você poderá selecionar As informações sobre local de gravação do log de conversão e se deseja ou não atualizar as estatísticas da base de dados durante a conversão. Ao selecionar a atualização de estatísticas o processo de conversão terá um acréscimo de tempo de execução, porém este procedimento é recomendado para prover melhor performance da base Conversão novo Modelo de BackOffice para clientes do Segmento de Projetos.

8. Conversão novo modelo de Backoffice clientes segmento de Projetos

TOTVS-2011 – Let’s Share

137

Fig.8 - Esta tela será apresentado aos clientes que possuírem cadastros no módulo TOTVS construção e projetos. O cliente que JÁ conhece o novo modelo de backoffice e confirma que sua empresa é do segmento de projetos deverá selecionar a opção OK, caso o cliente seja do Segmento porém não conhece sobre o novo modelo de backoffice o mesmo deverá se informar antes de continuar a conversão. Esta tela não deverá ser apresentada aos clientes que NÃO forem do segmento de projetos. Caso isso ocorra, apesar do cliente não ser do segmento ele possui cadastros de projetos em sua base (TABELA MPRJ) , neste caso o cliente deve verificar esta situação e caso não utilize o segmento realizar a eliminação destes dados de sua base. 9. Customizações

Fig.9 - Caso o cliente possua customizações deverá entrar em contato préviamente com o Dep. De customizações para avaliar se a sua customização está disponível na nova versão. Clicando em sim a conversão será interrompida e exibida a mensagem abaixo

TOTVS-2011 – Let’s Share

138

Fig.10 10. License Server

Fig.11 - Nesta versão o uso do license server se torna obrigatório. Para maiores

informações

você

deve

verificar

o

documento

existente

em

c:totvs\totvs\CorporeRM\Scripts

11. Consistência Saldus

Fig.12-Caso seja exibida esta mensagem a responsabilidade pela solução deste problema é a equipe do TOTVS Gestão Contábil(RM Saldus) devido a inconsistência da rotina de conciliação de lançamentos contábeis,. TOTVS-2011 – Let’s Share

139

A demanda será transferida a equipe até que seja disponibilizada documentação padrão aos clientes para solução do problema. Após a execução dessa rotina, o cliente tem apenas 7 dias para efetuar a conversão da base para a versão 11.20.

Informações Adicionais Caso existam dúvidas no processo o cliente deverá entrar em contato com a equipe de banco de dados do suporte TOTVS.

PROCEDIMENTOS DE ANÁLISE E MANUTENÇÃO DA BASE DE DADOS.

SQL Server PROCEDIMENTOS PARA EXECUTAR O PROFILER DO SQL SERVER 2005. Menu Programas  Microsoft SQL Server 2005  Performance Tools  SQL Server Profiler conforme figura abaixo.

TOTVS-2011 – Let’s Share

140

Será aberta a janela principal do Profiler. Clicar no ícone New Trace conforme figura abaixo

Será aberta a janela de conexão no servidor conforme figura abaixo:

Em SQL Server informar o nome do servidor que se encontra o banco de dados Caso seja Administrador da máquina poderá utilizar “Windows authentication” caso contrario utilizar “SQL Server authentication” e logar com o usuário SA. Será exibida a janela abaixo, solicitando o nome para o Arquivo de trace (trace name), neste dever ser colocado qualquer nome conforme tela abaixo.

TOTVS-2011 – Let’s Share

141

Selecionar a guia “orelha” Events Selection, marque as opções “Show all events” e “Show all coluns” para que possa ter uma melhor visualização dos eventos, na coluna events marque os eventos que você deseja que sejam gravados a serem gravados no log a ser gerado conforme tela abaixo.Geralmente os eventos a serem adicionados são: Errors and Warnings,Stored Procedure,Transactions e TSQL

Obs.: O eventos (Security Audit,Sessions,Stored Procedures,TSQL) por padrão vem marcados podendo manter os mesmos.

TOTVS-2011 – Let’s Share

142

Selecionar o botão Column Filters... . Nesta janela será configurado os “critérios” para realizar a monitoração do log, desta forma podemos monitorar isoladamente o que uma determinada estação esta realizando no banco de dados especificado, deverá ser configurado os critérios DataBaseName e HostName. Em DataBaseName expandir ( clicar no sinal de + “mais” ao lado deste critério) e no item like adicionar o nome do banco de dados Ex: EXEMPLO, CORPORE. Conforme janela abaixo. Obs.: Caso não saiba o nome do banco de dados, este poderá ser verificado na propriedade DATABASE NAME do alias no BDE.

Conforme citado acima o outro critério a ser configurado será o HostName, neste deverá ser adicionado o nome da máquina na rede Ex: SERVER, STENOVATO, conforme janela abaixo :

TOTVS-2011 – Let’s Share

143

Após este procedimento, clicar no botão OK e logo em seguida no botão RUN, o profiler irá começar a gravar todas as transações enviadas para o banco de dados, simular o erro no aplicativo logo após clicar no botão STOP conforme janela abaixo

Logo após clicar na opção STOP , ir ao menu File  Save as  Trace File e informar um nome qualquer para o arquivo e clique no botão Salvar. Conforme janela a seguir.

TOTVS-2011 – Let’s Share

144

DBCC – Database Consistency Cheker

TOTVS-2011 – Let’s Share

145

No SQL Server 2005, através da linguagem transacional, temos uma série de comando que podem ser de grande utilidade na manutenção de tabelas e índices. Entre os vários comando DBCC existentes, alguns merecem atenção maior quando falamos de otimização de consultas. Abaixo veremos quais são eles divididos por quatro categorias.

COMANDOS DE MANUTENÇÃO Comandos para manutenção preventiva ou corretiva no banco de dados: DBCC DBREINDEX Reconstrói os índices de uma tabela. Muito útil para manutenção de índices. DBCC DBREPAIR Apaga um banco corrompido. Use DROP DATABASE ao invés de DBCC DBREPAIR. DBCC INDEXDEFRAG Desfragmenta um ou mais índices de uma tabela. Melhora a performance do índice. Fonte: PICHILIANI 2.8.2 Comandos Gerais Possuem diversas funcionalidades, como alocação de tabela na memória, ajuda sobre outros comandos DBCC e ‘pinagem’ de tabela: DBCC HELP Retorna a sintaxe de algum outro comando DBCC

TOTVS-2011 – Let’s Share

146

DBCC PINTABLE ‘Pina’ a tabela , ou seja , faz o SQL Server não liberar da memória algumas informações de uma tabela. Se utilizado com cuidado , há ganho de performance. DBCC UNPINTABLE Faz o SQL Server liberar da memórias algumas informações de uma tabela que foi ‘pinada’ com o comando DBCC PINTABLE. DBCC ROWLOCK Simplesmente incluída por compatibilidade. A funcionalidade que este comando proporcionava já é embutida automaticamente no SQL Server 2000 DBCC TRACEON Habilita um flag de trace que é necessário para outros comandos DBCC. DBCC TRACEOFF Desabilita um flag de trace setado como comando DBCC TRACEON

COMANDOS DE STATUS Fazem algumas verificações de algumas configurações do banco de dados:

DBCC OPENTRAN Mostra informações sobre a transação mais velha ( mais tempo executando ) em um banco de dados.

TOTVS-2011 – Let’s Share

147

DBCC SHOWCONTIG Mostra várias informações sobre os índices de uma tabela , inclusive o nível de fragmentação do índice. DBCC SHOW_STATISTICS Mostra as informações sobre as estatísticas de uma tabela. Estatísticas são muito importantes para a melhora de performance. DBCC TRACESTATUS Mostra a situação dos flags de trace que foram setados com o comando DBCC TRACEON

COMANDOS DE VALIDAÇÃO Checagem de alguns objetos do banco de dados como tabelas, valores das colunas IDENTITY e constraints:

DBCC TRACEON. Estes traces controlam configurações internas do SQL Server DBCC CHECKALLOC Verifica o espaço para as estruturas de alocações internas do SQL Server. Permite alguns reparos em caso de erro. DBCC CHECKCATALOG Somente checa a consistência de algumas tabelas de sistema do SQL Server ( que compõem o Database Catalog ). Não faz reparos DBCC CHECKCONSTRAINTS Checa os relacionamentos de uma determinada constraint no banco de dados. Não faz reparos. TOTVS-2011 – Let’s Share

148

DBCC CHECKDB Verifica erros de alocação e de consistência em vários objetos do banco de dados. Pode efetuar reparos importantes em caso de erro. DBCC CHECKFILEGROUP Muito parecido com o DBCC CHECKDB , porém só faz a verificação no nível do filegroup de um database. Não faz reparos DBCC CHECKIDENT Chega e corrige , caso necessário , valores de colunas que possuem a propriedade IDENTITY. Pode inclusive resetar o valor inicial ( seed ) da coluna que possui a propriedade IDENTITY. DBCC CHECKTABLE Checa e corrige a integridade das páginas de dados , índices , ntext , text e image para uma tabela ou uma indexed view DBCC NEWALLOC Idêntica à DBCC CHECKALLOC. Foi mantida por compatibilidade.

SENTENÇAS SQL

DML - Linguagem de Manipulação de Dados Primeiro há os elementos da DML (Data Manipulation Language). A DML é um subconjunto da linguagem usada para selecionar, inserir, atualizar e apagar dados. •

SELECT

- é o comumente mais usado do DML, comanda e permite ao usuário

especificar uma query como uma descrição do resultado desejado. A questão não especifica como os resultados deveriam ser localizados. TOTVS-2011 – Let’s Share

149



INSERT - é usada para inserir dados em uma tabela existente.



UPDATE - para mudar os valores de dados em uma fila de tabela existente.



DELETE - permite remover filas existentes de uma tabela.

DDL - Linguagem de Definição de Dados O segundo grupo é a DDL (Data Definition Language). Uma DDL permite ao usuário definir tabelas novas e elementos associados. A maioria dos bancos de dados de SQL comerciais tem extensões proprietárias no DDL. Os comandos básicos de uma DDL são: •

CREATE - cria um objeto (uma Tabela, por exemplo) dentro da base de dados.



DROP - apaga um objeto do banco de dados.

DCL - Linguagem de Controle de Dados

O terceiro grupo é o DCL (Data Control Language). DCL controla os aspectos de autorização de dados e licenças de usuários para controlar quem tem acesso para ver ou manipular dados dentro do banco de dados.Os comandos básicos de uma DCL são: •

GRANT - autoriza ao usuário executar ou setar operações.



REVOKE - remove ou restringe a capacidade de um usuário de executar operações.



BEGIN TRAN - (ou START TRANSACTION, dependendo do dialeto SQL) pode ser usado

para marcar o começo de uma transação de banco de dados que pode ser completada ou não. •

COMMIT - envia todos os dados das mudanças permanentemente.

TOTVS-2011 – Let’s Share

150



ROLLBACK - faz com que as mudanças nos dados existentes desde que o último COMMIT

ou ROLLBACK sejam descartadas.

Consultando Dados através de Sentenças SQL pelo SQL Server: 1º - Na Barra superior do SQL Server clique sobre opção “New Query”:

OBS: Usando esta opção será necessário na janela aberta para execução de sentenças, informar a Base de Dados a ser consultada:

Para executar uma sentença basta após escrevê-la, clicar na opção “Execute” localizada na parte superior da janela:

TOTVS-2011 – Let’s Share

151

Consultando Dados através de Sentenças SQL pelo ORACLE: 1º - Faça login na ferramenta de edição de consulta. Neste caso, vamos utilizar a ferramenta SQL Tools, que não é a ferramenta padrão da Oracle, mas possui uma interface gráfica mais amigável. Abaixo segue a tela de login, onde o se deve informar o usuário de banco de dados a ser utilizado com sua senha e nome do TNSNAMES pré configurado no NET MANAGER.

2º - Automaticamente uma nova query já é iniciada, bastando apenas o usuário digitar a consulta que deseja executar e clicar no botão de ação “Execute”

para obter o

resultado.

TOTVS-2011 – Let’s Share

152

Propriedades de uma tabela no SQL Server Para listar todas as informações de uma tabela, afim de verificar como por exemplo os campos que aquela tabela possui, os tipos desses campos, a chave primaria, as constraints (chaves estrangeiras), indices e etc no SQL Server, deve-se digitar no query editor o seguinte comando: SP_HELP “Nome da tabela”

TOTVS-2011 – Let’s Share

153

OBS: Um atalho para esse procedimento é digitar apenas o nome da tabela, selecionála e pressionar as teclas ALT+F1.

Cláusulas As cláusulas são condições de modificação utilizadas para definir os dados que deseja selecionar ou modificar em uma consulta. SELECT - Utilizada para especificar as colunas que se vai selecionar os registros. FROM - Utilizada para especificar a tabela que se vai selecionar os registros. DISTINCT - Define a visualização somente dos campos com valores distintos, sem repetição. WHERE - Utilizada para especificar as condições que devem reunir os registros que serão selecionados. GROUP BY - Descrição – Utilizada para separar os registros selecionados em grupos específicos. HAVING - Utilizada para expressar a condição que deve satisfazer cada grupo. TOTVS-2011 – Let’s Share

154

ORDER BY - Utilizada para ordenar os registros selecionados com uma ordem especifica. UNION - Utilizada para unir duas ou mais colunas. Operadores Lógicos AND - correspondente ao “E” lógico. Avalia as condições e devolve um valor verdadeiro caso ambos seja corretos. OR - correspondente ao “OU” lógico. Avalia as condições e devolve um valor verdadeiro se algum seja correto. NOT - correspondente a Negação lógica. Devolve o valor contrário da expressão. Operadores de Comparação < - correspondente a “Menor que” > - correspondente a “Maior que” - correspondente a “Diferente de” = - Correspondente a “Maior ou Igual que” = - Correspondente a “Igual que” BETWEEN - Utilizado para especificar um intervalo de valores. LIKE - Utilizado na comparação de um modelo e para especificar registros de um banco de dados. Funções de agrupamento As funções de agrupamento se usam dentro de uma cláusula “SELECT” em grupos de registros para devolver um único valor que se aplica a um grupo de registros. Elas ignoram valores nulos. TOTVS-2011 – Let’s Share

155

AVG - Utilizado para calcular a media dos valores de um campo determinado. COUNT - Utilizado para devolver o número de registros da seleção. SUM - Utilizado para devolver a soma de todos os valores de um campo determinado. MAX- Utilizado para devolver o valor mais alto de um campo especificado. MIN- Utilizado para devolver o valor mais baixo de um campo especificado. Em sua forma mais simples uma sentença SELECT precisa incluir o seguinte:

Sintaxe:

SELECT

é uma lista de uma ou mais colunas -obrigatório DISTINCT

suprime duplicações. -opcional

*

seleciona todas as colunas -opcional

column alias

seleciona o nome da coluna -opcional dá um nome diferente (apelido) à coluna selecionada -

opcional FROM table especifica a(s) tabela(s) contendo as colunas -obrigatório WHERE

restringe condições apresentadas - opcional

Expressões aritméticas: Algumas vezes pode ser necessário modificar a maneira como os dados serão apresentados, fazendo cálculos. Isto é possível usando expressões aritméticas. Uma expressão aritmética pode conter nomes de colunas, valores numéricos constantes e operadores aritméticos.

TOTVS-2011 – Let’s Share

156

A tabela acima lista os operadores aritméticos disponíveis no SQL. Eles podem ser usados em qualquer cláusula de uma sentença SQL exceto na cláusula FROM. Se uma expressão aritmética contém mais de um operador, multiplicação e divisão são avaliados primeiro. Se os operadores dentro da expressão possuem a mesma prioridade, então a avaliação é feita da esquerda para a direita. Usamos parênteses para forçar que a expressão dentro dos mesmos seja avaliada primeiro.

Exemplificando algumas Sentenças SQL: SELECTS SQL: SELECT * FROM PFUNC Na sentença SQL acima, estou pedindo para selecionar (visualizar) todos (para isto usamos ‘*’) os registros contindos na tabela “PFUNC” :

TOTVS-2011 – Let’s Share

157

Ou apenas a quantidade de registros contidos nesta Tabela: SQL: SELECT COUNT (*) FROM PFUNC

TOTVS-2011 – Let’s Share

158

Selecionar todos os códigos de situação existentes na tabela de funcionários sem repetição: SQL: SELECT DISTINCT CODSITUACAO FROM PFUNC

Selecionar todos os nomes de funcionários que tenham data de demissão diferente de nula (preenchida). SQL: SELECT NOME, DATAADMISSAO ADMISSAO FROM PFUNC TOTVS-2011 – Let’s Share

159

Selecionar todos os nomes de funcionários que tenham data de demissão diferente de nula (preenchida). SQL: SELECT NOME, DATADEMISSAO FROM PFUNC WHERE DATADEMISSAO IS NOT NULL

TOTVS-2011 – Let’s Share

160

Poderiamos tambem selecionar por exemplo, apenas o Nome e Salario de funcionarios com salario menor que

R$ 500,00:

SQL: SELECT NOME, SALARIO FROM PFUNC WHERE SALARIO < '500.00'

Ordenar todos os funcionários pelo valor de seu respectivo salário:

SQL: SELECT NOME, SALARIO, *

FROM PFUNC WHERE SALARIO < '500.00'

ORDER BY SALARIO

TOTVS-2011 – Let’s Share

161

Selecionar todos os nomes e códigos de sessão dos funcionários, exceto os da sessão 01.01:

SQL: SELECT NOME, CODSECAO FROM PFUNC WHERE CODSECAO '01.01'

TOTVS-2011 – Let’s Share

162

Selecionar todos os nomes e salários dos funcionários, com salários iguais a R$50,00, R$ 700,00, R$800,00, e R$900,00. SQL: SELECT NOME, SALARIO FROM PFUNC WHERE SALARIO IN (50, 700, 800, 900)

Selecionar o total (soma) de salários de todos os funcionários da tabela.

SQL: SELECT SUM (SALARIO) FROM PFUNC

TOTVS-2011 – Let’s Share

163

Selecionar a média dos salários não repetidos da tabela. SQL: SELECT AVG (DISTINCT SALARIO) FROM PFUNC

Selecionar o Funcionário com maior valor de Salário: SQL: SELECT MAX(salario) FROM PFUNC

Selecionar o nome dos funcionários adicionando 400,00 no salário de todos.

TOTVS-2011 – Let’s Share

164

SQL: SELECT NOME, SALARIO + 400 FROM PFUNC

CONCATENAÇÃO: Selecionar o nome dos funcionários, unindo as colunas Rua e número. SQL: SELECT NOME, RUA + ',' + NUMERO FROM PPESSOA

Selecionar todos os nomes de funcionários iniciados com a letra ‘M’. SQL: SELECT NOME FROM PFUNC WHERE NOME LIKE 'M%' TOTVS-2011 – Let’s Share

165

Selecionar todos os nomes de funcionários exceto ‘Marias’. SQL: SELECT NOME FROM PFUNC WHERE NOME NOT LIKE 'MARIA_%'

Selecionar a média salarial de pessoas por seção. SQL: SELECT CODSECAO, AVG(SALARIO) FROM PFUNC GROUP BY CODSECAO

TOTVS-2011 – Let’s Share

166

Selecionar todos os registros da tabela PFUNC, apresentando somente as colunas com os nomes (em ordem alfabética. SQL: SELECT NOME FROM PFUNC ORDER BY NOME ASC

Selecionar o código da seção, a soma dos salários, o maior salário e o numero de funcionários, desde que o menor salário seja superior a 1000. SQL: SELECT PSECAO.CODIGO, SUM(SALARIO), MAX(SALARIO), COUNT(CHAPA) FROM PSECAO, PFUNC WHERE PSECAO.CODIGO = PFUNC.CODSECAO GROUP BY PSECAO.CODIGO HAVING MIN (SALARIO) >100 TOTVS-2011 – Let’s Share

167

Selecionar o nome de todos os dependentes dos funcionários, que nasceram em Betim e todos os nascidos em Salvador. SQL: SELECT CHAPA, NOME, LOCALNASCIMENTO FROM PFDEPEND WHERE LOCALNASCIMENTO LOCALNASCIMENTO

= FROM

'BETIM'

UNION

PFDEPEND

SELECT

WHERE

CHAPA,

NOME,

LOCALNASCIMENTO

=

'SALVADOR'

CONSULTAS COM JUNÇÃO

TOTVS-2011 – Let’s Share

168

A sintaxe é basicamente a mesma. A diferença está na utilização da cláusula WHERE, necessaria para fazer a ligação entre tabelas. É impressindivel que as colunas de ligação sejam realmente idênticas (conteúdo). A ligação entre tabelas é necessária sempre é necessároa sempre qie for preciso selecionar um “valor” de uma coluna, de uma tabela “pai” ou de uma tabela “filha” em relação a tabela principal de sua sentença SQL. Exemplo: Neste exemplo a tabela principal é a PFUNC e não temos o nome da filial fazendo parte de sua estrutura. O nome da filial está na tabela GFILIAL. Sendo assim, ligamos as colunas em que os conteudos sejam idênticos (fazem parte das chaves primárias e estrangeiras das tabelas envolvidas). A tabela PFUNC é filha da tabela GFILIAL, pois, a coluna CODFILIAL é chave primaria em GFILIAL, e, consequentimente, é chave estrangeira em PFUNC. SELECT GFILIAL.NOME, PFUNC.CHAPA FROM GFILIAL, PFUNC WHERE GFILIAL.CODCOLIGADA = PFUNC.CODCOLIGADA AND GFILIAL.CODFILIAL = PFUNC.CODFILIAL

OUTER JOINs TOTVS-2011 – Let’s Share

169

As consultas com OUTER JOINs produzem resultados contendo as colunas selecionadas de cada linha em uma tabela, mesmo que esta não tenha relação com um subconjunto de linhas de uma outra tabela. Ou seja tras as linhas que geralmente não obedecem a condição dp join. É necessário especificar o JOIN a ser executado. Existem 3 tipos: •

Um LEFT OUTER JOIN especifica todas as linhas da tabela da esquerda que não se encaixam na condição especificada (ON).



Um RIGHT OUTER JOIN especifica todas as linhas da tabela da direita que não se encaixam na condição especificada (ON).



Um FULL OUTER JOIN especifica todas as linhas das tabelas que não se encaixam na condição especificada (ON).

• Exemplo: Selecionar todos os nomes dos funcionarios e os nomes dos bancos de deposito de pagamento, somente para aqueles que possuem contas de pagamento cadastrada. SQL: SELECT P.NOME, B.NOME FROM PFUNC P LEFT OUTER JOIN GBANCO B ON P.CODBANCOPAGTO = B.NUMBANCO

TOTVS-2011 – Let’s Share

170

SUBQUERY

Para resolver esse problema, será necessário duas consultas: uma para encontrar quanto ganha Jones e uma segunda consulta que encontrará quem ganha mais que essa quantidade. É implementada uma consulta dentro da outra. A consulta interna ou subquery retorna um valor que é usado pela consulta principal. Usar uma subquery é o equivalente a execução de duas consultas sequenciais. Selecionar os funcionários que possuem o salario maior que a média de salarios da filial 2. SQL: SELECT NOME, SALARIO, (SELECT AVG(SALARIO) FROM PFUNC WHERE CODFILIAL = 2) MEDIA FROM PFUNC WHERE SALÁRIO > (SELECT AVG (SALARIO) FROM PFUNC WHERE CODFILIAL = 2)

TOTVS-2011 – Let’s Share

171

INSERT Adiciona uma nova linha na tabela de maneira que os campos correspondentes sejam de mesmo tipo.

Inserindo um novo funcionario na tabela de cadastro de pessoas. SQL: INSERT INTO PPESSOA (CODIGO, NOME) VALUES (9998, 'FRANCISCANA IBERLINDA')

OBS: Diferentemente da clausula SELECT a execução dos comandos DML “Inserte”, “Update” e “Delete” não apresenta campo algum como resultado, somente a mensagem: (1 row(s)

affected), que quer dizer que 1 registro foi

modificado, após sua execução.

UPDATE A função UPDATE modifica linha(s) existentes numa tabela, se especificada(s) a clausula WHERE foi atribuida, será feito um filtro para mofificar apenas esse restrito grupo. TOTVS-2011 – Let’s Share

172

Alterar todos os salarios de funcionarios que atualmente possuem salario menor que R$ 300,00, para R$ 310,00 SQL: UPDATE PFUNC SET SALARIO = '310.00' WHERE SALARIO < '300.00'

DELETE É possível remover linhas existentes em uma tabela usando a sentença DLETE.

A clausula WHERE indentifica as linhas a serem deletadas e é composta de nomes das colunas, expressões, constraints, subqueries e operadores de comparação. Todas as linhas da tabela são apagadas caso omitirmos a clausula WHERE. Deletando o funcionário criado na sentença INSERT.

TOTVS-2011 – Let’s Share

173

SQL: DELETE FROM PPESSOA WHERE NOME = 'FRANCISCANA IBERLINDA'

CREATE Crie tabelas para armazenar os dados executando a declaração CREATE TABLE. Esta declaração é uma das declarações da linguagem de definição de dados (DDL). Declarações DDL são um subconjunto das declarações SQL usadas para criar, modificar ou remover estruturas do banco de dados. Estas declarações tem um efeito imediato no banco de dados, e elas também gravam informações no dicionário de dados. Para criar uma tabela, um usuário deve ter privilégio para usar o CREATE TABLE e uma área de armazenamento para criar objetos.

Adicionando uma tabela de eventos adicionais no RM Labore contendo 5 campos de diferentes tipos e passando como chave primaria dessa tabela dois campos. SQL: CREATE TABLE PADICRESC ( CODCOLIGADA DCODCOLIGADA, CODEVENTO VARCHAR(4) NOT NULL, VALOR RMDVALOR2, FORMSELECAO VARCHAR(8), TOTVS-2011 – Let’s Share

174

APLICACAO VARCHAR(1), CONSTRAINT

PKPADICRESC

PRIMARY

KEY

(CODCOLIGADA,CODEVENTO))

ALTER TABLE Use a declaração ALTER TABLE para: • Adicionar uma coluna (PK, FK, etc). • Modificar uma coluna existente (PK, FK, etc). • Definir um valor default para uma nova coluna (PK, FK, etc).

Depois que criamos as tabelas, podemos precisar alterar a estrutura da tabela porque alguma coluna foi omitida ou a definição da coluna precisa ser alterada. Fazemos isto usando a declaração ALTER TABLE. Exemplo: Alterando o tipo de dado do campo NUMEROOFICIAL da tabela GBANCO.

TOTVS-2011 – Let’s Share

175

SQL: ALTER TABLE GBANCO ALTER COLUMN NUMEROOFICIAL VARCHAR(3) NOT NULL

Podemos adicionar colunas (PK, FK, etc) em uma tabela usando a declaração ALTER TABLE com a cláusula ADD

Exemplo: Adicionando um campo MOTIVO na tabela FHISTIMPRESSO do tipo VARCHAR de 200 posições. SQL: ALTER TABLE FHISTIMPRESSO ADD MOTIVO VARCHAR(200)

TOTVS-2011 – Let’s Share

176

Podemos deletar um campo (PK, FK, etc) de uma tabela usando a declaração ALTER TABLE com a cláusula DROP. Exemplo: Deletando a constraint (FK) FKZLOG_GUSUARIO da tabela ZLOG SQL: ALTER TABLE ZLOG DROP CONSTRAINT FKZLOG_GUSUARIO

DROP A declaração DROP TABLE remove a definição de uma tabela. Quando dropamos uma tabela, o banco de dados perde todos os dados da mesma e todos os índices e etc associados a ela, não sendo possível desfazer a operação.

Dropando a tabela de eventos adicionais criada anteriormente.

TOTVS-2011 – Let’s Share

177

SQL: DROP TABLE PADICRESC

GRANT O comando GRANT pertence ao grupo de definição de linguagem DCL (Linguagem de controle de dados) e serve para dar permissão de usuários a objetos no banco. Exemplo: Dar permissão ao usuário SYSDBA de selecionar, alterar e gravar dados na tabela de usuários da aplicação:

TOTVS-2011 – Let’s Share

178

REVOKE O comando REVOKE pertence ao grupo de definição de linguagem DCL (Linguagem de controle de dados) e serve para retirar permissão de usuários a objetos no banco. Exemplo: Retirar permissão ao usuário SYSDBA de selecionar, alterar e gravar dados na tabela de usuários da aplicação:

TOTVS-2011 – Let’s Share

179

BEGIN TRAN

Comando de linguagem DCL (Controle de dados) que marca o ponto inicial de uma transação local explícita. Exemplo: Ao executar um comando DML você pode realizar alterações na base que não poderão ser desfeitas, ao atribuir um ponto de início da transação você poderá executar este comando com possibilidade de retornar ao inicio da transação após a execução. BEGIN TRAN DELETE FROM GDIC

TOTVS-2011 – Let’s Share

180

Neste caso você deverá executar o commando BEGIN TRAN para delimitar o ponto de ínicio da transação, podem ser executados uma série de comandos após o BEGIN TRAN que só serão comitados após a execução do commando COMMIT.

ROLLBACK Comando de linguagem DCL (Controle de dados) que reverte uma transação explícita ou implícita ao começo da transação ou a um ponto de salvamento dentro da transação. O ROLLBACK TRANSACTION apaga todas as modificações de dados feitas desde o começo da transação ou até um ponto de salvamento. Ela também libera recursos mantidos pela transação. Exemplo: Desfazer exclusão de todos os registros do Dicionário de Dados do Corpore (GDIC).

TOTVS-2011 – Let’s Share

181

Obs: O comando rollback reverte informações a partir de um ponto de salvamento ou inicio da transação, sendo assim o comando não irá funcionar quando executado sem um ponto delimitado de inicio da transação. Ocorre o erro: Msg 3903, Level 16, State 1, Line 1 The

ROLLBACK

TRANSACTION

request

has

no

corresponding

BEGIN

TRANSACTION. Exemplo: Ao executar um comando DML você pode realizar alterações na base que não poderão ser desfeitas, ao atribuir um ponto de início da transação você poderá executar este comando com possibilidade de retornar ao inicio da transação após a execução. BEGIN TRAN DELETE FROM GDIC ROLLBACK

Após a execução do Rollback pode se verificar que os registros não foram deletados da base.

TOTVS-2011 – Let’s Share

182

Otimização de Consultas SQL O bom desempenho em consultas de bancos de dados vai além da estratégia de índices utilizada nas tabelas pertencentes à consulta. Questões como: projeto de bancos de dados, dimensionamento do hardware e estratégias de otimização são itens que afetam diretamente o tempo de resposta das consultas em geral. Este artigo propõe-se a discutir aspectos que transcendem a otimização de consultas de bancos de dados. Outras questões como: memória, processador, disco e subsistema de comunicação também podem se tornar fatores de gargalo e afetar o desempenho no nível do sistema. Entende-se por “gargalo” qualquer componente ou atividade que limita o desempenho do sistema. Veremos alguns desses fatores abaixo. Projeto Quando se projeta um banco de dados deve-se ter a certeza de que todas as funcionalidades serão fornecidas de maneira correta e com o menor tempo de resposta possível. Algumas questões de projeto até podem, mas não devem, ser resolvidas após a colocação do banco de dados em produção. Por exemplo, é possível decidir pela criação de constraint de check em uma determinada coluna de uma tabela do banco de dados após o sistema estar no ar. Porém, há questões de desempenho que são resultantes de um projeto de banco de dados ineficaz ou uma TOTVS-2011 – Let’s Share

183

modelagem de dados equivocada que tornam sua utilização uma tarefa quase impossível pelos altos tempos de resposta envolvidos. Nesses casos, a solução mais correta é a alteração da estrutura e um novo projeto de banco de dados. Contudo, a solução de reconstrução do projeto, além de drástica, é extremamente custosa. Questões como: as maiores tabelas do banco e os processos mais complexos da aplicação devem ser identificados tão logo seja possível, bem como considerações sobre os efeitos no desempenho causados pelo aumento do número de

usuários

que

acessam

o

banco

de

dados.

Exemplos de mudanças de projeto que podem fornecer melhoria de desempenho: Imagine uma tabela que contenha milhares de registros, das vendas diárias de uma livraria. Suponha que essas vendas devam ser totalizadas para serem usadas em um relatório diário. É possível adicionar uma ou várias colunas nessa tabela que guardem dados previamente agregados para serem usados no relatório ou utilizar uma estratégia de processamento e construção prévia do conjunto de resultados desejado. A idéia aqui é diminuir a sobrecarga de realizar a soma desses valores em tempo de execução. Portanto, colunas calculadas ou consolidação de dados via trigger seriam boas saídas; Bancos

de

dados

excessivamente

normalizados

podem

ter

o

desempenho de consultas reduzido. Isso se deve, principalmente, ao fato de existirem muitas pequenas tabelas inter-relacionadas. Esse cenário prejudica o desempenho porque o banco terá de processar os dados de todas as tabelas envolvidas e combiná-los para retornar os resultados. Em certas situações um grau controlado de desnormalização é benéfico à aplicação.

Hardware Geralmente, quanto maior o banco de dados mais recursos de hardware serão necessários para suportar as operações realizadas por seus usuários. Entretanto, TOTVS-2011 – Let’s Share

184

vale ressaltar que outros fatores determinantes incluem o número de sessões concorrentes, throughput de transações (quantidade de transações que podem ser realizadas em um mesmo período de tempo) e os tipos de operações que são utilizadas

no

banco

de

dados:

select,

insert,

update

e

delete.

Por exemplo, um sistema de biblioteca que é pouco atualizado terá menos requisitos de hardware do que um data warehouse corporativo altamente acessado pelo departamento de vendas. Da mesma forma, discos maiores para o armazenamento de dados, maior quantidade de memória e processadores mais rápidos seriam fundamentais ao data warehouse, mas não teria um custo benefício interessante

para

o

sistema

de

biblioteca.

O mecanismo de armazenamento é uma questão chave para qualquer banco de dados relacional e requer bastante atenção no planejamento. Implementações de sucesso requerem um planejamento cuidadoso e rigoroso na etapa de projeto. Esse planejamento

deve

incluir

considerações

sobre

as

seguintes

questões:

Como armazenar os dados ao longo dos discos usando arquivos e grupos de arquivos; Que projeto de índice utilizar para fornecer desempenho de consulta no acesso aos dados – para mais informações sobre índices consulte o artigo Otimizando o desempenho no SQL Server 2005 – Parte I, publicado na SQL Magazine nºXX; Como configurar os parâmetros do banco de dados para obter o máximo de desempenho; E, caso necessário, qual o tipo de RAID Redundant Array of Independent Disks (Array redundante de discos independentes) de hardware será utilizado. Vejamos a seguir alguns desses itens. Arquivos

TOTVS-2011 – Let’s Share

185

Um banco de dados SQL Server é composto de, no mínimo, dois arquivos: um arquivo de dados e um arquivo de log. Esses arquivos, na verdade, só são percebidos pelo sistema operacional uma vez que o SQL Server enxerga o banco como uma unidade indivisível. As informações de dados e log nunca são misturadas no mesmo arquivo. Além disso, existirão arquivos separados para cada banco de dados. A Figura 1 ilustra um banco de dados e seus arquivos.

Figura 1. Bancos de dados e seus arquivos

Um ou mais arquivos podem ser agrupados em estruturas conhecidas como grupos de arquivos. Os grupos de arquivos facilitam tarefas administrativas como operações de backup e restore. Se por ventura a configuração de hardware possuir diversas unidades de disco, é possível alocar os grupos de arquivos em discos individuais. A Figura 2 ilustra a utilização de dois grupos de arquivos: o primary e um segundo grupo de arquivos definido pelo usuário. O grupo de arquivos primary é default (quando uma determinada tabela é criada, se nada for dito em contrário, ela será criada dentro do primary) do SQL Server e guarda as tabelas do catálogo presentes em cada banco de dados. O grupo de arquivos definido pelo usuário guarda objetos de usuário e não objetos do catálogo do sistema. Portanto, é importante que ao criar um novo banco de dados seja criado, logo em seguida, um grupo de arquivos, definido pelo usuário, para o armazenamento dos objetos. Na Figura 2, as tabelas OrdHistYear1 e OrdHistYear1 são armazenadas no grupo de

TOTVS-2011 – Let’s Share

186

arquivos definido pelo usuário “User-defined Filegroup”. Os arquivos de log de transações não pertencem a grupos de arquivos e são armazenados em estruturas à parte.

Figura

Grupos

2.

de

arquivos

A utilização de arquivos e grupos de arquivos melhora o desempenho do banco de dados porque é possível criar o banco espalhando seus arquivos ao longo de vários discos, controladoras de disco ou conjuntos RAID. Imagine por exemplo que sua máquina possui quatro discos. É possível criar um banco de dados composto de três arquivos de dados e um arquivo de log e armazenar cada arquivo em um disco diferente. Quando os dados forem acessados, os quatro cabeçotes de leitura e gravação podem ler ou gravar os dados, de forma paralela. Além disso, as tabelas mais freqüentemente acessadas podem ser separadas das demais, sendo armazenadas em grupos de arquivos distintos dos grupos de arquivos das demais tabelas. Vale ressaltar que tais grupos de arquivos devem estar em discos físicos separados para que não seja criada retenção de disco e conseqüentemente perda de desempenho. Outra dica importante é colocar tabelas diferentes, usadas em joins em várias consultas, em grupos de arquivos diferentes. Essa ação melhora o desempenho em função do I/O paralelo para pesquisa dos dados TOTVS-2011 – Let’s Share

usados

no

join. 187

PARÂMETROS

DE

CONFIGURAÇÃO

DO

SERVIDOR

O SQL Server 2005 ajusta automaticamente muitas das opções de configuração do servidor. Entretanto, há configurações que podem ser alteradas pelo administrador. A Microsoft recomenda que tais alterações sejam feitas de forma bastante cautelosa para não incorrer em efeitos contrários à melhoria de desempenho.

OTIMIZANDO O DESEMPENHO DO SERVIDOR USANDO OPÇÕES DE CONFIGURAÇÃO DE MEMÓRIA O gerenciador de memória do SQL Server 2005 elimina a necessidade de gerenciamento manual da memória disponível no SQL Server. Quando o serviço do SQL Server inicia, ele determina dinamicamente a quantidade de memória a ser alocada baseada no total de memória que estiver sendo usada pelo sistema operacional

e

por

outras

aplicações.

As opções de configuração min server memory, max server memory, max worker threads, index create memory, min memory per query podem ser usadas para configurar a utilização de memória e ajustar o desempenho do servidor. Todas essas opções de configuração são em nível de servidor e são configuradas através da stored procedure sp_configure. A seguir uma rápida descrição sobre cada uma delas.

max server memory: estabelece o limite superior de memória a ser usado por uma instalação SQL Server; min server memory: estabelece o limite inferior de memória a ser usado por uma instalação SQL Server; max worker threads: permite a configuração do número de threads de trabalho disponíveis para o SQL Server; index create memory: permite controlar o total de memória usado em TOTVS-2011 – Let’s Share

188

operações de criação de índices; min memory per query: essa opção permite especificar a quantidade mínima de memória em (em kilobytes) que será alocada para execução de uma query.

OTIMIZANDO O DESEMPENHO DO SERVIDOR USANDO OPÇÕES DE CONFIGURAÇÃO DE E/S A opção de configuração de servidor recovery interval pode ser gerenciada para configurar o uso de Entrada e Saída (E/S) e prover melhoria de desempenho do servidor. Essa opção controla quando o SQL Server 2005 realiza checkpoint (períodos de tempo em que as transações concluídas que estão no log de transações são gravadas definitivamente no disco) em cada banco de dados. Por padrão o SQL Server determina o melhor momento para fornecer operações de checkpoint. Entretanto, utilizando o Performance Monitor, é possível monitorar se essa opção está configurada a contento através da verificação de atividade de escrita nos discos do servidor no banco de dados. A configuração desta opção pode ser realizada

através

da

stored

procedure

de

sistema

sp_configure.

Picos de atividade de utilização de disco que alcançam 100% afetam o desempenho, obviamente, de forma negativa. Alterar a freqüência de ocorrência do processo de checkpoint pode melhorar o desempenho geral. Vale ressaltar que o desempenho deve ser constantemente medido para determinar se o novo valor teve um efeito positivo no desempenho. RAID Soluções de armazenamento, baseadas em hardware, que objetivem disponibilidade e tolerância a falhas são tipicamente implementadas usando RAID Redundant Array Of Independent Disks (Array redundante de discos independentes) níveis 0, 1, 0 + 1 e 5. O RAID utiliza controladoras de disco e arrays de discos para TOTVS-2011 – Let’s Share

189

minimizar a perda de dados, em caso de falha da mídia, além de fornecer melhoria de

desempenho

nas

operações

de

leitura

e

escrita.

As diferenças nos níveis de RAID basicamente estão na forma de implementação da tolerância a falhas e melhoria no desempenho do acesso aos dados.

Por

exemplo:

RAID nível 0 - Também chamado de Stripping (faixas de disco). Divide os arquivos em “fatias” e escreve cada uma delas em um disco do array. Esse nível de RAID não fornece tolerância a falhas, apenas permite um aumento de desempenho na medida em que as operações de leitura e escrita serão realizadas em paralelo. Desvantagem: se um dos discos do conjunto for danificado, as informações armazenadas em todo o conjunto são perdidas. Observe na Figura 3 que os arquivos são escritos ao longo do conjunto que, nesse exemplo, é composto por quatro discos.

Figura 3. O RAID 0 “fatia” o arquivo e armazena cada parte em um disco diferente

RAID nível 1 – Também chamado de Espelhamento. As informações escritas em um disco são ao mesmo tempo escritas em outro disco. O RAID 1 suporta tolerância a falhas, mas não possui um desempenho tão bom quanto no RAID 0 já que o arquivo é gravado como um bloco único no disco. A grande desvantagem é o custo. Para cada disco será necessário outro para que o espelhamento seja realizado. Na ocorrência de falhas, o desempenho do sistema não é afetado, mas é necessária a TOTVS-2011 – Let’s Share

190

substituição do disco defeituoso o quanto antes sob pena da perda do dado caso um evento subseqüente de falha aconteça. Após a substituição do disco defeituoso, o desempenho é degradado em função da reconstrução dos dados no novo disco. Após o término desse processo, o desempenho volta ao normal. A Figura 4 ilustra a utilização do RAID 1 ao longo dos discos 1 e 2. Observe que cada arquivo é gravado nos dois discos. Assim, o arquivo “A” existe tanto no disco 1 quanto no disco 2.

Figura 4. RAID 1, realiza um “espelhamento”, dos dados gravados no disco 1, no disco 2

RAID nível 5 - Faixas de disco com paridade. Nesse nível de RAID as informações são distribuídas em faixas e gravadas nos discos juntamente com uma informação de paridade que é usada para reconstruir os dados em caso de perda de um dos discos. A informação sobre a paridade é armazenada em cada um dos discos de forma alternada, ou seja, a cada momento é gravada em um disco diferente. O RAID nível 5 traz o melhor custo benefício, uma vez que combina tolerância a falhas com desempenho satisfatório nos acessos para operações de leitura e escrita. Entretanto, na ocorrência de falhas o desempenho ficará ligeiramente degradado uma vez que o RAID realizará o cálculo de paridade para reconstruir o dado presente no disco que foi danificado. É o nível de RAID mais utilizado no mercado. A Figura 5 mostra a estrutura do RAID nível 5 com cinco discos.

TOTVS-2011 – Let’s Share

191

Figura 5. RAID 5, armazena a informação de paridade, de forma alternada, em cada um discos do conjunto

RAID 0 + 1 - É o nível de RAID que traz o melhor desempenho e suporte tolerância a falhas. Combina o RAID 0 (Stripping) com RAID 1 (espelhamento).

Sua

desvantagem

está

no

altíssimo

custo

de

operacionalização.

UTILIZANDO

GRUPOS

DE

ARQUIVOS

COM

RAID

É possível combinar grupos de arquivos com soluções de RAID para melhorar o desempenho no acesso e a segurança dos dados. Inicialmente é necessário configurar a distribuição do RAID e, depois, usar os grupos de arquivos para distribuir

os

dados

em

vários

discos.

A Figura 6 mostra, além da controladora do sistema operacional e da controladora do log de transações, duas controladoras que apontam para dois conjuntos de RAID. Quatro arquivos estão associados a cada RAID. Um grupo de arquivos é composto de oito arquivos, nomeados de “A” a “H”, e está distribuído ao longo dos RAIDs. Essa estratégia é interessante porque distribui os dados de maneira uniforme em todos os discos e ao mesmo tempo mantém a facilidade de administração. Portanto, a união dos conceitos de RAID e grupos de arquivos trazem além de melhoria de desempenho, melhoria da administração do banco de

TOTVS-2011 – Let’s Share

192

dados em nível geral. Por exemplo, as operações de backup e restore se beneficiam dessa arquitetura e tornam-se muito mais rápidas do que em arquiteturas que não utilizam tais recursos.

Figura 6. RAID 5, armazena a informação de paridade, de forma alternada, em cada um discos do conjunto

Portanto, usar tal configuração fornece acesso paralelo aos dados, além de distribuir a carga entre vários discos para reduzir a perda de desempenho durante operações

de

leitura

e

escrita

(retenção

de

disco).

PLANOS DE EXECUÇÃO: Plano de Execução - O que analisar ? Você costuma analisar a performance de suas queries antes de colocá-la em produção? Infelizmente, em meu dia-a-dia de trabalho tenho percebido que a resposta para esta pergunta é NÃO. Muitos problemas de performance acontecem porque o desenvolvedor simplesmente não tem o hábito de analisar a performace das queries e como consequência temos queries utilizando índices de forma incorreta, queries que não utilizam os índices existentes na tabela e por incrível que pareça,

até

grandes

TOTVS-2011 – Let’s Share

tabelas

sem

índice

algum. 193

Por outro lado, muitos desenvolvedores e DBA's utilizam ferramentas do Query Analyzer como o ShowPlan gráfico, SHOWPLAN_ALL ou SHOWPLAN_TEXT, mas a próxima pergunta é : O que devemos procurar quando examinamos o resultado do plano de execução de uma query? A seguir serão descritos pontos importantes nos quais você deve estar atento na hora de analisar o plano de execução de uma query. Para isto, estarei utilizando o Showplan gráfico do Query Analyzer. Sendo assim, para aqueles que não conhecem o SHOWPLAN, recomendo a leitura dos tópicos "SET SHOWPLAN_ALL", "SET SHOWPLAN_TEXT" e "Graphically Displaying the Execution Plan Using SQL Query Analyzer" no Books Online. Em resumo, para ver o plano de execução de uma consulta no Query Analyzer, basta escrever a query e teclar Ctrl+L ou clicar no botão “Display Estimated Execution Plan” na barra de ferramentas do Query Analyzer. É importante observar que, uma vez que os problemas de performance podem ter várias razões e consequentemente várias soluções, os pontos destacados aqui são pontos básicos que você deve analisar e na medida do possível evitar que aconteçam. Primeiro Ponto: Operações com alto percentual de consumo Em uma query simples, inicie procurando por operações que geram um alto percentual de consumo. Procurar por operações de alto consumo permitirá que você priorize qual problema deverá ser atacado primeiro.

Se você esta analisando uma query com multiplos statements, será gerado um TOTVS-2011 – Let’s Share

194

plano de execução separado para cada statement. Para cada plano de execução será mostrado a ordem de execução da query, por exemplo: “Query 1”, “Query 2” e seu respectivo custo. Neste caso, procure pelas queries com maior custo.

Lembre-se : O plano de execução sempre deve ser lido da direita para a esquerda e de cima para baixo !!

Segundo ponto: Table Scan, Index Scans e Clustered Index Scans

Table Scans, Index Scans e Clustered Index Scans são operações que navegam por todas as linhas da tabela ou do índice e retornam as linhas que satisfazem a cláusula WHERE (assumindo que você use uma cláusula WHERE). Um Table Scan obtém linhas de uma tabela não indexada, conhecida também como “heap table”. Um Index Scan procura por linhas no índice não cluster, enquanto que um clustered index scan procura por linhas no índice cluster de uma tabela. É importante destacar que os Scans nem sempre são ruins, principalmente quando em tabelas com um pequeno número de registros ou consultas que devem TOTVS-2011 – Let’s Share

195

retornar todos os registros de uma tabela. Scans podem ser ruins se sua consulta roda por um período muito longo vindo a prejudicar inclusive outras conexões, causando o que chamamos de blocks. Os Scans são em sua maioria resolvidos através da criação de índices apropriados. Algumas soluções incluem alterar suas consultas de forma a ser mais seletiva, ou seja, usar a cláusula WHERE para filtrar ao máximo possível os registros retornados, adicionar/remover e modificar índices, remover hints, alterar o desing da tabela e usar a ferramenta Index Tuning Wizard para lhe auxiliar na criação de possíveis índices. Terceiro ponto: Warnings

Warings ou alertas normalmente são vistos quando não existem estatísticas para colunas de uma tabela e essas colunas são utilizadas como filtros de pesquisa nas queries. Eles podem ser solucionados através da criação de estatísticas para a coluna afetada (CREATE STATISTICS) ou ainda, criação de índices e adição de cláusulas JOIN.

Quarto ponto: Seta muito grossa

TOTVS-2011 – Let’s Share

196

As setas não são operadores, elas simplesmente são usadas para ligar um operador a outro. Através das setas podemos ter uma estimativa da quantidade de linhas afetadas por uma query, isto porque, quanto maior a espessura da seta, maior é a quantidade de linhas envolvidas na operação. Ou se preferir, a quantidade de linhas passada de um operador para outro. Para que você possa ver a estimativa de quantidade e tamanho das linhas afetadas, basta posicionar o cursor sobre a seta. Neste cenário, sempre dê uma atenção especial às setas mais grossas, pois uma linha muito grossa pode indicar uma alta operação de I/O. Para solucionar este tipo de problema você deve tentar fazer com que as setas fiquem o mais fina possível e aqui novamente entra a cláusula WHERE. Por outro lado, evite obter mais linhas que o necessário. Quinto Ponto: Bookmark Lookups

O operador Bookmark Lookup ocorre em conjunto com um nonclustered index seek quando a consulta deve obter colunas que não estão disponíveis dentro do nonclustered index. Neste cenário, procure por Bookmark Lookup que possua um alto percentual de consumo. Se o custo da operação de Bookmark Lookup for muito alto, verifique se um índice cluster ou um índice não cluster composto pelas devidas colunas (covering index) pode ser utilizado. Sexto Ponto: Sorting

Um operador SORT ordena todas as linhas de entrada em uma ordem

TOTVS-2011 – Let’s Share

197

ascendente ou descendente. Isto depende da cláusula ORDER BY de sua consulta. Operadores Sort normalmente acrescentam uma grande taxa de I/O às operações, primariamente utilizando o TEMPDB para suas operação. Se você costuma ver o operador SORT com muita frequência em suas consultas e este operador possui um alto consumo de operação, considere por remover a cláusula ORDER BY. Por outro lado, se você sabe que sempre ordenará sua consulta por uma coluna em específico, considere indexá-la. Lembre-se que no comando CREATE INDEX você pode fixar a direção de ordenação (ASC ou DESC) para um índice em particular. Nota: O Profiler é uma excelente ferramena para ajudar na identificação de queries muito pesadas ou que possuem um alto tempo de execução.

Boas Práticas e Tunning

Oracle Fatores a serem observados 1- Modelagem do Banco de Dados (Se não for muito tarde) 2- Tuning de Aplicação (códigos SQL mal elaborados) 3- Tuning de Memória (definir os parâmetros de memória corretamente) 4- Tuning de I/O Físico ( evitar que os arquivos do BD fiquem em locais com excesso de I/O físico 5- Elimine Contenção de Dados (lock,latches e wait)

6- Tuning de Sistema Operacional

TOTVS-2011 – Let’s Share

198

Um pouco mais sobre Tuning de Aplicação A otimização consiste em trazer a informação para o usuário com o menor custo e tempo possíveis. É encontrar um caminho mais eficiente de processar a mesma requisição. Quando você está escrevendo um novo comando SQL, ou otimizando um comando existente na aplicação, o tuning de aplicação pode melhorar o tempo de resposta da CPU, reduzir I/O e os recursos gastos com memória. A metodologia de tuning de SQL envolve identificar as querys que consomem mais recursos, e então otimizá-las. Em geral, um número pequeno de querys são responsáveis pela maior parte das atividades que ocorrem no Banco de Dados. Além disso, tente entender completamente a aplicação, focando sua atenção nos SQL ou tabelas onde os benefícios do tuning excederão os custos. Para isso, é importante observar alguns passos: •

Somente otimize o SQL depois que tiver certeza que o código está correto;



Garanta que os comandos sejam escritos absolutamente iguais para facilitar a reutilização no banco de dados. O re-parsing no banco de dados pode ser evitado para cada uso subseqüente.

Ex: SELECT * FROM EMP; É

diferente

Select

*

de: From

Emp;

SELECT * from EMP; •

Procure trazer do banco de dados somente as informações necessárias. Se você não precisa da informação contida em uma coluna específica, não é preciso trazê-la.



Mantenha sempre atualizado as estatísticas das tabelas;



Identifique problemas potenciais antes de mandá-los para produção. Isso

TOTVS-2011 – Let’s Share

199

pode ser feito utilizando o “Explain Plan”, tentando diminuir ao máximo o custo do SQL; •

Procure otimizar primeiro os SQL mais críticos; Não gaste tempo otimizando códigos que nunca ou raramente serão usados;



Use índices, mas não os crie em demasia. Muitos índices podem resultar em um efeito adverso na performance. Lembre-se de escolher o tipo de índice mais adequado a cada situação. O critério básico para escolha de índices é a seletividade.

Quando

o

banco

de

dados

resolve

uma

consulta,

freqüentemente, ele precisa percorrer mais registros do que aqueles realmente retomados pela consulta. Os registros percorridos que forem rejeitados representam o trabalho perdido. Quanto menor for o trabalho perdido, mais perto estaremos da performance ótima para resolver a consulta. Portanto, o melhor índice para uma consulta é aquele que apresenta a maior seletividade. •

Construa os índices a partir das restrições dos selects (cláusula WHERE); Lembre-se que as comparações usando “”, “NOT”, “NULL”, “LIKE” podem invalidar o índice.



Evite full table scans se o resultado pode ser recuperado via índice, a menos que a tabela seja pequena e o custo diminua. Quando a tabela é pequena, o trabalho envolvido em acessar o índice, pegar o endereço e acessar a tabela é maior que o esforço de ler a tabela inteira.



Divida as queries complexas em queries menores. Evite lógicas complexas de negócio no SQL. A lógica deve ficar no código fonte. Lembre-se que: SQL não é uma linguagem procedural.



Use os comandos que produzem sort (Group By, Order By, Distinct, etc.) somente quando necessário. No sort, o banco recupera todas as informações necessárias primeiro e depois as ordena.



Os comandos “EXIST” e “NOT EXIST” possuem menor custo do que os comandos “IN” e “NOT IN” na maior parte dos casos. Quando a maioria dos filtros estiver na sub-query o comando “IN” se torna mais eficiente.



Toda vez que houver função na coluna, o índice não será usado. Isto inclui as funções do Oracle.

TOTVS-2011 – Let’s Share

200

Use: WHERE cargo = rtrim(1); Ao

invés

de:

WHERE rtrim(cargo) = 1; •

Evite comparar dados incompatíveis. O Oracle converte automaticamente os campos char e number.

Ex: Levando em consideração que o campo “matricula” é numérico e “codigo” é literal, temos: WHERE

matricula

=

‘1234’

WHERE codigo = 1234 Note que o tipo de dados está incompatível, porém esse tipo de comparação não dá erro. Implicitamente o Oracle faz: WHERE

matricula

=

to_number(‘1234’)

WHERE codigo = to_char(1234) •

Procure usar “EXISTS” ao invés de “DISTINCT”.

Use: SELECT

M.CODIGO,

FROM

M.NOME

PFUNCAO

WHERE

EXISTS

FROM

M (SELECT

PFUNC

‘X’ F

WHERE F.CODPESSOA = M.CODIGO); Ao

invés SELECT

FROM

DISTINCT dept

de: dept_no,

d,

emp

dept_name e

WHERE d.dept_no = e.dept_no;

TOTVS-2011 – Let’s Share

201

CONFIGURAÇÃO DE BANCO DE DADOS EXTERNO - MSSQL

INTRODUÇÃO Objetivo: orientar o usuário a efetuar a configuração de um banco de dados externo de uma base de dados SQL através do Cadastro de Consultas SQL. Desenvolvimento/Procedimento 1. Incluir uma nova sentença SQL. Acesse: Utilitários / Consultas SQL Clique em Incluir (CTRL + INS).

TOTVS-2011 – Let’s Share

202

Clique em Banco de Dados Externo.

Ao acessar o Cadastro de Conexões a Banco de Dados Externo, clique em Incluir (CTRL + INS). Preencha os principais campos e clique em String de Conexão.

Selecionar o Data Source e Data Provider conforme seu ambiente. Neste caso estamos configurando uma conexão SQL.

TOTVS-2011 – Let’s Share

203

Clique em OK e determine o Servidor (Server Name), Usuário (User Name), Senha (Password) e a Base de Dados (Select or Enter a Database Name).

Teste a Conexão (Test Connection). Clique em OK. TOTVS-2011 – Let’s Share

204

No Cadastro de Conexões a Banco de Dados selecione a conexão que foi configurada anteriormente.

Digite a Consulta SQL utilizando recursos do banco de dados externo.

TOTVS-2011 – Let’s Share

205

ERROS COMUNS OCORRIDOS NO BDE ADMINISTRATOR.

Erro 01

Este erro significa que o BDE não conseguiu carregar o arquivo NTWDBLIB.DLL* que se encontra no diretório de sistema \Windows\System32. Normalmente ocorre, pois o cliente do Banco de Dados não esta instalado. Dica: Deverá ser instalado o Client do banco de Dados. No ajuda do Instalador item: (Instalação SGDB  SQL Server  Instalação do SQL Client) há todos os passos para instalação do cliente do banco de dados *NTWDBLIB.DLL: Cliente 32 bits do SQL Server (DB-Library), responsável pela comunicação entre o cliente (Estação) e o servidor de Banco de Dados. Erro 02

TOTVS-2011 – Let’s Share

206

Este erro ocorre quando a senha do Login RM foi digitada incorretamente ou o Login RM não existe no SQL Server. Obs.: Este erro pode ocorrer para os usuários RM e SYSDBA Dica: Para listar os logins existentes poderá ser executada através do Query Analizer a sentença abaixo no banco de dados MASTER: SELECT NAME FROM SYSLOGINS ORDER BY NAME Outra opção é Acessar Enterprise Manager  Microsoft SQL Servers  SQL Server Group  < Servidor > Security  Logins Para criar os Logins deverá ser executado o script abaixo: IF NOT EXISTS(SELECT * FROM MASTER.DBO.SYSLOGINS WHERE NAME = 'RM') EXEC SP_ADDLOGIN RM,RM GO sp_addalias RM,dbo GO IF NOT EXISTS(SELECT * FROM MASTER.DBO.SYSLOGINS WHERE NAME = 'SYSDBA') EXEC SP_ADDLOGIN SYSDBA,masterkey GO sp_adduser SYSDBA,SYSDBA

TOTVS-2011 – Let’s Share

207

Erro 03

Este erro significa que o usuário rm não é um usuário válido no banco de dados em questão. Obs.: Este erro pode ocorrer para os usuários RM e SYSDBA Dica: Para listar os usuários de banco existentes para a base de dados poderá ser executada através do Query Analizer a sentença abaixo no banco de dados em questão: SELECT NAME FROM SYSUSERS WHERE UPPER(NAME) IN ('\RM', 'RM', '\SYSDBA', 'SYSDBA') Para criar os usuários no banco de dados deverá ser executado o script de usuários de acordo com a versão do SQL Server: Erro 04

TOTVS-2011 – Let’s Share

208

Este erro significa que a autenticação do Servidor SQL Server esta configurada para aceitar apenas autenticação do Windows. Para alterar a autenticação do SQL Server deverá:

Acessar ( Enterprise

Manager  Microsoft SQL Servers  SQL Server Group  < Servidor >  Botão direito Propriedades  Guia "orelha" Security -> item Authentication marcar a opção SQL Server and Windows. Após este procedimento parar o serviço do SQL Server e iniciar novamente. Erro 05

Este erro significa que o banco de dados foi restaurado com o nome de uma palavra reservada do SQL Server. No exemplo acima o banco de dados foi restaurado com o nome “ALTER”. Este é um comando do SQL Server, ou seja, uma palavra reservada. Dica: É possível alterar o nome do Banco de Dados através do Query Analizer utilizando o comando SP_RENAMEDB. Sintaxe: sp_renamedb 'Nome Antigo' , 'Nome Novo' Exemplo: sp_renamedb 'Corpore' , 'CorporeNovo'

TOTVS-2011 – Let’s Share

209

Erro 06

Este erro significa que não foi possível localizar uma entrada na tabela Sysdatabases* do servidor, ou seja, não foi possível encontrar no servidor o banco de dados, o nome do banco informado na propriedade DATABASE NAME do Alias CorporeRM do BDE. Dica: Deverá ser verificado a propriedade DATABASE NAME se o nome do banco de dados esta correto, esta poderá ser comparada a outra estação de trabalho em que o sistema esta funcionando normalmente. Sysdatabases: Tabela responsável por armazenar informações sobre as bases de dados (Banco de Dados) disponíveis no servidor.

Erro 07

TOTVS-2011 – Let’s Share

210

Este erro ocorre em Alias do tipo Oracle. Deverão ser alteradas as propriedades DLL32 e VENDOR INIT do BDE para SQLORA8.DLL e OCI.DLL respectivamente em (DBE  “Orelha” Configurarion  Configuration  Drivers Native Oracle) Erro 08

Este erro ocorre em alias do tipo Oracle, quando o BDE não consegue carregar a DLL SQLORA8.DLL Dica: Deverá ser verificada a existência desta DLL na máquina. Outra causa é quando o client do Oracle não esta Instalado na estação. No ajuda do Instalador item : (Instalação SGDB  Oracle  Instalação do Oracle Client) há todos os passos para instalação do cliente do banco de dados Oracle. Erro 09

Este erro ocorre em alias do tipo Oracle. Este erro significa que a estação de trabalho não esta conseguindo conectar ao servidor de banco de dados. Normalmente ocorre quando a Instância Oracle esta parada ou algum outro problema que não permite a comunicação entre a estação de trabalho e o servidor de banco de dados. TOTVS-2011 – Let’s Share

211

Erro 10 Este erro significa que o BDE não conseguiu localizar ou conectar ao Servidor de banco e dados SQL Server. Normalmente ocorre quando não é informado corretamente na propriedade SERVER NAME do Alias CorporeRM do BDE o nome do servidor corretamente. Dica: A propriedade SERVER NAME poderá ser comparada a outra estação de trabalho em que o sistema esta funcionando normalmente. OUTROS ERROS COMUNS: Após instalar o BDE, ao tentar acessar ocorre o erro: Exception EBDEngine Error in modulo BDEADMIN.EXE at 00054F92 could not find objetc An error occurred while attempting to initialize the Borland Database Engine (error $2109). Deverá ser realizado o procedimento abaixo : - Remover o BDE pelo painel de controle (Adicionar e Remover Programas) - Remover a Pasta de instalação do BDE (Arquivos de Programas\common files\Borland Shared\ BDE - Renomear a pasta IDAPI para outro nome (Caso exista esta pasta) - Reiniciar a máquina - Instalar o BDE novamente - Voltar o nome da pasta para IDAPI. (Caso exista esta pasta) Obs.: Normalmente ocorrem estes dois erros citados acima quando há instalado na estação programas da Receita, Caixa Econômica etc.

TOTVS-2011 – Let’s Share

212

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF