Gestão de Memória no Reporting Services
Olá pessoal :)
Uma dúvida muito comum que recebo é: posso por o meu servidor de relatórios (Reporting Services) no mesmo servidor de base de dados (database engine). A resposta é: claro que pode…. tecnicamente, mas dependendo da demanda, não é uma boa estratégia quando o objetivo é performance.
O foco aqui será a questão da gestão da memória RAM, mas o fato de usar o mesmo servidor também tem impacto na parte de processamento (vamos deixar isso para um post futuro abordando arquitetura :) ).
É fato que a engine relacional do SQL Server utiliza toda a memória disponível para ele, seja com cache de dados, planos e etc. A questão é que o Reporting Services também tenta fazer isso. E a velha máxima persiste: dois corpos não podem ocupar o mesmo local no espaço ao mesmo tempo.
Ok.. ok… traduzindo: a mesma porção de memória não pode ser ocupada por dois processos ao mesmo tempo.
SQL Server Reporting Services – Trace Log e HTTP Log
Olá!
Assim como a engine do SQL Server e muitos outros produtos (Microsoft ou não), estes possuem um log de trace sobre o que acontece com o aplicativo/serviço, não acontece diferente no Reporting Services.
Os arquivos de trace log do Reporting Services variam de acordo com a versão do SQL Server. Até o SQL Server 2005 (onde ainda tinhamos dependência do IIS para o SSRS) haviam 4 tipos de arquivos de log que por padrão são limitados a 32MB por arquivo e são automaticamente deletados após 14 dias. Estes arquivos são texto plano, então qualquer editor de texto consegue abrir.
Licenciamento no SQL Server 2012
Depois da série sobre licenciamento no SQL Server 2008 R2, muitos me perguntaram o que mudou no 2012.
Houveram diversas mudanças com objetivo de facilitar o licenciamento, tanto em cenários virtualizados ou físicos.
A Lívia Sarto que trabalha no time de produto de SQL Server na Microsoft Brasil fez três posts explicando as principais mudanças. Vale a pena a leitura, ainda que sejamos técnicos é algo interessante de se saber ao menos o básico!
Licenciando o SQL Server 2012 – Part I
Licenciando o SQL Server 2012 – Part II
Licenciando o SQL Server 2012 – Part III
Em breve teremos novos posts lá sobre licenciamento, então fiquem ligados. :)
Grande abraço!
Thiago Zavaschi
Hierarquias no Analysis Services
Olá!
Hoje irei comentar um pouco sobre hierarquias no Analysis Services, seus benefícios e alguns dos parâmetros importantes quando definimos/criamos uma.
Os elementos que compõem uma dimensão são chamados de atributos. Estas dimensões são responsáveis por dar contexto às medidas (measures) numéricas contidas no cubo (total de vendas, quantidade de vendas ano sobre ano, entre outras de acordo com o seu negócio) e muitas vezes podem conter dezenas de atributos.
Com uma grande quantidade de atributos pode ser complicado a um usuário de uma ferramenta de análise (Excel por exemplo) navegar por estes atributos. Para facilitar esta navegação, podem ser criadas hierarquias dentro destas dimensões. Além de facilitar a navegação (drill down e drill up), o SSAS consegue se utilizar destas hierarquias (desde que os atributos tenham um relacionamento natural) para criar índices e agregações pré-calculadas e assim agilizar o tempo de resposta das queries dos usuários.
Análise de Performance no Reporting Services (SSRS)
Olá pessoal,
O servidor de relatórios contido na suíte do SQL Server é muito usado e há uma série de características sobre ele que não usamos ou que desconhecemos que existe.
Hoje vou comentar sobre um dos pontos iniciais a se olhar quando são identificados problemas relacionados a performance no SSRS e indicar um direcionamento para a análise.
O primeiro ponto que podemos olhar é o Execution Log que nos provê dados relacionados às execuções de relatórios no servidor.
Alterando o local de armazenamento dos snapshots do Reporting Services (SSRS)
Olá pessoal!
O Reporting Services (SSRS) possui diversos recursos associados a gestão, entrega e administração dos relatórios criados nele, não é apenas uma engine para renderização dos mesmos.
Um recurso que é muito interessante no SSRS é a capacidade de armazenar snapshots de relatórios para posterior consulta de uma informação baseada em dados de um tempo passado (“frozen in time data”).
Por padrão os snapshots ficam armazenados em uma base de dados do SSRS. O Reporting Services possui duas databases cujos nomes e principais funções são:
-
ReportServer: Responsável por armazenar partes da configuração do SSRS (outras partes são armazenadas em arquivos de configuração), metadados e definições de relatórios, configurações de segurança, dados de agendamento e entrega de relatórios, etc. É nesta database que se os snapshots são armazenados por padrão.
-
ReportServerTempDB: Base de dados utilizada para armazenamento do cache, processamento intermediário, etc. A perda dos dados desta database não deve afetar o funcionamento normal do SSRS. O que pode impactar os usuários é: lentidão até ter um novo cache armazenado (se configurado), e um erro dizendo que a conexão se perdeu (rsExecutionNotFound). Algo importante de lembrar é que o SSRS não faz a reconstrução desta base de dados. Então pode ser interessante ter um script para reconstrução da mesma à mão. :)
Muitas das vezes, vulgo 100%, não deseja-se perder estas informações. Uma alternativa para quem quer armazenar estas informações de snapshot em outro local é armazená-los no file system (observação: foi utilizado o SSRS do 2008 no exemplo).
Para isso são necessários dois passos:
1) No arquivo de configuração RSReportServer.config coloque como “True” os parâmetros: WebServiceUseFileShareStorage e WindowsServiceUseFileShareStorage.
2) Configure o parâmetro FileShareStorageLocation para um caminho completo, exemplo: “C:\SSRSSnapshots”. O caminho padrão é: “C:\Program Files\Microsoft SQL Server\MSRS10.MSSQLSERVER\Reporting Services\RSTempFiles”.
É isso. :)
[]s!
Performance no SQL Server Analysis Services (SSAS)
É muito comum existirem dúvidas por parte dos profissionais que trabalham com a plataforma de dados ao saírem do mundo relacional para o mundo multidimensional. Em geral, estas dúvidas giram em torno de “como” fazer, já que é um paradigma “novo”.
Após algum tempo de projeto e execução de testes com carga em produção, ou mesmo com as bases multidimensionais (a.k.a. cubos, lembrando que uma base pode conter mais de um cubo) indo para produção é que surgem outros tipos de dúvidas, principalmente ligadas a desempenho.
Primeiro ponto é que ao “tunarmos” nosso servidor de análise devemos reparar que é dois “tempos” que necessitam de otimização: tempo de processamento do cubo e tempo de resposta da query.
As otimizações necessárias para ambos os casos são bem diferentes. Os pontos de atenção são:
Projeto da estruturação física do cubo: Podemos fazer grandes avanços na otimização de query, mas em geral um bom projeto do cubo segundo as definições do Kimball é o que dará ganhos muitos bons quanto ao desempenho.
Otimização da query (query tuning): A interação (requisão) com o servidor OLAP é feita através de queries MDX (multidimensional expressions), enviadas por ferramentas clientes (reporting services, excel, etc.). O tempo de demora da consulta é o que impacta diretamente o tempo de resposta para o usuário ter acesso à informação. Neste cenário o que podemos utilizar a nosso favor é a reescrita de queries MDX, agregações, cache, entre outros.
Otimização do tempo de processamento: Processar um cubo é a operação de atualização dos dados em uma base do SSAS. Ou seja, o usuário NÃO é impactado no tempo de resposta, mas sim na demora em obter dados atualizados. Aqui há uma série de ações que podem ser tomadas, inclusive tuning no relacional (consulta sobre o data warehouse – fontes de dados).
Bom pessoal, o post hoje era para mostrar os pontos de atenção quando vamos otimizar uma base de dados do SSAS.
Maiores informações podem ser encontradas (em inglês) no guia: SQL Server Analysis Services 2008 R2 Performance Guide, escrito pelo time do SQLCAT.
Grande abraço!
Workshop de Self-service BI Microsoft
Olá pessoal!
Para quem estava presente na minha palestra no SQL Saturday #100 (post da Viviane Ribeiro sobre o evento) deve lembrar que comentei que iria elaborar uma série de vídeos sobre PowerPivot. Evoluí essa idéia e estou chamando de Workshop de Self-service BI que envolverá desde o início da criação do modelo da solução, passando pela análise e entregando isso através de um portal corporativo.
A sugestão é a seguinte (lembrando que junto aos vídeos teremos o scripts e materiais mostrados para download):
- Aula 01 - Introdução a Self-Service BI e ao PowerPivot
- O que é?
- Versões
- Requisitos
- Onde Baixar?
- Conceitos
- Criando meu primeiro modelo
- Trabalhando com PivotTables/Charts no PowerPivot
- Aula 02 - Expandindo o modelo do PowerPivot
- Tabelas
- Colunas Calculadas
- Relacionamentos
- Medidas
- Indicadores
- Drill Through
- Hierarquias
- Aula 03 - DAX
- Introdução ao DAX
- Sintaxe
- Tipos de Dados
- Operadores
- Aula 04 - DAX II
- Tipos de Funções
- Funções DAX comuns
- Aula 05 - DAX III
- Entendendo o contexto de resolução
- Contexto de linha (Row Context)
- Contexto de filtro (Filter Context)
- Função CALCULATE
- Função ALL e ALLEXCEPT
- Função FILTER
- Segmentadores de Dados (slicers) e Filtros
- Aula 06 - DAX IV
- Entendendo as Time Intelligence Functions
- Usando Time Intelligence Functions
- Aula 07 - DAX V
- Relacionamentos muitos para muitos (many to many)
- Função SUMMARIZE
- Aula 08 - Colaboração
- Disponibilizando a análise para a corporação
- Conhecendo o PowerPivot for SharePoint
- Galeria do PowerPivot (PowerPivot Gallery)
- Atualização automática (Data Refresh)
- Controle de TI sobre
- Análises realizadas
- Atualizações de dados
- Uso de recursos do servidor
- Aula 09 - Expandindo a Análise com o Power View
- Introdução ao PowerView
- Consumindo um modelo do PowerPivot
- Exportando para o PowerPoint
- Aula 10 - Arquitetura do PowerPivot
- Arquitetura do Cliente (PowerPivot for Excel)
- Vertipaq
- Armazenamento interno
- Arquitetura do Servidor (PowerPivot for SharePoint)
- Aula 11 - Instalação do PowerPivot for SharePoint
- Novo Servidor
- Servidor existente
Se vocês quiserem sugerir pontos que acham importantes, podem fazer nos comentários! A gravação deve começar na próxima semana. :)
Preciso de um local para fazer o upload dos vídeos e materiais. Estou estudando ainda, mas acredito que youtube não será uma boa opção, pois as aulas serão de 15 a 40 minutos cada. Sugestões serão bem vindas!
É isso pessoal! Grande Abraço!
Thiago Zavaschi
Resoluções de Ano Novo e Retrospectiva 2011
Então pessoal, FELIZ ANO NOVO!
Gostaria de dizer que as minhas resoluções para 2012 serão: 1920 x 1080 e 1024 x 768, erm.. heheheh. Brincadeiras a parte, quem acompanha meu blog há algum tempo sabe (além da necessidade de mais posts) que me mudei, no início de 2011, para São Paulo para trabalhar junto ao time de produto (SQL Server) na Microsoft Brasil.
Gostaria de usar este espaço para dizer que saiu tudo melhor do que as minhas previsões mais otimistas, grande lugar e grande equipe trabalhando junto fizeram toda a diferença! Valeu!
O ano de 2012 virá com tudo e também com muitas novidades para quem é impactado de alguma maneira por softwares Microsoft.. algo em torno de um BILHÃO de pessoas (razoável, né?). O que está por vir neste ano é o novo Windows 8, bem como grandes novidades para a plataforma móvel: tablets com W8 e novas versões para o Windows Phone.
Para nós do mundo de banco de dados teremos o lançamento do SQL Server 2012, que trará uma revolução na questão de alta disponibilidade com o AlwaysOn, onde facilmente poderemos substituir caras/complexas implementações por uma solução elegante e simples. Ele será capaz substituir as implementações de cluster, mirroring e de log shipping existentes e a criação de clusters geográficos será muito facilitada, uma vez que não precisaremos mais utilizar softwares terceiros para replicação de storage.
O SQL Server 2012 trará várias novidades na sua engine de base de dados e também para quem trabalha com Business Intelligence, principalmente com o suporte do iPad (e para Android ainda este ano) para a nossa plataforma através do browser, self-service alerting, além do muito elogiado Power View (antigo projeto “Crescent”).
Será um ano de muito trabalho e estudo, e conto com vocês para cada vez mais conhecermos e explorarmos a plataforma! :)
Antes de finalizar o post gostaria de fazer uma breve retrospectiva de 2011 com pontos que foram muito importantes:
-
Me mudei e Curitiba para São Paulo.
-
Fui nomeado pela primeira vez MVP na categoria de SQL Server (e que foi renovado ontem!).
-
Concluí meu mestrado na área de Reconhecimento de Padrões (Informática).
-
Comecei a trabalhar na Microsoft Brasil e tive oportunidade de trabalhar com diversos times excelentes lá “dentro”.
-
Fiz amigos novos (infelizmente o fato de estar lá me afastou um pouco dos antigos).
-
Fiz minha primeira viagem internacional (desconsiderando as divisas com Paraguay e Argentina), para Seattle (e cidades vizinhas) nos Estados Unidos.
-
Participei de diversos eventos, entre eles o PASS Summit (em Seattle), SQL Saturday #100, e TechEd Brasil, BI Conference Brasil, entre outros.
-
Palestrei em VÁRIOS eventos Microsoft e de comunidades técnicas: Directions, TechEd Brasil (5 palestras e a General Session), BI Conference (também participei da General Session). Inclusive palestrei pela primeira vez em um evento “open-source”, onde deu para agregar bastante conhecimento.
-
Escrevi meu primeiro capítulo de livro, para o SQL Server MVP Deep Dives 2 (em inglês).
-
E viajei, viajei e viajei MUITO! Fiz aqui uma contagem básica de cabeça da quantidade de vezes (ok, desisti, foram muitas) e destinos (com certeza esqueci de algum) apenas em 2011, profissionalmente ou não. :)
-
Alfenas
-
Belém Belo Horizonte Brasília Campinas Curitiba Florianópolis Fortaleza Guaratinguetá Guaratuba Guarujá Lavras Marília Porto Alegre Recife Ribeirão Preto Rio de Janeiro Seattle - EUA Cidade de Leste (Paraguay) e Porto Iguaçú (Argentina) também contam, certo? :)
Bom pessoal, após isso desejo novamente a todos um excelente 2012 com muito trabalho, dedicação e recompensas pessoais e profissionas!
Grande abraço,
Thiago Zavaschi
CATEDI TechDay #3
Olá pessoal, bom dia!
O post hoje é para comentar sobre a ida ao evento CATEDI TechDay #3 realizado na cidade de Guaratinguetá – SP.
O CATEDI não é um evento focado em tecnologias Microsoft, na realidade o foco das palestras é o mundo opensource e software livre. O networking e a receptividade que tive foram muito boas, adorei. Todos sabemos que, em geral, pessoas da Microsoft sofrem um pouco nestes eventos, mas este foi bem diferente e espero repetir a experiência em outras ocasiões.
Ocorreu no auditório do SENAC – Guaratinguetá e contou com uma infraestrutura muito bacana!
O evento foi muito interessante dado o grande leque de tecnologias abordadas. E o networking com estes profissionais foi incrível!
Segue uma rápida resenha do evento:
A grade do evento foi a seguinte:
- MySQL, o banco de dados Open Source mais popular do mundo, sobreviverá à Nuvem? - Airton Lastori
- Hacker e o Open Source - Como os hackers tiram proveito do código aberto. - Edson Freire
- Carreira e tendência de TI no universo Microsoft. – Fernando Carmo
- 'Mesa Redonda.' – Airton Lastori, Edson Freire e Fernando Carmo
- Conheça a plataforma de dados e BI da Microsoft – Thiago Zavaschi
- Spring Roo: Produtividade no Java. - Pedro Cavaléro
- Desenvolvimento de apps para Android. – Renato
Como decidi ir de carro acabei encarando aquele transito nas marginais em São Paulo, o que acarretou em eu chegar no final da manhã na cidade.
Consegui acompanhar o final da palestra do Fernando Carmo (@nandocarmo) sobre tecnologias Microsoft e na sequência uma mesa redonda entre os três palestrantes da manhã.
Essa mesa redonda foi interessante pois abriu um espaço separado para dúvidas e discussões, onde os participantes podiam fazer perguntas para os palestrantes e iniciava uma discussão (saudável :-) sobre o tema. Uma pena que não pode ser realizado outra no final do evento para eu participar. Quem sabe em uma próxima oportunidade!
No retorno do almoço foi a minha vez de palestrar. O tema foi: Conheça a plataforma de dados e BI da Microsoft.
Como haviam muitos estudantes e pessoas do mundo não Microsoft eu fiz uma abordagem um pouco diferente. Consegui abordar diferentes assuntos associados à plataformas de bases de dados: appliances, big data, cloud e windows azure, sql azure e business intelligence.
Foi bastante conteúdo, inclusive com análises de mercado. Espero que o pessoal tenha gostado, ainda mais por existirem muitas pessoas ligadas a outras soluções como Oracle, Postgree e MySQL. Os feedbacks que tive foram bem bacanas :).
As duas primeiras fotos foram gentimente roubadas do blog da Carol, heheh :). Ela também fez uma resenha do evento, para os que estiverem interessados.
Na sequência da minha palestra tivemos mais duas, uma sobre desenvolvimento utilizando a linguagem Java e outra para desenvolvimento para Android. Ambos os assuntos foram interessantes e promoveram boas discussões durante as palestras!
O evento também teve um ponto solidário, pois cada participante deveria levar um Kg de alimento como forma de inscrição. Todo o material arrecadado foi doado no mesmo dia. Show de bola pessoal do CATEDI!
Enfim, foi um grande evento e espero poder participar dos próximos!
Os slides que usei na minha palestra podem ser encontrados para download aqui:
https://skydrive.live.com/?cid=8de5a8efc1819eca&sc=documents&id=8DE5A8EFC1819ECA%21663#
O link de conteúdo para aprender mais apresentado foi:
http://technet.microsoft.com/pt-br/treinamento
Lembrando que para os desenvolvedores o centro de treinamento indicado é o do MSDN:
http://msdn.microsoft.com/pt-br/bb352986
Obrigado a todos que estiveram no evento e até o próximo CATEDI! Foi minha primeira vez na cidade, quem sabe na próxima paro um pouco para conhecer mais!
Abraços,
Thiago Zavaschi