Pular para o conteúdo principal

(T) Indexação no Data Warehouse - Parte 1

Um índice é, na maior parte dos casos, uma estrutura separada dos dados da tabela a que ele se refere. Ele armazena a localização de linhas no banco de dados, baseado nos valores de coluna especificados quando o índice é criado. Os índices são como minicópias dos dados da tabela a que se referem. Vamos supor que uma consulta fosse restrita a LAST_NAME e procurasse nomes que começassem com o texto "SM". Sem um índice em LAST_NAME, o banco de dados leria da primeira linha até a última, procurando as linhas com o string de pesquisa desejado. Com um índice, o banco de dados percorreria, obteria um endereço da linha qualificada e, em seguida, apresentaria os dados da linha qualificada, para o processo que fez a consulta. Em resumo, é para isso que servem os índices.

As pequisas de índice são o segredo da otimização do tempo de resposta da maior parte das consultas e são usados sistematicamente em um data warehouse para melhorar seu desempenho de saída.

Um desempenho de saída melhorado contribui para as quatro palavras tão importantes para o sucesso de um projeto de data warehouse - maior satisfação do cliente. No entanto, para se atingir este estágio se faz necessário decidir onde colocar os índices. De muitas maneiras, essa é uma faca de dois gumes: índices demais levam a uma sobrecarga maior do sistema, mas índices de menos podem facilmente diminuir a velocidade de recuperação dos dados no momento da consulta. Então...

Quais colunas indexar?

Existem duas regras ou diretrizes principais com relação a quais colunas indexar no banco de dados: seletividade e critérios de seleção. Seletividade, é uma medida do número de valores distintos na coluna de uma tabela, comparado ao número de linhas da tabela inteira. O predicado de uma instrução SQL é aquela parte onde os critérios de seleção são especificados. Esses critérios de seleção especificam quais linhas de informação devem ser incluídas no conjunto de resultados da consulta. O primeiro critério com a palavra-chave WHERE; todos os critérios subseqüentes começam com a palavra-chave AND. O conjunto de resultados é um conjunto de uma ou mais linhas que se qualificam para inclusão em uma consulta específica.

Consideração sobre a seletividade

Vamos supor que existissem 79.000 linhas em uma tabela, em um data mart financeiro, e que a coluna ACC_TYPE tivesse 8 valores distintos. A seletividade de qualquer linha em uma tabela é calculada de acordo com a seguinte fórmula:

seletividade = (linhas na tabela / valores distintos) * ( 1 / linhas na tabela)

Isso é o mesmo que dizer que a seletividade é o inverso do valor encontrado em NUM_DISTINCT para essa coluna. Em nosso exemplo, a seletividade é igual ao inverso de 8, o que dá 0,125, ou 12,5, expresso como uma porcentagem. Isso leva à primeira das três diretrizes de indexação.

Quando é encontrado um valor de coluna menor do que 5% de todas as linhas em uma tabela, essa coluna é uma boa candidata para um índice.

Espero que esta primeira parte deste importante tópico, tenha sido útil para todos vocês. Na próxima semana falarei da outra diretriz de indexação: consideração sobre o predicado.

Um grande abraço a todos!

Comentários

Postagens mais visitadas deste blog

(A) Data Science in Practice with Python

The top trending in Twitter or other social network is the term “data science”. But ...
What’s the data science? How do real companies use data science to make products, services and operations better? How does it work? What does the data science lifecycle look like?  This is the buzzword at the moment. A lot of people ask me about it. Are many questions. I’ll try answer all of these questions through of some samples.

Sample 1 - Regression

WHAT IS A REGRESSION? This is the better definition what I found [Source: Wikipedia] - Regression analysis is widely used for prediction and forecasting, where its use has substantial overlap with the field of machine learning.
HOW DOES IT WORK? Regression analysis is also used to understand which among the independent variables are related to the dependent variable, and to explore the forms of these relationships. In restricted circumstances, regression analysis can be used to infer causal relationships between the independent and dependent variable…

(A) Tucson Best Buy Analysis

“Data! Data! Data!” he cried impatiently.  “I can’t make bricks without clay.” —Arthur Conan Doyle
The Ascendance of Data

We live in a world that’s drowning in data. Websites track every user’s every click. Your smartphone is building up a record of your location and speed every second of every day. “Quantified selfers” wear pedometers-on-steroids that are ever recording their heart rates, movement habits, diet, and sleep patterns. Smart cars collect driving habits, smart homes collect living habits, and smart marketers collect purchasing habits. The Internet itself represents a huge graph of knowledge that contains (among other things) an enormous cross-referenced encyclopedia; domain-specific databases about movies, music, sports results, pinball machines, memes, and cocktails; and too many government statistics (some of them nearly true!) from too many governments to wrap your head around.
Buried in these data are answers to countless questions that no one’s ever thought to ask. In…

(A) Data Science in Practice with Python - Sample 2

In this post I'll explain what is a recommender system, how work it and show you some code examples. In my previous post I did a quick introduction:

Sample 2 - Recommender System

WHAT IS A RECOMMENDER SYSTEM? A model that filters information to present users with a curated subset of options they’re likely to find appealing.
HOW DOES IT WORK? Generally via a collaborative approach (considering user’s previous behavior) or content based approach (based on discrete assigned characteristics).

Now I'll get into in some concepts very important about recommender systems.

Recommender System in Details:

We can say that the goal of a recommender system is to make product or service recommendations to people. Of course, these recommendations should be for products or services they’re more likely to want buy or consume.

Recommender systems are active information filtering systems which personalize the information coming to a user based on his interests, relevance of the information etc.…