Dubbio sulla indicizzazione di una tabella sql

lunedì 22 ottobre 2012 - 16.18
Tag Elenco Tags  VB.NET  |  .NET 4.0  |  Windows Server 2008 R2  |  Visual Studio 2010

trinity Profilo | Guru

ragazzi,

mi sta salendo un dubbio, forse la troppa stanchezza comunque voglio porre tale dubbio a voi per poter avere una risposta.

Supponiamo di avere una tabella di questo tipo:

Id int keyprimary auto increment ecc....
idcliente int chiave
idmovimento int chiave
ecc...

in base a questi campi è possibile che io mi possa trovare a fare delel ricerche per solo l'idcliente o solo l'idmovimento e pertanto ho creato per ciascuno di questi campi un indice. Ma il mio dubbio è il seguente, nel caso volessi fare una ricerca per idcliente e all'interno per idmovimento, dovrei creare un altro indice dove vi sono entrambi ossia idcliente ed idmovimento? Oppure per avere alte prestazioni basta che i campi siano singolarmente indicizzati come sopra citato?

Ciao
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

TOPOAMORE Profilo | Expert

Secondo me andando a creare una chiave composta i benefici ne dovresti avere in termini di prestazioni ma bisognerebbe vedere il quantitativo di dati di cui parliamo..

a ogni modo puoi lanciare una esecuzione di plan andando a vedere nei due modi come si comporta in termine di letture e tempistiche le query


__.__.__.__.__.__

http://salvatorecervone.wordpress.com

ASP 2.0 - VB 2008

alx_81 Profilo | Guru

>in base a questi campi è possibile che io mi possa trovare a
>fare delel ricerche per solo l'idcliente o solo l'idmovimento
>e pertanto ho creato per ciascuno di questi campi un indice.
>Ma il mio dubbio è il seguente, nel caso volessi fare una ricerca
>per idcliente e all'interno per idmovimento, dovrei creare un
>altro indice dove vi sono entrambi ossia idcliente ed idmovimento?
se devi "entrare" prima per movimento e poi per idcliente, l'indice composto fa al caso tuo.

--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.microsoft.com/profiles/Alessandro.Alpi

trinity Profilo | Guru

Grazie
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

trinity Profilo | Guru

Ultimissima domanda anche se ho già chiuso il post...se ho due tabelle, tab_madre e tab_figlio....in tab_madre vi è salvato l'id chiave del tab_figlio e quando eseguo una select eseguo una join tra queste due tabelle. Nel tab_figlio l'id è chiave primaria, nella tab_madre la colonna dove salvo l'id tab_figlio devo indicizzarla se so che defvo eseguire del join?

Ciao
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

TOPOAMORE Profilo | Expert

devi indicizzarlo se poi gli farai ricerche in modo da andare piu forte :D
__.__.__.__.__.__

http://salvatorecervone.wordpress.com

ASP 2.0 - VB 2008

alx_81 Profilo | Guru

>devi indicizzarlo se poi gli farai ricerche in modo da andare
>piu forte :D
Questo di certo, comunque è consigliato creare un indice sul campo della chiave esterna, in modo da avere lo stesso ordinamento che troveresti nella primary key della tabella master
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.microsoft.com/profiles/Alessandro.Alpi

trinity Profilo | Guru

ok
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5