Você está na página 1de 119

Guia para a valiao de problemas com performance nas aplica

Este guia tem como objetivo orientar e direcionar nos procedimentos mais comums para a reduzindo o tempo necessrio para se chegar a soluo do caso.

Ele segue um metodo prtico que lista as verificaes a serem observadas e tarefas a sere uma forma orientada.

O guia consiste em uma sequencia de itens a serem avaliados que direcionam para um pr questo proposta.

Ele pode ser utilizado por qualquer profissional independente do seu nvel de conheciment sero solicitados no checklist.

Este guia poder sofrer modificaes que posibilitem a evoluo da ferramente de analise,

Iniciar >>

erformance nas aplicaes RM

cedimentos mais comums para avaliao de problemas de performance.

serem observadas e tarefas a serem cumpridas na busca de solues de

liados que direcionam para um procedimento que possa resolver a

ente do seu nvel de conhecimento e que tenha acesso aos recursos necessrios que

voluo da ferramente de analise, na medida que novos casos sejamidentificados.

Guia para analise de performance


Passo
1

Procedimento / Analise O ambiente est em 3 camadas

Descrio Identificar se a arquitetura est definida de forma que o Est em 3 camadas? RM.Host esteja instalado em um servidor dedicado e as aplicaes utilizem este servidor para acesso ao servio Host.

Questes

Comentrios

Atualizao dos patchs da verso do produto e da Biblioteca RM

A evoluo contnua dos produtos passa pela otimizao e ajuste de rotinas, que um processo natural e importante para Os patchs esto atualizados para a verso atual? obter os resultados esperados. Incluem-se nestes casos melhorias que benefiam a performance das aplicaes.

Comentrios

Link de dados

Arquitetura

O link entre o banco de dados e a camada front-end deve comportar o trafego gerado pelo acessos dos usurios concorrentes

Comentrios

4
Comentrios

Virtualizao

A virtualizao tem como objetivo ampliar a escabilidade do O ambiente est virtualizado? ambiente, mas pode gerar overhead no processamento dos dados.

5
Comentrios

Especificao tcnica para o ambiente de produo

Recomendaes para a configurao dos ambientes que proveram acessos s aplicaes e banco de dados de acordo com o perfil existente na empresa.

O ambiente est de acordo com as especificaes tcnicas para a linha RM?

6
Comentrios

Processo bloqueados no banco de dados

O procedimento sp_who serve para ter uma viso geral sobre as conexes existentes e verificar se existe alguma conexo Possui Blocks? bloqueada (Block). Coluna blk <>0.

Utilizando cache para objetos estticos

O browser tem a capacidade de manter objetos em cache para diminuir o tempo gasto com a transferencia destes objetos at O cache de pginas est habilitado o cliente. Isto permite um melhor desempenho no tempo de pelo IIS resposta das paginas.

Comentrios

Portal

Compresso de pginas

Compresso de HTTP aumenta a velocidade de transmisso entre browsers com a compresso ativada no IIS. possvel comprimir apenas pastas estticas ou arquivos estticos e aplicaes.

O IIS est configurado para permitir compresso de pginas?

Comentrios

9
Comentrios

Existem triggers no banco de dados

A existncia de triggers na base de dados podem evidenciar overheads nos processamentos de tarefas do banco de dados que interferem na performance das aplicaes

H triggers fora do padro?

10

Atualizao das estatsticas do banco de dados

As estatsticas coletadas pelo banco de dados propiciam um melhor desempenho para realizar pesquisas nas tabelas, atravs de um plano de execuo mais eficiente.

A manuteno das estatsticas realizada periodicamente?

Comentrios

11
Comentrios

Opes "Auto create statistics" e "Auto update statistics"

As opes do database "Auto create statistics" e "Auto update statistics" podem levar a gerao automtica de um nmero grande de objetos de estatsticas, e o tempo necessrio para sua atualizao pelo banco de dados provavelmente implicar

Os parmetros "Auto create statistics" e "Auto update statistics" forma desabilitados na base de dados?

12
Comentrios

A limpeza peridica de registro de log e arquivo morto podem Limpeza de objetos temporrios na Os procedimentos de limpeza so beneficiar bastante a execuo de consultas e manipulao de executados na base de dados? base de dados dados nestas tabelas .

13

Problemas com a performance podem ter origem em eventos O log do banco de dados apresenta Monitoramento do log do banco de erros que podem influenciar na que so registrados no log do banco de dados, como por dados exemplo falhas na leitura de pginas do banco, deadlocks, etc. performance?

Comentrios

BANCO DE DADOS

14

Reindexao da tabelas periodicamente

Reindexao perodica das tabelas sumariamente necessrio o bom desempenho das aplicaes, uma vez que este A rotina de manuteno que reindexa os indices procedimento desfragmenta os indices das tabelas, proporcionando uma maior eficcia no processo de pesquisa frequentemente executada? no indice.

15
Comentrios

Analisar as principais sentenas executadas no banco de dados

A avaliao das sentenas que mais consomem recursos no H gargalo de processamento nas banco de dados pode minimizar em muito o tempo de analise queries? at a concluso do problema.

16
Comentrios

Monitorar com o Profiler o processamento

Problemas com a performance nas aplicaes podem ser O processamento no banco de dados visualizados atravs a avaliao de um tracer gerado no banco est "normal"? de dados.

17
Comentrios

Consultas SQL sem o hint (NOLOCK)

A utilizao de sentenas SQL que no fazer uso do hint (NOLOCK) podem provocar a conteno desta sentena por bloqueios de usurio no banco de dados.

18

Paralelismo

Limita o nmero de processadores (at o mximo de 64) a serem usados na execuo do plano paralelo. O valor padro 0 usa todos os processadores disponveis. Um valor de 1 H custo excessivo para o suprime gerao de planos paralelos. Um nmero maior do processamento de queries em que 1 restringe o nmero mximo de processadores usados paralelismo? por uma nica execuo de consulta. Se um valor maior que o nmero de processadores disponveis for especificado, o nmero real de processadores disponveis ser usado.

Comentrios

19

Algumas rotinas nas aplicaes utilizam-se de recursos temporrios gravados em disco que so frequentemente Antivirus monitorando a pasta das O antivirus est monitornado a pasta recriados, gerando um nmero muito grande de acessos ao das aplicaes? aplicaes disco, e o monitoramento por um antivirus durante esta tarefa gera atrasos no processamento da aplicao.

Comentrios

20

BDE

O BDE pode ser otimizado para beneficiar algumas rotinas da aplicao, mas uma vez que isto seja feito sem algum critrio O BDE teve seus parmetos alterados nos clients? poder incorrer na perda de performance para alocao e gerenciamento dos recursos de memria e CPU.

Comentrios

ERP

21

Filtros das vises

As aplicaes utilizam-se de filtros nas vises como forma de restringir os dados a serem exibidos para o usurio. Por Os filtros das vises restringem apenas a uma quantidade ? padro, este filtro faz trazem os critrios de filtragem por codigo da coligada e da filial, na maioria dos casos.

Comentrios

22

Log de Auditoria ativado na base de dados

A utilizao do log de auditoria permite o monitoramento das O log de auditoria est habilitado na alteraes realzadas na base de dados, com a finalidade de base de dados? garantir o controle sobre dados importantes para o empresa.

Comentrios

23

Utilizao do TSS

O TSS da TOTVS permite a comunicao entre o ERP e SEFAZ do contribuinte. Este servio, se configurado para utilizar a mesma base do ERP, provocar concorrncia com os processo dos aplicativos.

O TSS est configurado para utilizar a mesma base das aplicaes RM?

Comentrios

es
SIM ( ) NO ( )

SIM ( )

NO ( )

SIM ( )

SIM ( )

NO ( )

SIM ( )

NO ( )

SIM ( )

NO ( )

SIM ( )

NO ( )

SIM ( )

NO ( )

SIM ( )

NO ( )

SIM ( )

NO ( )

SIM ( )

NO ( )

SIM ( )

NO ( )

SIM ( )

NO ( )

NO ( )

SIM ( )

SIM ( )

SIM ( )

SIM ( )

NO ( )

SIM ( )

SIM ( )

Voltar Voltar

Guia para analise de performance


Passo
1

Procedimento sp_who active

Descrio Serve para ter uma viso geral sobre as conexes ativas e verificar se existe alguma conexo bloqueada Serve para identificar a conexo que est bloqueando e as conexes que esto bloqueadas. A conexo causadora do bloqueio vem sempre na primeira linha e a coluna RunAs, mostra a quanto tempo (minuto) a conexo est em execuo.
Serve para verificar o status da conexo (waittype) de acordo com a tabela padro da Microsoft

Status
SIM ( X )

sp_usrheadblocker

4 5 5.1

SELECT * FROM MASTER..SYSPROCESSES


dbcc inputbuffer (<spid>) sp_usrinputbuffer <spid>

Visualizar Tabela

Serve para verificar o comando que est sendo executado


Se for um processo que ainda esteja ativo, identifica o ponto exato onde o bloqueio est sendo realizado

Kill <spid> alter database <banco de dados> set restricted_user with rollback immediate alter database <banco de dados> set multi_user xp_readerrorlog

Aps permisso do responsvel pelo processo, derrubar a conexo que est bloqueando as demais. Se ficar em Killed/Rollback por muito tempo, seguir os passo 6.1 e 6.2
Se ficar em status de killed/rollback por muito tempo

6.1 6.2

Verique o Error Log do SQL na busca de erros. Se for encontrado algum erro, pesquisar no Books On Line, Premier, TechNet, etc Verique o Error Log do SQL na busca de erros. Se for encontrado algum erro, pesquisar no Books On Line, Premier, TechNet, etc

us
NO ( )

Tabela

Voltar

Guia para analise de performance


Passo
1

Procedimento sp_who active

Descrio Serve para ter uma viso geral sobre as conexes ativas e verificar se existe alguma conexo bloqueada. Verique o Error Log do SQL na busca de erros. Se for encontrado algum erro, pesquisar no Books On Line, Premier, TechNet, etc Analizar os contadores do Performance Monitor.

Status
SIM ( )

xp_readerrorlog

Verifique a situao do servidor

Contadores Padro

us
NO ( X )

Padro

Voltar Tabelas extraida do Books On Line SQL Server 2000

<<Voltar Descrio dos Contadores

Memria: Contador Memory: Available Bytes Mamory: Pages/Sec SQL Server: Contador SQL Server: Buffer Manager: Buffer Cache Hit Ratio

Descrio

Indica a quantidade de memria disponvel

Indica se est havendo paginao. Em perfeitas condies deve-se ver pouca atividade neste contador.

Descrio Indica o percentual de requisies a dados que so obtidas no prprio cache do sql e portanto, sem precisar acessar o disco. O ideal estar maior que 90% Mostra quantos page splits esto ocorrendo no servidor. Este valor deve ser o mais baixo possvel. Se o valor estiver alto, configurar os ndices com um fillfactor apropriado pode ajudar a reduzir este valor.

SQL Server:Access Methods:Page Splits/sec SQL Server: Memory Manager: Total Server Memory (KB) CPU: Contador Processor:% Processor Time:_Total Process: % Processor time: sqlservr

Quando maior que a quantidade de memria fsica pode indicar falta de memria.
Descrio

Indica o consumo de CPU no servidor (ideal abaixo de 80%). Indica o consumo do processador pelo processo do SQL Server Indica o nmero de threads aguardando para execuo no processador e nunca deve exceder 1 ou 2 (por processador) por um perodo superior a 10 minutos.
Descrio Indica o percentual de tempo que o disco esta ocioso. Supostamente este contador apresenta uma estimativa mais precisa sobre a utilizao dos discos. Subtraindo o valor encontrado de 100, temos uma ideia do quanto o disco esta trabalhando. Mostra o quanto o disco esta ocupado.Se valor > 60% durante 10 minutos, verificar os contadores PhysicalDisk: % Disk Read Time e PhysicalDisk: % Disk Write Time para verificar se leitura ou escrita quem est causando maior utilizao.

System: Processor Queue Length

DISK I/O: Contador

PhysicalDisk: % idle Time

PhysicalDisk: % Disk Time

PhysicalDisk: Avg. Disk Queue Length

Mostra o nmero mdio de requisies de I/O aguardando para acesso ao disco. Este contador nunca deve exceder 2 (por disco) por um extenso perodo de tempo. Taxa de transferncia em bytes de ou para um disco durante operaes de leitura ou escrita:

PhysicalDisk: Avg. Disk Sec/Transfer

Cache < 5Ms Excelente < 15Ms Bom < 30Ms Regular < 60Ms Ruim < 90Ms

Banco de Dados: Contador SQL Server: Access Methods: Full Scans/sec

Descrio Mostra a quantidade de Table Scan sendo executada no SQL Server. Este valor deve ser o mais baixo possvel e se for constantemente alto, use o Profile para identificar quais queries esto causando os scans. Este contador mostra quanto tempo em milessegundos um processo esta aguardando para obter lock no SQL Server. O valor ideal para este contador zero . Se este valor estiver muito alto, utilize o Profile para identificar quais processos esto mantendo locks por um perodo longo de tempo.

SQL Server: Locks: Average Wait Time (ms)

Descrio dos Contadores

Descrio

Observao

Indica a quantidade de memria disponvel Indica se est havendo paginao. Em perfeitas condies deve-se ver pouca atividade neste contador.

Descrio Indica o percentual de requisies a dados que so obtidas no prprio cache do sql e portanto, sem precisar acessar o disco. O ideal estar maior que 90% Mostra quantos page splits esto ocorrendo no servidor. Este valor deve ser o mais baixo possvel. Se o valor estiver alto, configurar os ndices com um fillfactor apropriado pode ajudar a reduzir este valor.

Observao

Quando maior que a quantidade de memria fsica pode indicar falta de memria.
Descrio Observao

Indica o consumo de CPU no servidor (ideal abaixo de 80%). Indica o consumo do processador pelo processo do SQL Server Indica o nmero de threads aguardando para execuo no processador e nunca deve exceder 1 ou 2 (por processador) por um perodo superior a 10 minutos.
Descrio Indica o percentual de tempo que o disco esta ocioso. Supostamente este contador apresenta uma estimativa mais precisa sobre a utilizao dos discos. Subtraindo o valor encontrado de 100, temos uma ideia do quanto o disco esta trabalhando. Mostra o quanto o disco esta ocupado.Se valor > 60% durante 10 minutos, verificar os contadores PhysicalDisk: % Disk Read Time e PhysicalDisk: % Disk Write Time para verificar se leitura ou escrita quem est causando maior utilizao. Observao

Mostra o nmero mdio de requisies de I/O aguardando para acesso ao disco. Este contador nunca deve exceder 2 (por disco) por um extenso perodo de tempo. Taxa de transferncia em bytes de ou para um disco durante operaes de leitura ou escrita:

Cache < 5Ms Excelente < 15Ms Bom < 30Ms Regular < 60Ms Ruim < 90Ms
Observao

Descrio Mostra a quantidade de Table Scan sendo executada no SQL Server. Este valor deve ser o mais baixo possvel e se for constantemente alto, use o Profile para identificar quais queries esto causando os scans. Este contador mostra quanto tempo em milessegundos um processo esta aguardando para obter lock no SQL Server. O valor ideal para este contador zero . Se este valor estiver muito alto, utilize o Profile para identificar quais processos esto mantendo locks por um perodo longo de tempo.

Voltar

Configurao do ambiente em 3 camadas Introduo

O objetivo deste documento trazer uma breve viso do que e como funciona a Arquitetura 3 Camadas .

O que a Arquitetura 3 camadas? Anteriormente, na Arquitetura Cliente-Servidor, a camada cliente acessava diretamente a camada de Banco A figura abaixo mostra como a arquitetura Cliente-Servidor.

Na Arquitetura 3 camadas, apesar da complexidade do ambiente a diviso das tarefas em camadas possib As figuras abaixo exemplificam esta Arquitetura.

Como mostrado nas figuras, a Camada Servidor de Aplicao pode ser distribuda em processos especfico

Quais so as vantagens da Arquitetura 3 camadas? Permite maior escalabilidade Permite reaproveitamento de regras de negcio e clculo Permite execuo de mais de uma verso da Linha RM Permite utilizao mais racional de hardware Permite balanceamento de carga Permite montagem de ambientes com reforo de contingncia Diminuio da sobre-carga no cliente.

Como configurar um ambiente 3 camadas na Linha RM?

A TOTVS no distribuir um instalador especfico para o ambiente 3 Camadas da Linha RM, porm extre Para que o Ambiente 3 Camadas possa funcionar no Sistema RM, a camada cliente deve ter um arquivo de

Basicamente, os arquivos de configurao, tanto do cliente como do Servidor de Aplicao, devem trabalha A porta TCP o que define a comunicao de uma determinada verso entre Cliente e Servidor de Aplica

Veja os exemplos desses arquivos de configuraes do cliente e do Servidor de Aplicao respectivamente

RMLabore.exe.config <appSettings> <add key="Port" value="8050"/> <add key="UseExternalHost" value="true"/> <add key="S RM.Host.Service.exe.config

<appSettings> <add key="Port" value="8050"/> <add key="ActionsPath" value="C:\CorporeRM\RM.NET" Para configurar a Arquitetura 3 Camadas da Linha RM, necessrio realizar os seguintes passos:

Para o ltimo passo, deve-se confirmar o nome do Servidor de Aplicao bem como a porta TCP. Por padr

Voltar

Consideraes

No ambiente configurado para 3 camadas o processamento das requisies ao banco de dados centralizado na mq Podemos prever que com o aumento de acesso esta mquina ter seu capacidade testada, e pode ser necessrio red

Arquitetura 3 Camadas .Net.

mente a camada de Banco de Dados, alm de todos os processos serem executados no cliente, tais como: abertura de formulrios, acesso

efas em camadas possibilita maior distribuio do processamento do sistema. Na camada cliente temos apenas os formulrios que sero a

em processos especficos. Voc pode distribuir cada servio em um servidor de aplicao. Por exemplo: um servidor de aplicao executa

Linha RM, porm extremamente simples configur-lo. Por padro o ambiente da RM no instalado em 3 Camadas. te deve ter um arquivo de configurao que aponta para o servidor de aplicao, que por sua vez possui um outro arquivo de configurao

plicao, devem trabalhar na mesma porta TCP para a mesma verso. nte e Servidor de Aplicao. Conforme figura abaixo, possvel funcionar mais de uma verso, tanto no Cliente como no Servidor de Aplica

plicao respectivamente.

lue="true"/> <add key="SelfHosted" value="false"/> <add key="Host" value=APPSERVER"/>

"C:\CorporeRM\RM.NET" /> </appSettings> <system.runtime.remoting> <customErrors mode="off"/>

guintes passos:

mo a porta TCP. Por padro, o arquivo de configurao do Servidor de Aplicao referencia a porta 8050, conforme figura abaixo.

os centralizado na mquina que prov o acesso ao servio RM.Host.Services. Pensando assim, pode ser necessrio redimensiona-la para atender a demanda.

a de formulrios, acesso a dados, regras de validao, clculos e relatrios.

s formulrios que sero abertos na execuo do programa. A camada Servidor de Aplicao fica por conta da execuo da Regra de Negc

dor de aplicao executa todas as rotinas de clculos e outro servidor, todas as execues de relatrios.

arquivo de configurao para receber as solicitaes do cliente.

mo no Servidor de Aplicao

figura abaixo.

uo da Regra de Negcio, Clculos, processos, Relatrios alm de fazer a comunicao com a Camada de Banco de Dados.

co de Dados.

<< Voltar

Script: sp_usrinputbuffer
ela identifica o ponto exato de execuo de um statement. A conexo deve estar em RUNNABLE.

Descrio: Este script cria uma procedure que auxilia durante a monitorao de conexes bloqueadas. Diferente do DBCC INPUTBUFF

USE MASTER GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_usrinputbuffer]') and OBJECTPROPERTY(id, N'IsP drop procedure [dbo].[sp_usrinputbuffer] GO CREATE PROCEDURE dbo.sp_usrinputbuffer ( @SPID smallint, @WAIT tinyint -- Intervalo = 1, de repetio entre as verificaes.Valor deve estar entre 0 e 60 segundos -- Default de 1 em 1 segundo @NoLoop bit = 1 -- Se =1, o SPID analizado apenas uma vez. Se =0 fica em loop at o final do process ) AS BEGIN SET NOCOUNT ON DECLARE @sql_handle binary(20), @handle_found bit DECLARE @stmt_start int, @stmt_end int DECLARE @line varchar(8000), @wait_str varchar(8) SET @handle_found = 0 IF @WAIT NOT BETWEEN 0 AND 60 BEGIN RAISERROR('Valores vlidos para @WAIT esto entre 0 e 60 segundos', 16, 1) RETURN -1 END ELSE BEGIN SET @wait_str = '00:00:' + RIGHT('00' + CAST(@WAIT AS varchar(2)), 2) END WHILE 1 = 1 BEGIN SELECT

@sql_handle = sql_handle, @stmt_start = stmt_start/2, @stmt_end = CASE WHEN stmt_end = -1 THEN -1 ELSE stmt_end/2 END FROM master.dbo.sysprocesses WHERE spid = @SPID AND ecid = 0

IF @sql_handle = 0x0 BEGIN IF @handle_found = 0 BEGIN RAISERROR('No pode encontrar o handle ou o SPID invlido', 16, 1) RETURN -1 END ELSE BEGIN RAISERROR('Query/Stored procedure completada', 0, 1) RETURN 0 END END ELSE BEGIN SET @handle_found = 1 END Print '******** STATEMENT SENDO EXECUTADO NO MOMENTO ************' Print '' SET @line = ( SELECT SUBSTRING( text, COALESCE(NULLIF(@stmt_start, 0), 1), CASE @stmt_end WHEN -1 THEN DATALENGTH(text) ELSE (@stmt_end - @stmt_start) END ) FROM ::fn_get_sql(@sql_handle) ) Print @line IF @NoLoop = 1 BEGIN RETURN 0 END WAITFOR DELAY @wait_str END END GO Voltar

Script: sp_usrheadblocker

Descrio: Esta procedure permite a voc identificar se existe alguma conexo bloqueada no servidor e qual a conexo causadora d

A primeira linha sempre ser a ponta (a conexo que est causando o bloqueio de todas as outras) e as demais linhas, as a liberao do recurso. Tambm possvel ver a instruo que cada conexo est executando. Ideal para ser executada

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_usrheadblocker]') and OBJECTPROPERTY(id, N'Is drop procedure [dbo].[sp_usrheadblocker] GO

Create Proc dbo.sp_usrheadblocker as Set NoCount on #NAME? CREATE TABLE #tbheadBlocked ( [Host_Id] [int] NULL , [SPID] [int] NULL , [a] [varchar] (14) NULL , [b] [int] NULL , [TextBuffer] [varchar] (255) NULL ) Create Table #tbInputBuffer( a VarChar(14), b int, TextBuffer VarChar(255)) -- Passo1 -- Insere na tabela temporria "#tbheadblocked" todos os SPID que esto bloqueados Insert Into #tbheadBlocked Select Host_id(),SPID,null,null,null from master..sysprocesses (NoLock) Where SPID in (Select Blocked from master..sysprocesses (NoLock) Where Blocked <>0)or Blocked <> 0 -- Passo 2 -- Abre um cursor para obter o DBCC InputBuffer de todas os SPID que foram inseridas -- na tabela do passo 1 e armazena em uma nova tabela temporria "#tbInputBuffer" Declare @SPID Int Declare C_Buffer CURSOR For Select SPID from #tbheadBlocked Open C_Buffer Fetch C_Buffer Into @SPID While @@Fetch_Status = 0 Begin Insert Into #tbInputBuffer exec ('Dbcc InputBuffer(' + @SPID + ') with NO_INFOMSGS ') Update #tbheadBlocked Set TextBuffer = #tbInputBuffer.TextBuffer from #tbInputBuffer Where Spid = @spid Fetch C_Buffer Into @SPID End Close C_Buffer Deallocate C_Buffer -- Passo 3 -- Faz o Join das tabelas temporrias apresentando o resultado final. #NAME? select distinct a.SPID, a.Blocked, a.ECID, a.WaitTime as WaitTimeMS, datediff (mi,a.last_batch,getDate() ) as RunAs, --Tempo de execuo em minutos SubString(a.Status,1,10) as Status, a.CPU, SubString(Cast(a.Physical_IO as Varchar(10)),1,10) as Physical_IO, SubString(a.HostName,1,15) as HostName, SubString(a.LogiName,1,15) as LoginName, SubString(DB_Name(a.dbid),1,13) as DBName, SubString(convert(VarChar(24),a.last_batch ,113),1,24) as Last_Batch, a.open_tran, a.MemUsage, b.TextBuffer

from master..sysprocesses a (NoLock) Right Outer Join #tbheadBlocked b (NoLock) On a.Spid = b.spid Where a.SPID in (Select c.Blocked from master..sysprocesses c (NoLock)Where Blocked <>0) or a.Blocked <> 0 Order By a.Blocked

Sentena para verificao da existencia de triggers na base de dados


Descrio: Lista as trigges que no esto relacionadas com o padro da linha RM SQL Server: SELECT NAME FROM SYSOBJECTS WHERE XTYPE = 'TR' WHERE NAME NOT LIKE 'Log%'; GO Oracle:

SELECT TRIGGER_NAME FROM USER_TRIGGERS WHERE TRIGGER_NAME NOT LIKE 'Log%

Script: Reindexao da base de dados /* SQL Server*/ SET NOCOUNT ON; DECLARE @objectid int; DECLARE @indexid int; DECLARE @partitioncount bigint; DECLARE @schemaname nvarchar(130); DECLARE @objectname nvarchar(130); DECLARE @indexname nvarchar(130); DECLARE @partitionnum bigint; DECLARE @partitions bigint; DECLARE @frag float; DECLARE @command nvarchar(4000); DECLARE partitions CURSOR FOR SELECT object_id AS objectid, index_id AS indexid, partition_number AS partitionnum,avg_fragmentation_in_percent AS FROM sys.dm_db_index_physical_stats (5, NULL, NULL , NULL, 'LIMITED') s,sys.sysobjects o WHERE s.object_id = o.id and o.xtype = 'U' and s.avg_fragmentation_in_percent > 10.0 AND s.index_id > 0 OPEN partitions; WHILE (1=1) BEGIN; FETCH NEXT FROM partitions INTO @objectid, @indexid, @partitionnum, @frag; IF @@FETCH_STATUS < 0 BREAK; SELECT @objectname = QUOTENAME(o.name), @schemaname = QUOTENAME(s.name) FROM sys.objects AS o JOIN sys.schemas as s ON s.schema_id = o.schema_id WHERE o.object_id = @objectid; SELECT @indexname = QUOTENAME(name) FROM sys.indexes WHERE object_id = @objectid AND index_id = @indexid;

SELECT @partitioncount = count (*) FROM sys.partitions WHERE object_id = @objectid AND index_id = @indexid;

IF @frag < 30.0 SET @command = N'ALTER INDEX ' + @indexname + N' ON ' + @schemaname + N'.' + @objectname + N' REOR IF @frag >= 30.0 SET @command = N'ALTER INDEX ' + @indexname + N' ON ' + @schemaname + N'.' + @objectname + N' REBU IF @partitioncount > 1 SET @command = @command + N' PARTITION=' + CAST(@partitionnum AS nvarchar(10)); EXEC (@command); PRINT N'Executado: ' + @command; END; CLOSE partitions; DEALLOCATE partitions;

/* Oracle */ CREATE OR REPLACE PROCEDURE REINDEXDB IS

V_COLUNA VARCHAR2 (100); LINHA INTEGER; CID INTEGER ; CURSOR TAB IS SELECT INDEX_NAME FROM dba_indexes WHERE tablespace_name<>'RM_INDICES' AND OWNER='RM' ORDER BY TABLE_NAME; BEGIN OPEN TAB; FETCH TAB INTO V_COLUNA; LOOP EXIT WHEN TAB%NOTFOUND; cid := DBMS_SQL.OPEN_CURSOR; DBMS_SQL.PARSE(cid, 'ALTER INDEX ' || V_COLUNA ||' rebuild tablespace RM_INDICES ' , dbms_sql.v7); FETCH TAB INTO V_COLUNA; DBMS_SQL.CLOSE_CURSOR(cid); end loop; CLOSE TAB; END; END /

Voltar

Passos para encontrar as querys mais demoradas no Banco de Dados


USE MSDB GO CREATE TABLE dbo.Traces( TextData VARCHAR(MAX) NULL, NTUserName VARCHAR(128) NULL, HostName VARCHAR(128) NULL, ApplicationName VARCHAR(128) NULL, LoginName VARCHAR(128) NULL, SPID INT NULL,

Descrio: Lista as de trigges procedimentos que noque esto geram relacionadas um tracecom em arquivo o padro onde da linha so armazenadas RM as principais sentenas que c

Duration NUMERIC(15, 2) NULL, StartTime DATETIME NULL, EndTime DATETIME NULL, Reads INT, Writes INT, CPU INT, ServerName VARCHAR(128) NULL, DataBaseName VARCHAR(128), RowCounts INT, SessionLoginName VARCHAR(128)) GO CREATE CLUSTERED INDEX SK01_Traces on Traces(StartTime) with(FILLFACTOR=95) GO IF EXISTS (SELECT * FROM SYSOBJECTS WHERE NAME = 'stpSet_Trace' AND XTYPE = 'P') DROP PROCEDURE [dbo].[stpSet_Trace] GO CREATE PROCEDURE [dbo].[stpSet_Trace] @on bit AS BEGIN declare @rc int, @TraceID int, @maxfilesize bigint, @intfilter int, @bigintfilter bigint select @maxfilesize = 50 -- Criao do trace exec @rc = sp_trace_create @TraceID output, 0, N'E:\Tracers\Querys_Demoradas', @maxfilesize, NULL if (@rc != 0) goto error exec sp_trace_setevent @TraceID, 10, 1, @on exec sp_trace_setevent @TraceID, 10, 6, @on exec sp_trace_setevent @TraceID, 10, 8, @on exec sp_trace_setevent @TraceID, 10, 10, @on exec sp_trace_setevent @TraceID, 10, 11, @on exec sp_trace_setevent @TraceID, 10, 12, @on exec sp_trace_setevent @TraceID, 10, 13, @on exec sp_trace_setevent @TraceID, 10, 14, @on exec sp_trace_setevent @TraceID, 10, 15, @on exec sp_trace_setevent @TraceID, 10, 16, @on exec sp_trace_setevent @TraceID, 10, 17, @on exec sp_trace_setevent @TraceID, 10, 18, @on exec sp_trace_setevent @TraceID, 10, 26, @on exec sp_trace_setevent @TraceID, 10, 35, @on exec sp_trace_setevent @TraceID, 10, 40, @on exec sp_trace_setevent @TraceID, 10, 48, @on exec sp_trace_setevent @TraceID, 10, 64, @on exec sp_trace_setevent @TraceID, 12, 1, @on exec sp_trace_setevent @TraceID, 12, 6, @on exec sp_trace_setevent @TraceID, 12, 8, @on exec sp_trace_setevent @TraceID, 12, 10, @on exec sp_trace_setevent @TraceID, 12, 11, @on exec sp_trace_setevent @TraceID, 12, 12, @on exec sp_trace_setevent @TraceID, 12, 13, @on exec sp_trace_setevent @TraceID, 12, 14, @on exec sp_trace_setevent @TraceID, 12, 15, @on exec sp_trace_setevent @TraceID, 12, 16, @on

exec sp_trace_setevent @TraceID, 12, 17, @on exec sp_trace_setevent @TraceID, 12, 18, @on exec sp_trace_setevent @TraceID, 12, 26, @on exec sp_trace_setevent @TraceID, 12, 35, @on exec sp_trace_setevent @TraceID, 12, 40, @on exec sp_trace_setevent @TraceID, 12, 48, @on exec sp_trace_setevent @TraceID, 12, 64, @on set @bigintfilter = 3000000 -- 3 segundos exec sp_trace_setfilter @TraceID, 13, 0, 4, @bigintfilter -- Set the trace status to start exec sp_trace_setstatus @TraceID, 1 goto finish error: select ErrorCode=@rc finish: END /* Ativando o trace */ exec dbo.stpSet_Trace 1 GO SELECT * FROM ::fn_trace_getinfo(default) where cast(value as varchar(50)) = 'E:\Tracers\Querys_Demoradas.trc' GO waitfor delay '00:00:04' GO create procedure stpTeste_Trace1 AS BEGIN waitfor delay '00:00:04' END GO exec stpTeste_Trace1 go

Select Textdata, NTUserName, HostName, ApplicationName, LoginName, SPID, cast(Duration /1000/1000.00 as numeric EndTime, Reads,writes, CPU, Servername, DatabaseName, rowcounts, SessionLoginName FROM :: fn_trace_gettable('E:\Tracers\Querys_Demoradas.trc', default) where Duration is not null order by Starttime

Voltar

Procedimentos para avaliao do log do banco de dados

A avaliao do log do banco de dados pode ser realizada de vrias formas, sendo a mais comum atravs do Managemen

Mas h outras formas de ler estes logs, como acontece quando utilizamos as procedures sp_readerrorlog e sp_readerrorlog: Aceita 4 parametros 1. Valor correspondente ao log de erros que se pretende ler: 0 = corrente, 1 = Arquivado #1, 2 = 2. Tipo do Log: 1 or NULL = Log de erros do Server, 2 = Log do SQL Agent 3. String de pesquisa 1: String para pesquisa nos resultados 4. String de pesquisa 2: String para refinamento da pesquisa Exemplo:
EXECUTE sp_readerrorlog 3, 1, 'load'

Se nenhum parmetro for informado o log corrente ser mostrado. xp_readerrorlog: Aceita 7 parametros 1. 2. 3. 4. 5. 6. 7. Valor correspondente ao log de erros que se pretende ler: 0 = corrente, 1 = Arquivado #1, 2 = Tipo do Log: 1 or NULL = Log de erros do Server, 2 = Log do SQL Agent String de pesquisa 1: String para pesquisa nos resultados String de pesquisa 2: String para refinamento da pesquisa Data inicial para a busca Data final para a busca Ordenao dos resultados: N'asc' = ascendente, N'desc' = descendente

Exemplo:
EXECUTE xp_readerrorlog 3, 1, 'load', NULL, NULL, N'desc'

Voltar

Procedimento realizar a atualizao das estatsticas no banco de dados atravs d


SQL Server CREATE PROCEDURE RMAtualizaEstatisticas AS DECLARE @tablename nvarchar(300) DECLARE @tablename_header nvarchar(150) DECLARE tnames_cursor CURSOR FOR SELECT name FROM sysobjects WHERE type = 'U' OPEN tnames_cursor FETCH NEXT FROM tnames_cursor INTO @tablename WHILE (@@fetch_status <> -1) BEGIN IF (@@fetch_status <> -2) BEGIN SELECT @tablename_header = 'Atualizando ' + RTRIM(UPPER(@tablename)) PRINT @tablename_header EXEC ('UPDATE STATISTICS ' + @tablename ) END FETCH NEXT FROM tnames_cursor INTO @tablename END PRINT ' ' PRINT ' ' SELECT @tablename_header = '************* Fim das Tabelas *************' PRINT @tablename_header PRINT ' ' PRINT 'As estatisticas foram atualizadas para todas as tabelas' DEALLOCATE tnames_cursor

Oracle DBMS_STATS.CREATE_STAT_TABLE ( ownname VARCHAR2, stattab VARCHAR2, tblspace VARCHAR2 DEFAULT NULL);

Voltar

Procedimento desabilitar a gerao automtica das estatsticas e exclui-la das ba


declare @tab_nome varchar(255) declare @tab_statistic varchar(255)

declare @sql_str varchar(255) declare @db_nome varchar(255)

select @db_nome=name from master..sysdatabases where dbid=(select dbid from master..sysprocesses where spid=@@ set @sql_str= 'sp_dboption ''' + @db_nome + ''',''auto create statistics'',''false''' exec (@sql_str) set @sql_str= 'sp_dboption ''' + @db_nome + ''',''auto update statistics'',''false''' exec (@sql_str) checkpoint declare cur cursor for SELECT object_name(id),name FROM SYSINDEXES WHERE NAME LIKE '_WA_Sys%' set nocount on open cur fetch next from cur into @tab_nome,@tab_statistic while(@@fetch_status=0) begin set @sql_str='drop statistics ' + @tab_nome + '.' + @tab_statistic print @sql_str exec (@sql_str) fetch next from cur into @tab_nome,@tab_statistic end close cur deallocate cur set nocount off

Voltar

Verificando a verso e o patch instalado


partir da verso 11.00 possivel verificar qual a verso do usurio atravs da tabela GLOGIN

Sentena SQL: SELECT LOGINID, USERNAME, COMUPERNAME, CODSISTEMA, APPVERSION, LIBVERSION FROM GLOGIN GO Relsutado:

Voltar

Definindo a opo max degree of parallelism

A opo max degree of parallelism uma opo avanada. Se voc estiver usando o procedimento armazenado no siste alterar max degree of parallelism apenas quando show advanced options estiver definida como 1. A configurao ter efe O exemplo a seguir define a opo max degree of parallelism como 8.

sp_configure 'show advanced options', 1; GO RECONFIGURE WITH OVERRIDE; GO sp_configure 'max degree of parallelism', 8; GO RECONFIGURE WITH OVERRIDE; GO

queadas. Diferente do DBCC INPUTBUFFER, dado um SPID,

e estar em RUNNABLE.

) and OBJECTPROPERTY(id, N'IsProcedure') = 1)

entre 0 e 60 segundos

=0 fica em loop at o final do processo.

segundos', 16, 1)

1 ELSE stmt_end/2 END

ndle ou o SPID invlido', 16, 1)

completada', 0, 1)

LLIF(@stmt_start, 0), 1),

THEN DATALENGTH(text) (@stmt_end - @stmt_start)

servidor e qual a conexo causadora do bloqueio.

das as outras) e as demais linhas, as que esto aguardando xecutando. Ideal para ser executada junto com a sp_usrinpubuffer durante problemas de performance.

r]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)

tbInputBuffer Where Spid = @spid

ase de dados

WHERE NAME NOT LIKE 'Log%';

E TRIGGER_NAME NOT LIKE 'Log%';

m,avg_fragmentation_in_percent AS frag

0.0 AND s.index_id > 0

ame + N'.' + @objectname + N' REORGANIZE';

ame + N'.' + @objectname + N' REBUILD';

>'RM_INDICES' AND OWNER='RM'

INDICES ' , dbms_sql.v7);

nco de Dados

enadas as principais sentenas que consomem recursos no banco de dados

emoradas', @maxfilesize, NULL

t(Duration /1000/1000.00 as numeric(15,2)) Duration, Starttime,

mais comum atravs do Management Studio (SQL Server) e Enterprise Manager (Oracle), como exemplo abaixo.

as procedures sp_readerrorlog e xp_readerrorlog.

orrente, 1 = Arquivado #1, 2 = Arquivado #2, etc...

orrente, 1 = Arquivado #1, 2 = Arquivado #2, etc...

banco de dados atravs da prodedure RMAtualizaEstatisticas

tsticas e exclui-la das base de dados

aster..sysprocesses where spid=@@SPID)

NAME LIKE '_WA_Sys%'

LIBVERSION FROM GLOGIN

o procedimento armazenado no sistema sp_configure para alterar a configurao, ser possvel nida como 1. A configurao ter efeito imediatamente (sem a reinicializao do servio MSSQLSERVER).

Avaliando Indices
Auditar o use de indices no uma tarefa fcil, mas fundamental para elevar a performance no banco de dados.

Tipos de avaliao: Indexes (Clustered) Indexes (Composio) Indexes (Covering) Indexes (Non-clustered) Indexes (Rebuild) Index Tuning Wizard

ormance no banco de dados.

Limpeza de objetos da base de dados GJOBX, GJOBXEXECUCAO e GJOBLOG

No haver problemas em efetuar o comando DELETE nas tabelas citadas acima. Recomendamos que sempre antes de efetuar um delete em uma tabela que seja feito um BACKUP da base de dados Exemplo:
DELETE GRELBATCH WHERE IDJOBLOG IN ( SELECT IDJOBLOG FROM GJOBLOG WHERE DATACRIACAO < '01/01/2010' ) GO DELETE GJOBLOG WHERE DATACRIACAO <'01/01/2010' GO DELETE GJOBXEXECUCAO WHERE DATAPROGRAMADA < '01/01/2009' GO DELETE GJOBX WHERE DATACRIACAO <'01/01/2009' GO

ACKUP da base de dados.

PROCEDIMENTOS PARA REALIZAO DE TESTES

Desabilitando as triggers para avaliao do desempenho das rotinas SQL Server: exec sp_MSforeachtable 'ALTER TABLE ? DISABLE TRIGGER ALL'

Oracle:

DECLARE V_TRIGGER VARCHAR2 (200); CID INTEGER ; CURSOR OBJ IS SELECT TRIGGER_NAME FROM USER_TRIGGERS ORDER BY TRIGGER_NAME; BEGIN OPEN OBJ; FETCH OBJ INTO V_TRIGGER; LOOP EXIT WHEN OBJ%NOTFOUND; CID := DBMS_SQL.OPEN_CURSOR; Dbms_Output.Enable (30000); Dbms_Output.Put_Line ('Eliminando trigger ' || V_TRIGGER || '...'); DBMS_SQL.PARSE(cid, 'ALTER TABLE ' || TABLE_NAME || ' DISABLE TRIGGER A FETCH OBJ INTO V_TRIGGER; DBMS_SQL.CLOSE_CURSOR(CID); END LOOP; CLOSE OBJ; END; Para habilitar novamente as triggers SQL Server: exec sp_MSforeachtable 'ALTER TABLE ? ENABLE TRIGGER ALL'

Oracle:

DECLARE V_TRIGGER VARCHAR2 (200); CID INTEGER ; CURSOR OBJ IS SELECT TRIGGER_NAME FROM USER_TRIGGERS ORDER BY TRIGGER_NAME; BEGIN OPEN OBJ; FETCH OBJ INTO V_TRIGGER; LOOP EXIT WHEN OBJ%NOTFOUND; CID := DBMS_SQL.OPEN_CURSOR; Dbms_Output.Enable (30000); Dbms_Output.Put_Line ('Eliminando trigger ' || V_TRIGGER || '...'); DBMS_SQL.PARSE(cid, 'ALTER TABLE ' || TABLE_NAME || ' ENABLE TRIGGER A FETCH OBJ INTO V_TRIGGER;

DBMS_SQL.CLOSE_CURSOR(CID); END LOOP; CLOSE OBJ; END;

TRIGGER_NAME;

|| ' DISABLE TRIGGER ALL' , dbms_sql.v7);

TRIGGER_NAME;

|| ' ENABLE TRIGGER ALL' , dbms_sql.v7);

<< Voltar

Procedimentos para executar o Profiler do SQL Server 2005.

Menu Programas Microsoft SQL Server 2005 Performance Tools SQL Server Profiler conforme figu

Figura 1

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

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

Figura 3

Em SQL Server informar o nome do servidor que se encontra o banco de dados Caso seja Administrador da mquina poder utilizar Windows authentication caso contrario utilizar SQ Ser exibida a janela abaixo, solicitando o nome para o Arquivo de trace (trace name), neste dever ser colocad

Figura 4

Selecionar a guia orelha Events Selection, marque as opes Show all events e Show all coluns para q

Geralmente o eventos a serem adicionados so: Errors and Warnings,Stored Procedure,Transactions e T

Obs.: O eventos (Security Audit,Sessions,Stored Procedures,TSQL) por padro vem marcados podendo m

Figura 5

Selecionar o boto Column Filters... . Nesta janela ser configurado os critrios para realizar a monitora

Obs.: Caso no saiba o nome do banco de dados, este poder ser verificado na propriedade DATABASE NA

Figura 6

Conforme citado acima o outro critrio a ser configurado ser o HostName, neste dever ser adicionado o no

Figura 7

Aps este procedimento, clicar no boto OK e logo em seguida no boto RUN, o profiler ir comear a grava

Figura 8

Logo aps clicar na opo STOP , ir ao menu File Save as Trace File e informar um nome qualquer p

Figura 9

Figura 10

r Profiler conforme figura abaixo.

contrario utilizar SQL Server authentication e logar com o usurio SA. neste dever ser colocado qualquer nome conforme tela abaixo.

Show all coluns para que possa ter uma melhor visualizao dos eventos, na coluna events marque os eventos que voc deseja q

dure,Transactions e TSQL

m marcados podendo manter os mesmos.

a realizar a monitorao do log, desta forma podemos monitorar isoladamente o que uma determinada estao esta realizando no

dade DATABASE NAME do alias no BDE.

er ser adicionado o nome da mquina na rede Ex: SERVER, STENOVATO, conforme janela abaixo :

ler ir comear a gravar todas as transaes enviadas para o banco de dados, simular o erro no aplicativo logo aps clicar no bot

ar um nome qualquer para o arquivo e clique no boto Salvar. Conforme janela abaixo.

entos que voc deseja que sejam gravados a serem gravados no log a ser gerado conforme tela abaixo.

ao esta realizando no banco de dados especificado, dever ser configurado os critrios DataBaseName e HostName. Em Dat

logo aps clicar no boto STOP conforme janela abaixo

e HostName. Em DataBaseName expandir ( clicar no sinal de + mais ao lado deste critrio) e no item like adicionar o nome

like adicionar o nome do banco de dados Ex: EXEMPLO, CORPORE. Conforme janela abaixo.

Portabilidade para Servidor de Banco de Dados Verses Homologadas

SGDB SQL Server 2000 SQL Server 2005 SQL Server 2008 Oracle 9i Oracle 10g Oracle 11g

32 bits 64 bits X X X X X X X X X X X X

Verso/Patch SP4 SP3 SP1 9.2.0.8 10.2.0.4 11.1.0.7

INFO TOTVS No recomendado Recomendado

Recomendado

*)

do (

do r

om en da

ss a

ro s

ut

n im

ce

/O

Pr o

Intel Core 2 Duo de 1.6 GHz ou 4GB SIMILAR.

8GB

XEON QUADRIPROCESSADO, SIXCORE ou SIMILAR.

16GB

Disco SAS 15k, Placa Controladora com 256 MB 02 Discos de 146GB SAS 15k (RAID 1) Placa Controladora com 32GB 256 MB de Cach e Bateria, 02 Placas HBA Dual Chanel de 4 GBps

ec

.d
20 300

(*) Configurao recomendada para utilizao intensiva de recursos de BI, tais como grficos anexos, painis de cenr Restries e avisos importantes

A TOTVS recomenda aos usurios do banco de dados Microsoft SQL Server 2000, o upgrade para o SQL Server 200 Bancos de dados do MS-SQL 2005 e MS-SQL 2008 devem ter o Nvel de Compatibilidade SQL Server 2000 (8). n O banco de dados da RM no suporta replicao total (de todas as tabelas) da base de dados. recomendado pela TOTVS que o software de banco de dados no 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 (Gesto Estratgica) seja executado em uma base de dados D-1 para n

su

rio

s, painis de cenrios (dashboard) e painis metas.

o SQL Server 2005 ou 2008 e reconfigurao do seu nvel de isolamento, para obter melhorias de desempenho. erver 2000 (8). necessrio instalar os servidores SQLs com essa compatibilidade para manter a estabilidade de comunicao entre o BD

ados RM. dados D-1 para no comprometer o desempenho da base de dados de produo.

comunicao entre o BDE e o banco de dados.

Voltar

BDE

A utilizao de valores muito altos para BLOB SIZE, BLOBS TO CACHE e MAXFILEHANDLES pode lev No ambiente do DataCenter foi ajustado o parmetro BLOB SIZE de 3000 para 512. Este parmetro pode ser Sugerimos as seguintes configuraes Database: BLOB SIZE = 512 BLOBS TO CHACHE = 1024 Configuration Native MSSQL: TIMEOUT = 7200 Configuration System Init: MAXFILEHANDLES = 2048 MEMSIZE = 205

Configurando o Windows para gerenciar mais que 2GB de


Esta sesso aplica-se a ambientes com a seguinte configurao: Objetivo de expanso do uso de memria alm dos 2GB. Sistema operacional Server 32-bits Windows Server 2003 Windows Server 2003, Enterprise Edition Windows Server 2003, Datacenter Edition Windows 2000 Advanced Server Windows 2000 Datacenter Server

Normalmente, um processo em execuo no Windows 2000 ou no Windows Server 2003 pode acessar at 2 G Quanto mais programas forem executados (e, por isto, mais processos), mais memria ser comprometida at

Quando esta situao ocorre, o processo de paginao aumenta dramaticamente e o desempenho pode sofrer u e do Windows Server 2003 usam o PAE para fornecer mais memria fsica a um programa. Isso reduz a nece no desempenho. O programa no est ciente do tamanho real da memria. Todo o gerenciamento e alocao d

independentemente dos programas em execuo.


Sistema Operacional Windows 2000 Advanced Server Windows Server 2003 Standart Edition Windows Server 2000 Datacenter Windows Server 2003 Enterprise Edition Windows Server 2003 Datacenter Edition Mximo de memria comsuporte PAE 8 GB de memria de RAM 4 GB de memria de RAM 32 GB de memria de RAM 32 GB de memria de RAM 64 GB de memria de RAM

Using the AWE API for Servers with Large Amounts of Memory

For computers with more than 2 GB of memory (or 3 GB if /3GB is set for Windows), SQL Server 2005 can use the Add
To enable AWE in SQL Server 2005, run the following script:

EXEC sp_configure 'show advanced options', 1 RECONFIGURE GO EXEC sp_configure 'awe enabled', 1 RECONFIGURE GO Voltar

Virtualizando o ambiente de banco de dados

Rodando o SQL Server em um ambiente virtual

H duas maneiras para separar as aplicaes SQL Server em unidades lgicas de isolamento. Um deles para executa maneira executar o SQL Server dentro de um ambiente virtual. Executando vrias instncias do SQL Server em um a palavras, cabe a cada instncia do SQL Server para isolar os recursos do sistema, dados e segurana dos outros. Vrias virtual so completamente isolados uns dos outros como se cada um fosse executado em um servidor fsico separado importante notar que um dos benefcios de um ambiente virtual que ele pode executar qualquer sistema operacio ambiente virtual pode estar executando o Windows Server 2003, outro pode executar o Windows NT 4.0, e ainda um ambientes configurado como uma mquina virtual separada rodando em um servidor fsico e deve cumprir os requi Um ambiente virtual consiste em uma ou mais mquinas virtuais. Cada mquina virtual requer seu prprio sistema op memria e ciclos de processador. Se voc pretende virtualizar SQL Server 2005, voc deve considerar os recursos nece aproximadamente 32 MB mais a mesma configurao rodando em uma mquina fsica. Essa memria adicional exig Outra considerao o espao em disco e desempenho. Como cada mquina virtual executa uma instncia virtual do fsicos fazem. No entanto, cada mquina virtual est fazendo isso ao mesmo tempo, o que resulta em operaes de di da escolha do tipo de hardware que ir executar ambientes virtuais. Executando vrias instncias do SQL Server fsica dentro de um ambiente bem adequada para aplicaes que tm re ou exigir um certo nvel de isolamento. Os aplicativos que usam vrias instncias fsica no pode ser facilmente recons instncias fsicas em um ambiente de formao no pode ser a melhor escolha. Virtual SQL Server 2005 instncias so treinamento. Os ambientes virtuais de aplicativos e separar os dados do hardware subjacente. Isso permite que uma m facilidade.

Executando o SQL Server 2005 em um ambiente virtual tem inmeras vantagens. Os ambientes virtuais podem efetiva necessrios para uma organizao minimizado. A virtualizao tambm permite que os aplicativos legados e bancos

Executando o SQL Server 2005 em um ambiente virtual tem inmeras vantagens. Os ambientes virtuais podem efetiva necessrios para uma organizao minimizado. A virtualizao tambm permite que os aplicativos legados e bancos conservar o espao e as despesas de alimentao. Se a sua organizao est a ponderar virtualizao do SQL Server 2005, Enterprise Edition tem vantagens sobre o licen processadores disponveis fsico. Se todos os processadores fsicos disponveis so licenciados, Enterprise Edition no Embora a virtualizao tem muitos benefcios, no a soluo certa para cada caso. Para aplicaes de transferncia m escalvel, a virtualizao pode no ser a melhor escolha. Nesses cenrios, executando vrias instncias do SQL Server

Voltar

TopConnect

o aplicativo que faz a intermediao do TOTVSSped com os vrios tipos de banco de dados com os quais ele pode t O TopConnect deve ser instalado somente em uma estao. Por poder trabalhar com vrios tipos de banco de dados tambm no necessrio que o mesmo seja instalado em seu servidor de banco de dados.

aconselhada a criao de uma base de dados exclusiva para o SPED devido ao fato do processo gerar muito notas ser executado com muita freqncia nas suas tabelas.

Caso deseje ele pode apontar o TopConnect para sua base do Corpore RM. A escolha da base de dados e do banco p utilizada isto no poder ser refeito sem a perda de dados da base do SPED.

LEHANDLES pode leva uma menor performance de algumas rotinas. A necessidade de incrementar estes parmetros se dar pelo ste parmetro pode ser configurado com valores > 32 e < 1000, portanto o valor antigo era invlido.

que 2GB de memria

003 pode acessar at 2 GB de espao com uma parte da memria sendo fsica e outra virtual. ser comprometida at o total de 2 gigabytes (GB) de espao de endereo.

sempenho pode sofrer um impacto negativo. Os gerenciadores de memria do Windows 2000 ama. Isso reduz a necessidade de trocar a memria do arquivo de paginao e resulta em aumento enciamento e alocao de memria da memria PAE controlado pelo gerenciador de memria

ver 2005 can use the Address Windowing Extensions (AWE) API to access the extended memory space in order to store data pages. For m

Um deles para executar o SQL Server em vrias instncias dentro de um ambiente fsico. Outra s do SQL Server em um ambiente fsico isola cada instncia no nvel do aplicativo. Em outras urana dos outros. Vrias instalaes SQL Server que cada executado dentro de um ambiente servidor fsico separado, o que permite o isolamento no nvel do sistema operacional. ualquer sistema operacional suportado pela aplicao da tecnologia virtual. Por exemplo, um dows NT 4.0, e ainda um outro pode executar o Windows Server 2000. Cada um desses e deve cumprir os requisitos que o sistema operacional especfico de licenciamento. er seu prprio sistema operacional, a aplicao da pilha, e os recursos, incluindo o espao em disco, nsiderar os recursos necessrios para cada mquina virtual. Uma mquina virtual requer memria adicional exigido pelo Virtual Server 2005 para gerenciar o ambiente virtual. uma instncia virtual do Windows, cada um gere paginao para o disco, assim como ambientes sulta em operaes de disco real na mquina fsica. Estes fatores devem ser considerados quando

ara aplicaes que tm rendimento muito elevado ou aqueles que devem ser altamente escalvel ode ser facilmente reconstruda ou redefinir a um estado primitivo. Portanto, executando vrias erver 2005 instncias so well-suited para aplicaes de mdio e baixo, como ambientes de e. Isso permite que uma mquina virtual a ser copiado de um servidor para outro com muita

es virtuais podem efetivamente consolidar servidores a fim de que o nmero total de servidores cativos legados e bancos de dados para executar em um ambiente tecnologicamente atuais e pode

es virtuais podem efetivamente consolidar servidores a fim de que o nmero total de servidores cativos legados e bancos de dados para executar em um ambiente tecnologicamente atuais e pode

m vantagens sobre o licenciamento edies Standard e Workgroup quando voc licenciar todos os s, Enterprise Edition no requer adicional SQL Server 2005, os certificados para mquinas virtuais. caes de transferncia muito elevada e aplicaes de banco de dados que devem ser altamente nstncias do SQL Server 2005 seria uma melhor escolha.

s com os quais ele pode trabalhar. So eles: DB2, MSSQL, Oracle, Informix, PostGres, MySQL. ipos de banco de dados no necessrio que o mesmo seja para a base do Corpore RM e apontado

o processo gerar muitos registros e do servio de consulta de autorizao das

se de dados e do banco para o SPED fica a cargo do cliente. Uma vez definido o banco e a base a ser

parmetros se dar pelo volume de informaes processadas em cache nesta rotinas.

store data pages. For more information on this technology, along with additional caveats, see Enabling AWE Memory for SQL Server in SQ

ory for SQL Server in SQL Server Books Online.

Virutalizao de ambientes OLAP

Voltar

Caching
Configurando o cache de sada do IIS
Aplica-se a: Windows 7, Windows Server 2008, Windows Server 2008 R2, Windows Vista

No IIS 7, voc pode configurar o cache de sada para aprimorar o desempenho no servidor Web e no we o IIS processar a solicitao e retornar uma pgina ao navegador cliente. Se voc habilitar o cache de na memria no servidor Web e retornada aos navegadores cliente nas solicitaes subseqentes para es sempre que ela for solicitada. Isso til quando o seu contedo depender de um programa externo para como de um compartilhamento ou banco de dados remoto.

possvel realizar este procedimento usando a UI (interface de usurio) ou uma linha de comando.

Para criar uma regra de cache de sada

Para usar a UI 1. Abra o Gerenciador do IIS e navegue at o nvel que deseja gerenciar. Para obter mais informaes 2. Em Exibio de Recursos, clique duas vezes em Cache de Sada. 3. No painel Aes, clique em Adicionar. 4. Na caixa de dilogo Adicionar Regra de Cache, na caixa Extenso de nome de arquivo, insira a 5. Marque a caixa de seleo Cache de modo de usurio para habilitar o cache de sada e selecione Usando notificaes de alterao de arquivo: se quiser que um item seja removido do cache qu

Em intervalos (hh:mm:ss): se quiser que um item seja removido do cache depois que determinad

Voltar

Compresso de pginas

Fazendo uma analogia, compactar objetos da pgina via server semelhante a zipar um arquivo grande para e envia por e-mail para seu amigo (o browser) que, por sua vez, descompacta o arquivo zip para ver a i

Para ativar o IIS a comprimir pginas .aspx, siga estes passos:


1. Abra uma linha de comandos (CMD). 2. Execute o comando: net stop iisadmin (pressioneENTER) 3. Acesse o diretrio C:\InetPub\adminscripts Comando: cd C:\InetPub\adminscripts 4. Execute o seguinte comando, pressionando ENTER ao final:

Dll "exe cscript.exe ADSUTIL.VBS SET W3SVC/Filters/compresso/GZIP/HcScriptFileExtensions

5. Execute o seguinte comando, pressionando ENTER ao final:

aspx"cscript.exe ADSUTIL.VBS SET W3SVC/Filters/compresso/DEFLATE/HcScriptFileExtension 6. Execute o comando: net start w3svc e na linha de comando para iniciar o IIS

ows Vista

o servidor Web e no web site. Quando um usurio solicitar uma pgina da Web, voc habilitar o cache de sada, uma cpia dessa pgina da Web processada ser armazenada es subseqentes para esse mesmo recurso. Isso elimina a necessidade de reprocessar a pgina m programa externo para processamento, como com um programa CGI, ou incluir dados de uma fonte externa,

linha de comando.

obter mais informaes sobre como abrir o Gerenciador do IIS, consulte IIS 7.0: Abrir o gerenciador do IIS. Para obter inf

me de arquivo, insira a extenso de nome de arquivo, como .aspx, para a qual deseja criar uma regra de cache. he de sada e selecione uma das seguintes opes:

a removido do cache quando for atualizado.

depois que determinado tempo decorrer. Em seguida, digite uma hora no formato de hh :mm :ss (onde h so horas, m s

ar um arquivo grande para enviar por e-mail: voc (servidor web) zipa um grande da famlia (o componente da pgina)retrato arquivo zip para ver a imagem. Os mtodos de compresso mais comuns so Deflate e gzip.

ZIP/HcScriptFileExtensions"asp"" "aspx"

LATE/HcScriptFileExtensions"asp""dll""exe""

e externa,

do IIS. Para obter informaes sobre como navegar at locais na interface do usurio, consulte IIS 7.0: Navegao no ge

gra de cache.

nde h so horas, m so minutos e s so segundos) na caixa correspondente.

na)retrato

7.0: Navegao no gerenciador do IIS.

Voltar

Acesso o Portal do Cliente no site da TOTVS para ter utilizar os servios que foram disponibilizados para ajud

http://www.totvs.com/web/portaldocliente

Voltar

Log de auditoria

Auditoria Qualquer rotina de auditoria se resume em controlar processos, sempre que controlamos algo tornamos nossos p

Entendendo o LOG O LOG de auditoria composto por uma serie de Triggers que so habilitadas no banco. Podemos selecionar tabelas e campos para auditoria. Com ele podemos obter um histrico de todas as Incluses/alteraes /excluses que ocorreram nos campos selecio Quando selecionamos um campo/tabela para auditoria automaticamente habilitamos a trigger referente a esta tabe Quando o campo marcado sofre uma ao (incluso/alterao/excluso) a trigger disparada e grava na tabela de L alterados. Preo que pagamos ao usar o LOG Quanto mais campos e tabelas auditamos, mais recursos de hardware (servidor) so necessrios. Se o LOG for usado com critrio, no haver degradao de performance. A perda de performance vai depender de dois fatores inversamente proporcionais O quanto de nossos processos estamos auditando X O quanto de Recursos de Mquina temos disponvel

Quando falamos em performance temos que nos atentar a algumas regras que devem ser cuidadosamente analisada Devemos marcar somente os campos que realmente tem necessidade de auditoria. Por exemplo, se marcarmos o campo Salrio ta tabela PFUNC, este campo no sofre alteraes ha todo momento. N Ao contrario, se marcarmos um campo de uma tabela sofre alteraes constantes, por exemplo, valor original da tab cliente processa em media 200 lanamentos por dia ... isso pode ocasionar perda de performance, pois a trigger e importante salientar que no h como afirmar que haver perda de performance, pois vrios fatores contribuem pa rede. Quanto mais parrudo o servidor menos impactos teremos na performance. Temos relatos de clientes que auditam tabelas que sofrem alteraes constantes e nem por isso perderam performa hiperdimensionado.

Um mal exemplo de utilizao do Log seria marcar sem critrio todos os campos da varias tabelas, isso far com que

Um mal exemplo de utilizao do Log seria marcar sem critrio todos os campos da varias tabelas, isso far com que informaes na tabela de LOG, acarretaria em uma massa de dados muito grande, dificultando inclusive a leitura de

OBS: O Log armazenado no banco pelo numero de dias parametrizado pelo usurio, se informado 20 dias a tabela Vale ressaltar que dependendo da quantidade de campos auditados e dias para armazenamento a tabela de LOG po podem interferir no gerenciamento do SGDB. O mais importante ter critrio e selecionar para Log somente o que necessrio.
Voltar

Utilizao do TSS
Arquitetura de Comunicao

Configurador do TSS para o banco de dados SQL Server

No menu Iniciar | Programas | TOTVS | TOTVSped e clique em TOTVSSped Monitor para abrir o monitor. Imagens da

O TSS tambm utilizado por nosso Sistema de Gesto Fiscal (RM Lber) para gerar as informaes da EFD por isso

ponibilizados para ajud-lo no dia a dia.

algo tornamos nossos processos mais lentos.

eram nos campos selecionados para serem auditados pelo LOG. ger referente a esta tabela. da e grava na tabela de LOG dados sobre o autor da ao e valores

os disponvel

uidadosamente analisadas.

es ha todo momento. No h impacto sobre performance. mplo, valor original da tabela de Lanamentos , suponhamos que o ormance, pois a trigger estar sendo executada a todo momento. os fatores contribuem para isso como configurao de maquina e isso perderam performance, porem sabemos que seu ambiente

abelas, isso far com que o sistema grave a todo o momento

abelas, isso far com que o sistema grave a todo o momento ndo inclusive a leitura destes registros.

ormado 20 dias a tabela mantm os registros dos ltimos 20 dias. ento a tabela de LOG pode assumir propores gigantescas que

ir o monitor. Imagens da Guia TopConnect no Monitor. Veja a explicao dos campos

maes da EFD por isso ele contm informaes relacionadas a esta rotina.

Voltar Como verificar se o log de auditoria est habilitado na base de dados

Você também pode gostar