Short Scripts – Dezembro – 2012 – Resource Governor

Comunidade, bom dia.

Mas que calor esta fazendo estes dias!!!!

Meu deus, algo que atrapalha em muito a concentração e produtividade, mesmo assim, a vida continua e temos que fazer o melhor que podemos.

 

Pois bem, no Shor Scripts deste mês, vou destacar especificamento códigos relacionados a uma das maiores novidades lançadas em conjunto com o SQL Server 2008, isso já vou alguns anos mas que é muito útil.

 

Estou me referente ao Resource Governor, uma tecnologia que possibilidade o controle da carga de trabalho por parte do SQL Server durante a execução de determinados procedimentos que venham a exigir um custo de processamento mais elevado ou específico.

 

São 7 códigos de exemplo que demonstram como podemos fazer o processo de Configuração, Uso e Obtenção de Informações do Resource Governor, segue abaixo a relação de Shor Scripts:

 

1 – Exemplo – Resource Governor – Configuração:

— Criando os Pools de Conexão —

Create RESOURCEPOOL PoolMarketingAdHoc

With

(

MAX_CPU_Percent = 20,

MIN_CPU_Percent = 5,

MAX_Memory_Percent = 30,

MIN_Memory_Percent =  10

)

 

CREATE RESOURCEPOOL PoolVP

With

(

MAX_CPU_Percent = 25,

MIN_CPU_Percent = 5

)

 

— Criando Grupos de WorkLoad —

CREATE WORKLOADGROUP GroupMarketing Using PoolMarketingAdHoc

 

CREATE WORKLOADGROUP GroupAdHoc

With (Importance = Medium)Using PoolMarketingAdHoc

 

CREATE WORKLOADGROUP GroupVP

With  (Importance = Low)Using PoolVP

Go

— Criando logins para separar os usurios dentro de diferentes grupos —

CREATE LOGIN UserMarketing WithPassword=‘UserMarketingPwd’,Check_Policy=Off

CREATE LOGIN UserAdHoc WithPassword=‘UserAdHocPWD’,Check_Policy=Off

CREATE LOGIN UserVP WithPassword=‘UserVPPwd’,Check_Policy=Off

— Criando Function para gerenciamento do pool —

Create FUNCTION [dbo].[Classifier_ConectionPool]()

RETURNS SYSNAME

WITH SCHEMABINDING

BEGIN

 

DECLARE @WorkGrupo VarChar(32)

SET @WorkGrupo =‘default’

 

If‘UserVP’=SUSER_SNAME()

 SET @WorkGrupo =‘GroupVP’

ElseIf‘UserMarketing’=SUSER_SNAME()

 SET @WorkGrupo =‘GroupMarketing’

ElseIf‘UserAdHoc’=SUSER_SNAME()

 SET @WorkGrupo =‘GroupAdHoc’

 

RETURN @WorkGrupo

End

Go

 

— Alterando a configurao do Resource Governor —

Alter ResourceGovernor

With (Classifier_Function = dbo.classifier_conectionpool)

Go

 

— Aplicando as reconfiguraes no Resource Governor —

Alter ResourceGovernorReconfigure

Go

2. Exemplo – Obtendo o nome da Classifier Function:

SELECT object_schema_name(classifier_function_id)AS [schema_name],

object_name(classifier_function_id)AS [function_name]

FROM sys.dm_resource_governor_configuration

 

 3 – Exemplo – DMV’s relacionadas so Resource Governor:

SELECT  * FROMSYS.DM_RESOURCE_GOVERNOR_WORKLOAD_GROUPS

SELECT * FROMSYS.DM_RESOURCE_GOVERNOR_RESOURCE_POOLS

SELECT * FROMSYS.DM_RESOURCE_GOVERNOR_CONFIGURATION

 

4 – Exemplo – Resource Governor – Utilizando – Select:

Create Database Teste

Go

Use Teste

Go

Create Table Teste

( Codigo Int,

Descricao Varchar(100)

)

Go

 

Create User UserVP fromLogin UserVP

Create User UserAdHoc fromLogin UserAdHoc

Create User UserMarketing fromLogin UserMarketing

 

Grant Select on object:: teste.dbo.teste to uservp

Grant Select on object:: teste.dbo.teste to useradhoc

Grant Select on object:: teste.dbo.teste to userMarketing

Go

 

Grant Insert on object:: teste.dbo.teste to uservp

Grant Insert on object:: teste.dbo.teste to useradhoc

Grant Insert on object:: teste.dbo.teste to userMarketing

Go

 

Execute As Login=‘UserVP’

SELECT Codigo,Descricao

FROM Teste

GO

 

Execute As Login=‘UserAdHoc’

SELECT Codigo,Descricao

FROMTeste

GO

 

— Permitindo troca de usurio de forma impersonate —

Grant Impersonate OnUser:: UserVP To UserAdHoc

Go

 

— Resetando as conexes em uso no Contexto de Banco de Dados —

Revert

Go

 

— Trocando o Contexto de Conexão para o Usuário UserVP —

Execute As Login=‘UserVP’

Go

Insert Into teste defaultvalues

Go 100000  

 

— Trocando o Contexto de Conexão para o Usuário UserMarteking —

Execute As Login=‘UserMarketing’

Go

Insert Into teste defaultvalues

Go 100000

 

— Trocando o Contexto de Conexão para o Usuário UserAdHoc —

Execute As Login=‘UserAdHoc’

Go

Insert Into teste defaultvalues

Go 100000

 

5 – Exemplo – Obtendo informações sobre as sessões conectadas por Workloads Groups:

SELECT s.group_id,

            CAST(g.name  as nvarchar(20)),

s.session_id, s.login_time,

            CAST(s.host_name as nvarchar(20)),

            CAST(s.program_nameASnvarchar(20))

FROM sys.dm_exec_sessions s INNER JOIN sys.dm_resource_governor_workload_groups g

                                                        ON g.group_id = s.group_id

ORDER BY g.name

GO

 

6 – Exemplo – Obtendo informações sobre as Solicitações de Transações por WorkLoad Groups:

SELECT r.group_id,

g.name,

r.status,

r.session_id,

r.request_id,

r.start_time,

r.command,

r.sql_handle,

t.text

FROM sys.dm_exec_requests r INNER JOIN sys.dm_resource_governor_workload_groups g

ON g.group_id = r.group_id

CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) AS t

ORDER BY g.name

GO

 

7 . Exemplo – Resource Governor – Solicitações em Execução por Classificador:

— Exemplo 1 —

SELECT s.group_id,

g.name,

s.session_id,

s.login_time,

s.host_name,

s.program_name

FROM sys.dm_exec_sessions s INNER JOIN sys.dm_resource_governor_workload_groups g

                                                       ON g.group_id = s.group_id

                                                      AND ‘preconnect’= s.status

ORDER BY g.name

GO

 

— Exemplo 2 —

SELECT r.group_id,

g.name,

r.status,

r.session_id,

r.request_id,

r.start_time,

r.command,

r.sql_handle,

t.text

FROM sys.dm_exec_requests r INNER JOIN sys.dm_resource_governor_workload_groups g

                                                       ON g.group_id = r.group_id

                                                       AND ‘preconnect’= r.status

CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) AS t

ORDER BY g.name

GO

 

Estão aqui os Short Scripts relacionados ao Resource Governor, espero que vocês gostem, usem a vontande, melhorem os exemplos, passem para seus contatos.

Mais uma vez obrigado por sua visita.

Nos encontramos em breve.

Até mais.

Anúncios
Esse post foi publicado em Dicas, MSDN, Mundo SQL Server, Scripts, Short Scripts, SQL Server, TechNet, VIRTUAL PASS BR e marcado , , , , , , por Junior Galvão - MVP. Guardar link permanente.

Sobre Junior Galvão - MVP

Profissional com vasta experiência na área de Tecnologia da Informação e soluções Microsoft. Graduado no Curso Superior em Gestão da Tecnologia de Sistemas de Informação pela Uninove – Campus São Roque. Pós-Graduado no Curso de Gestão e Engenharia de Processos para Desenvolvimento de Software com RUP na Faculdade FIAP – Faculdade de Informática e Administração Paulista de São Paulo. Pós-Graduado em Gestão da Tecnologia da Informação Faculdade – ESAMC Sorocaba. Formação MCDBA Microsoft, autor de artigos acadêmicos e profissionais postados em Revistas, Instituições de Ensino e WebSistes. Meu primeiro contato com tecnologia ocorreu em 1994 após meus pais comprarem nosso primeiro computador, ano em que as portas para este fantástico mundo se abriram. Neste mesmo ano, comecei o de Processamento de Dados, naquele momento a palavra TI não existia, na verdade a Tecnologia da Informação era conhecida como Computação ou Informática, foi assim que tudo começou e desde então não parei mais, continuando nesta longa estrada até hoje. Desde 2001 tenho atuado como Database Administrator – Administrador de Banco de Dados – SQL Server em tarefas de Administração, Gerenciamento, Migração de Servidores e Bancos de Dados, Estratégias de Backup/Restauração, Replicação, LogShipping, Implantação de ERPs que utilizam bancos SQL Server, Desenvolvimento de Funções, Stored Procedure, entre outros recursos. Desde 2008 exerço a função de Professor Universitário, para as disciplinas de Banco de Dados, Administração, Modelagem de Banco de Dados, Programação em Banco de Dados, Sistemas Operacionais, Análise e Projetos de Sistemas, entre outras. Experiência na Coordenação de Projetos de Alta Disponibilidade de Dados, utilizando Database Mirroring, Replicação Transacional e Merge, Log Shipping, etc. Trabalhei entre 2011 e 2017 como Administrador de Banco de Dados e Coordenador de TI no FIT – Instituto de Tecnologia da Flextronics, atualmente exerço a função de Professor Universitário na FATEC São Roque. CTO da Galvão Tecnologia, consultoria especializada em Gestão de TI, Administração de Servidores Windows Server, Bancos de Dados Microsoft SQL Server e Virtualização. Possuo titulação Oficial Microsoft MVP e reconhecimentos: MCC, MSTC e MIE.

Uma resposta em “Short Scripts – Dezembro – 2012 – Resource Governor

  1. Pingback: Material de Apoio – SQL Server | Alex Souza

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

w

Conectando a %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.