Jump to content

Ajuda na Indexação de tabelas


extint

Recommended Posts

Boa tarde pessoal,

Eu estou a desenvolver um projecto (projecto da faculdade) que obriga a ter tabelas da base de dados (Sql Server) com muitos dados, chegando mesmo aos 10 milhoes de registos. A minha dificuldade é a seguinte:

Para melhorar o desenho das pesquisas, inserções ou eliminações de dados, verifiquei que o melhor é criar um index nas tabelas, so que o problema é que nao sei bem como é que poderei fazer a implementação dos index e depois como e que poderei funcionar com eles! será que alguem me poderá dar uma ajudar? tipo disponibilizar aqui algum material ou paginal com exemplos de implementação!

Obrigado e abraços a todos.

Link to comment
Share on other sites

A utilização dos index é implicita, se tiverem criados estão a ser usados.

Os index podem aumentar a performance de um select, mas diminuem dos inserts e updates.

Deves criar indexes das tabelas em q fazes mtos selects no campo q é mais filtrado nas querys.

As primary keys já são indexadas por defeito.

Matraquilhos para Android.

Gratuito na Play Store.

https://play.google.com/store/apps/details?id=pt.bca.matraquilhos

Link to comment
Share on other sites

Atenção que a inclusão de índices per se pode não resolver o problema, em casos extremos pode inclusive degradar a performance dos inserts/deletes e ser totalmente ignorado nos selects.

Atenção também que não raras vezes a rescrita das queries de forma mais eficiente resulta em ganhos de performance muito grandes.

Se tens tabelas grandes, a primeira coisa a fazer não é meter índices mas sim usar o query analyser para veres o plano de execução e assim saberes onde as queries estão a demorar mais tempo.

A partir dai decides onde deves intervir: que indíces criar ou eliminar (sim, não raras vezes os índices não estão lá a fazer nada), rescrever a query para ser mais eficiente, reestruturar a tabela ou a base de dados para ser mais eficiente, etc..

Acima de tudo não mexer em nada sem analisar antes o problema e fazer a intervenção só depois de se saber quais são os pontos críticos.

Usar de novo o plano de execução para ver se a intervenção resultou.

10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Link to comment
Share on other sites

bruno1234, isso de não criares mais do que um índice por tabela não é linear.

Podes ter vários índices, incluindo de vários tipos diferentes, tens é de garantir que a sua inclusão é benéfica, como referi acima, analisar plano de execução é critico para esta tarefa.

10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.