O QUE E INDICE CLUSTERIZADO?
Boa tarde!
SQL Server 2005.
Pessoal,eu sei o que é um Ãndice e para que serve. Mas, tenho dúvidas sobre
alguns pontos , que os artigos da internet explicam de modo complicado:
1.) Em linguagem [Ô]Simples[Ô], qual a diferença entre um Ãndice Clusterizado e Não Clusterizado?
2.) Posso partir [Ô]realmente[Ô] da premissa de que ao criar uma tabela no meu BD (Sql Server 2005), é bom criar Ãndice
tanto na chave primária , como em todas as chaves estrangeiras que houver na tabela???
3.) Aquela opção [Ô]Unique[Ô] que aparece quando você cria um Ãndice novo, se refere a que???
SQL Server 2005.
Pessoal,eu sei o que é um Ãndice e para que serve. Mas, tenho dúvidas sobre
alguns pontos , que os artigos da internet explicam de modo complicado:
1.) Em linguagem [Ô]Simples[Ô], qual a diferença entre um Ãndice Clusterizado e Não Clusterizado?
2.) Posso partir [Ô]realmente[Ô] da premissa de que ao criar uma tabela no meu BD (Sql Server 2005), é bom criar Ãndice
tanto na chave primária , como em todas as chaves estrangeiras que houver na tabela???
3.) Aquela opção [Ô]Unique[Ô] que aparece quando você cria um Ãndice novo, se refere a que???
1 - Clustered
Clustering altera o bloco de dados em uma determinada ordem distinta para coincidir com o Ãndice, resultando na linha de dados seja guardada em ordem. Portanto, somente um Ãndice cluster pode ser criado em uma tabela de banco de dados. Ãndices de cluster pode aumentar a velocidade geral de recuperação, mas geralmente apenas quando os dados são acessados sequencialmente na mesma ordem ou retrocesso do Ãndice de cluster, ou quando uma série de itens está selecionado.
Visto que os registros fÃsicos são, nesta ordem de classificação no disco, o item próxima linha na seqüência é imediatamente antes ou após a última, e bloco de dados de modo que menos lê são obrigatórios. A principal caracterÃstica de um Ãndice clusterizado é, portanto, a ordenação das linhas de dados fÃsicos, de acordo com os blocos de Ãndice que aponte para eles. Alguns bancos de dados separam os dados e os blocos de Ãndice em arquivos separados, outros colocam dois blocos de dados diferentes no mesmo arquivo fÃsico (s). Cria um objeto onde a ordem fÃsica das linhas é igual à ordem do Ãndice das linhas e do nÃvel (folha) inferior do Ãndice agrupado contém as linhas de dados reais.
Tanto o non clustered e cluestered são bons para leitura,mas o clustered dá mais trabalho para o SGBD salvar os registros na ordem do Ãndice. Se essa tabela te muitas inserções e alterações concorrentes pode ser muito prejudicial.
2
A chave primária é um Ãndice, não é necessário criar um Ãndice nela, e se não me engano é um Ãndice clustered. Embora a chave primária tenha um papel fÃsico no BD, ela tem uma importância maior na definição lógica do modelo e suas dependências funcionais e Formas Normais. Pesquise sobre isso!
Nas chaves esrangeiras é importante criar um Ãndice pois o SGBD usa esses Ãndices para fazer as junções, e com isso vc aumenta o desempenho. Cuidado ao criar Ãndices! Tem que ter critério ao criar Ãndices.
3
Unique = único. Ex. Se vc tem um campo CPF na sua tabela, vc sabe que o CPF é uma sequência única para cada pessoa fÃsica no Brasil. é aconselhável que vc ponha um Ãndice do tipo unique nesse campo, pois se alguém tentar registrar duas vezes o mesmo CPF o SGBD não registra e retorna uma exception.
Opa, estou riscando aquela parte com base no que o colega GOODSPEAKERS postou no item 1. A fonte que tirei dizia algo do tipo.
http://pt.w3support.net/index.php?db=so&id=91688
Clustering altera o bloco de dados em uma determinada ordem distinta para coincidir com o Ãndice, resultando na linha de dados seja guardada em ordem. Portanto, somente um Ãndice cluster pode ser criado em uma tabela de banco de dados. Ãndices de cluster pode aumentar a velocidade geral de recuperação, mas geralmente apenas quando os dados são acessados sequencialmente na mesma ordem ou retrocesso do Ãndice de cluster, ou quando uma série de itens está selecionado.
Visto que os registros fÃsicos são, nesta ordem de classificação no disco, o item próxima linha na seqüência é imediatamente antes ou após a última, e bloco de dados de modo que menos lê são obrigatórios. A principal caracterÃstica de um Ãndice clusterizado é, portanto, a ordenação das linhas de dados fÃsicos, de acordo com os blocos de Ãndice que aponte para eles. Alguns bancos de dados separam os dados e os blocos de Ãndice em arquivos separados, outros colocam dois blocos de dados diferentes no mesmo arquivo fÃsico (s). Cria um objeto onde a ordem fÃsica das linhas é igual à ordem do Ãndice das linhas e do nÃvel (folha) inferior do Ãndice agrupado contém as linhas de dados reais.
Tanto o non clustered e cluestered são bons para leitura,
2
A chave primária é um Ãndice, não é necessário criar um Ãndice nela, e se não me engano é um Ãndice clustered. Embora a chave primária tenha um papel fÃsico no BD, ela tem uma importância maior na definição lógica do modelo e suas dependências funcionais e Formas Normais. Pesquise sobre isso!
Nas chaves esrangeiras é importante criar um Ãndice pois o SGBD usa esses Ãndices para fazer as junções, e com isso vc aumenta o desempenho. Cuidado ao criar Ãndices! Tem que ter critério ao criar Ãndices.
3
Unique = único. Ex. Se vc tem um campo CPF na sua tabela, vc sabe que o CPF é uma sequência única para cada pessoa fÃsica no Brasil. é aconselhável que vc ponha um Ãndice do tipo unique nesse campo, pois se alguém tentar registrar duas vezes o mesmo CPF o SGBD não registra e retorna uma exception.
Opa, estou riscando aquela parte com base no que o colega GOODSPEAKERS postou no item 1. A fonte que tirei dizia algo do tipo.
http://pt.w3support.net/index.php?db=so&id=91688
Pessoal,
Com relação a resposta do colega GOODSPEKERS....
1.) Eu entendi a explicação do colega.Foi bem detalhada.Mas, se possÃvel, gostaria de uma dica [Ô]prática[Ô]. De como decidir na hora de criar uma tabela, se devo
criar o Ãndice Clusterizado ou Não clusterizado. Por exemplo, se o campo é chave primária, crio o Ãndice Clusterizado ou não. Se for uma chave estrangeira???
2.) A resposta 2, também foi bem clara. Mas, pela resposta fiquei com a impressão de que existe alguma desvantagem em usar vários Ãndices. Existe alguma desvantagem???
3.) Falando em termos práticos.Eu tenho como visualizar no Ms-Sql Server (2005), o Ãndice de uma tabela??? Ou se trata de uma estrutura lógica interna e sem
acesso do SGBD???
Com relação a resposta do colega GOODSPEKERS....
1.) Eu entendi a explicação do colega.Foi bem detalhada.Mas, se possÃvel, gostaria de uma dica [Ô]prática[Ô]. De como decidir na hora de criar uma tabela, se devo
criar o Ãndice Clusterizado ou Não clusterizado. Por exemplo, se o campo é chave primária, crio o Ãndice Clusterizado ou não. Se for uma chave estrangeira???
2.) A resposta 2, também foi bem clara. Mas, pela resposta fiquei com a impressão de que existe alguma desvantagem em usar vários Ãndices. Existe alguma desvantagem???
3.) Falando em termos práticos.Eu tenho como visualizar no Ms-Sql Server (2005), o Ãndice de uma tabela??? Ou se trata de uma estrutura lógica interna e sem
acesso do SGBD???
Tópico encerrado , respostas não são mais permitidas