UKUBO
  • UKUBO
    • Quem somos
    • As nossas instalações
    • Carreiras
    • Notícias
    • Parceiros
    • Contactos
  • Informática
    • Desenvolvimento
    • Consultoria
    • Suporte técnico
    • Outsourcing
    • Websites
    • Produtos
    • Blog
  • Contabilidade
    • O que oferecemos
    • O nosso compromisso
    • Os nossos honorários
    • As nossas soluções
  • Imobiliária
    • Mediação imobiliária
    • Gestão de imóveis
    • Gestão de condomínios
    • Certificação energética
  • Pesquisa de Imóveis
  • Português
  • Pesquisa
UKUBO / Developer / SQL SERVER – Duplicated Indexes
UKUBO - Ideia
UKUBO - Contabilidade

SQL SERVER – Duplicated Indexes

UKUBO SQL Tips

Para analisar a performance de uma base de dados esta script é um bom ponto de partida.

Por vezes a evolução dos sistemas obriga à criação de novos índices mas a validação de se alguns destes não são necessário ficam esquecida.

Um dos grandes motivos para a duplicação de índices tem a ver com a evolução do motor do SQL.

Exemplo:

Índice com os campos: Campo1 e Campo2

  • CREATE INDEX IX_TABELA_Campo1_Campo2 ON dbo.[TABELA]

Cenário 1 – Uso do filtro nos  campo1 e campo2:

  • SELECT * FROM TABELA WHERE Campo1= ‘A’ AND Campo2 = ‘B’
  • SELECT * FROM TABELA WHERE Campo2= ‘B’ AND Campo1 = ‘A’
  • Nestes casos o índice  usado

Cenário 2 – Uso do filtro campo1:

  • SELECT * FROM TABELA WHERE Campo1= ‘A’
  • Neste caso o indice  usado

Cenário 3 – Uso do filtro campo2:

  • SELECT * FROM TABELA WHERE Campo2= ‘B’
  • Neste caso o indice não é usado

Avalie também os índices em falta, “Missing Index Script”.


WITH Duplicated AS 
(
	SELECT	TableName	= S.[name]  + '.' + O.[name] 
		,	IndexName	= I.[name]
		,	Col01		= INDEX_COL(S.[name] + '.' + O.[name], I.index_id, 1)
		,	Col02		= INDEX_COL(S.[name] + '.' + O.[name], I.index_id, 2)
		,	Col03		= INDEX_COL(S.[name] + '.' + O.[name], I.index_id, 3) 
		,	Col04		= INDEX_COL(S.[name] + '.' + O.[name], I.index_id, 4) 
		,	Col05		= INDEX_COL(S.[name] + '.' + O.[name], I.index_id, 5) 
		,	Col06		= INDEX_COL(S.[name] + '.' + O.[name], I.index_id, 6) 
		,	Col07		= INDEX_COL(S.[name] + '.' + O.[name], I.index_id, 7) 
		,	Col08		= INDEX_COL(S.[name] + '.' + O.[name], I.index_id, 8) 
		,	Col09		= INDEX_COL(S.[name] + '.' + O.[name], I.index_id, 9) 
		,	Col10		= INDEX_COL(S.[name] + '.' + O.[name], I.index_id, 10) 
	FROM		sys.indexes		I
	INNER JOIN	sys.objects		O ON I.[object_id]	 = O.[object_id] 
	INNER JOIN	sys.schemas		S ON S.[schema_id] = O.[schema_id] 
	WHERE index_id > 0
)
SELECT	D1.TableName	
	,	D1.IndexName	
	,	D1.Col01		
	,	D1.Col02		
	,	D1.Col03		
	,	D1.Col04		
	,	D1.Col05		
	,	D1.Col06		
	,	D1.Col07		
	,	D1.Col08		
	,	D1.Col09		
	,	D1.Col10			
FROM		Duplicated	D1
INNER JOIN	Duplicated	D2 ON D1.TableName = D2.TableName
AND D1.IndexName <> D2.IndexName
AND D1.Col01	 = D2.Col01
AND (D1.Col02 IS NULL OR D2.Col02 IS NULL OR D1.Col02 = D2.Col02)
AND (D1.Col03 IS NULL OR D2.Col03 IS NULL OR D1.Col03 = D2.Col03)
AND (D1.Col04 IS NULL OR D2.Col04 IS NULL OR D1.Col04 = D2.Col04)
AND (D1.Col05 IS NULL OR D2.Col05 IS NULL OR D1.Col05 = D2.Col05)
AND (D1.Col06 IS NULL OR D2.Col06 IS NULL OR D1.Col06 = D2.Col06)
AND (D1.Col07 IS NULL OR D2.Col07 IS NULL OR D1.Col07 = D2.Col07)
AND (D1.Col08 IS NULL OR D2.Col08 IS NULL OR D1.Col08 = D2.Col08)
AND (D1.Col09 IS NULL OR D2.Col09 IS NULL OR D1.Col09 = D2.Col09)
AND (D1.Col10 IS NULL OR D2.Col10 IS NULL OR D1.Col10 = D2.Col10)
ORDER BY D1.TableName, D1.IndexName
GO
Partilhar
  • Partilhar no Facebook
  • Partilhar por e-mail
  • Quem somos
    • Missão & Visão
    • Colaboradores
    • Galeria de fotos
  • As nossas instalações
  • Carreiras
    • Oportunidades de emprego
  • Notícias
  • Parceiros
  • Contactos

INFORMÁTICA

  • Desenvolvimento
  • Consultoria
  • Suporte técnico
  • Websites
  • Outsourcing
  • Produtos
  • Blog
  • Quem Somos
  • Acessibilidade
  • Politica de Privacidade
  • Livro de Reclamações

CONTACTOS

Melgaço / Monção

 +351 251 418 322  Melgaço

 +351 251 031 908  Monção

 info@ukubo.com

INFORMÁTICA

  • Desenvolvimento
  • Consultoria
  • Suporte técnico
  • Websites
  • Outsourcing
  • Produtos
  • Blog

CONTABILIDADE

  • O que oferecemos
  • O nosso compromisso
  • Os nossos honorários
  • As nossas soluções

IMOBILIÁRIA

  • Mediação imobiliária
  • Gestão de imóveis
  • Gestão de condomínios
  • Certificação energética
  • Pesquisa de imóveis
Powered By Base64 encoded image | Mapa do site | Termos e Condições de Utilização | RAL | Pesquisa de Imóveis
  • Facebook
  • Linkedin
Scroll to top