Fundamentos gratuitos da semana de ajuste de consulta: parte 2, como encontrar as consultas corretas para ajustar

Fundamentos gratuitos da semana de ajuste de consulta: parte 2, como encontrar as consultas corretas para ajustar

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br


/ *

Fundamentos do ajuste de consulta: instalação do laboratório sp_BlitzCache

v1.0 – 2019-06-30

https://www.BrentOzar.com/go/queryfund

Esta demonstração requer:

* Qualquer versão suportada do SQL Server

* Qualquer banco de dados Stack Overflow: https://www.BrentOzar.com/go/querystack

Antes de executar este script de instalação, restaure o banco de dados Stack Overflow.

Este script levará alguns minutos para criar índices e procs armazenados.

* /

USAR [[StackOverflow2013]

IR

DropIndexes;

IR

/ * Crie alguns índices para apoiar nossas consultas: * /

CRIO ÍNDICE IX_Localização EM dbo.Comercial(Localização);

CRIO ÍNDICE IX_UserId EM dbo.Comentários(ID do usuário);

CRIO ÍNDICE IX_CreationDate EM dbo.Comentários(Data de criação);

CRIO ÍNDICE IX_VoteTypeId_PostId EM dbo.Votos(VoteTypeId, PostId);

IR

CRIO OU ALTERAR PROC dbo.usp_SearchComments

@Localização NVARCHAR(200),

@Data de início DATA HORA,

@Data final DATA HORA COMO

INÍCIO

SELECT você.Nome em Exibição, você.Eu iria COMO ID do usuário, c.Eu iria COMO CommentId, c.Ponto, c.Texto

A PARTIR DE dbo.Comercial você

INTERIOR JUNTE-SE dbo.Comentários c EM você.Eu iria = c.ID do usuário

ONDE você.Localização = @Localização

E c.Data de criação ENTRE @Data de início E @Data final

ORDEM POR c.Ponto DESC;

FIM

IR

CRIO OU ALTERAR PROC dbo.usp_rpt_PopularLocations COMO

SELECT TOPO 100 Localização, CONTAGEM(*) COMO UserCount

A PARTIR DE dbo.Comercial você

GRUPO POR Localização

ORDEM POR CONTAGEM(*) DESC;

IR

CRIO OU ALTERAR PROC dbo.usp_UsersInTop5Locations COMO

INÍCIO

COM TopLocations COMO (SELECT TOPO 5 Localização

A PARTIR DE dbo.Comercial

ONDE Localização <>

GRUPO POR Localização

ORDEM POR CONTAGEM(*) DESC)

SELECT você.*

A PARTIR DE TopLocations t

INTERIOR JUNTE-SE dbo.Comercial você EM t.Localização = você.Localização

ORDEM POR você.Nome em Exibição;

FIM

IR

Leia Também  Paginação no SQL Server

CRIO OU ALTERAR PROC dbo.usp_CommentBattles

@UserId1 INT,

@UserId2 INT COMO

INÍCIO

COM Batalhas COMO (SELECT c1.PostId, c1.Ponto COMO User1Score, c2.Ponto COMO User2Score

A PARTIR DE dbo.Comentários c1

INTERIOR JUNTE-SE dbo.Comentários c2 EM c1.PostId = c2.PostId E c1.Eu iria <> c2.Eu iria

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br

ONDE c1.ID do usuário = @UserId1

E c2.ID do usuário = @UserId2

)

SELECT User1Victories = COALESCE(SOMA(CASO QUANDO b.User1Score > b.User2Score ENTÃO 1 OUTRO 0 0 FIM),0 0),

User2Victories = COALESCE(SOMA(CASO QUANDO b.User1Score < b.User2Score ENTÃO 1 OUTRO 0 0 FIM),0 0),

Empates = COALESCE(SOMA(CASO QUANDO b.User1Score = b.User2Score ENTÃO 1 OUTRO 0 0 FIM),0 0)

A PARTIR DE Batalhas b;

FIM

IR

CRIO OU ALTERAR PROC [[dbo].[[usp_rpt_ControversialPosts] COMO

INÍCIO

/ * Fonte: http://data.stackexchange.com/stackoverflow/query/466/most-controversial-posts-on-the-site * /

conjunto Não conta em

declarar @VoteStats mesa (PostId int, acima int, baixa int);

inserir @VoteStats

selecionar

PostId,

acima = soma(caso quando VoteTypeId = 2 então 1 outro 0 0 fim),

baixa = soma(caso quando VoteTypeId = 3 então 1 outro 0 0 fim)

a partir de Votos

Onde VoteTypeId dentro (2,3)

grupo por PostId;

selecionar topo 500 p.Eu iria Como [[Postar Ligação] , v.acima, v.baixa

a partir de @VoteStats v

Junte-se Postagens p em PostId = p.Eu iria

Onde v.baixa > (v.acima * 0,5) e p.CommunityOwnedDate é nulo e p.FechadoData é nulo

ordem por v.acima desc;

FIM

IR

CRIO OU ALTERAR PROC [[dbo].[[usp_UsersOutracingMe] @ID do usuário INT COMO

INÍCIO

/ * Fonte: http://data.stackexchange.com/stackoverflow/query/6925/newer-users-with-more-reputation-than-me * /

SELECT você.Eu iria Como [[Do utilizador Ligação], você.Reputação, você.Reputação mim.Reputação Como Diferença

A PARTIR DE dbo.Comercial mim

INTERIOR JUNTE-SE dbo.Comercial você

EM você.Data de criação > mim.Data de criação

E você.Reputação > mim.Reputação

ONDE mim.Eu iria = @ID do usuário

Leia Também  Parâmetros com valor de tabela no SQL Server

FIM

IR

/ *

Licença: Creative Commons Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0)

Mais informações: https://creativecommons.org/licenses/by-sa/3.0/

Você é livre para:

* Compartilhar – copie e redistribua o material em qualquer meio ou formato

* Adaptar – remixe, transforme e desenvolva o material para qualquer finalidade, inclusive

comercialmente

Sob os seguintes termos:

* Atribuição – você deve dar o crédito apropriado, fornecer um link para a licença,

e indicar se foram feitas alterações.

* ShareAlike – Se você remixar, transformar ou desenvolver o material, deverá

distribua suas contribuições sob a mesma licença que o original.

* /