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.

About these ads

Um comentário sobre “Short Scripts – Dezembro – 2012 – Resource Governor

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 )

Imagem do Twitter

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

Foto do Facebook

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

Foto do Google+

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

Conectando a %s