Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Giusto utilizzo degli indici su database
martedì 01 settembre 2009 - 21.00
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
ravalon
Profilo
| Expert
689
messaggi | Data Invio:
mar 1 set 2009 - 21:00
Salve a tutti, mi rivoglo a questa bellissima community per un domanda riguardo l'utilizzo corretto degli indici
In un mio gestionale do la possibilità di fare ricerche tra i dati in base a qualsiasi campo, sia singolo che in doppio criterio (confronto di 2 campi insieme in base a criteri specificati dall'utente)...
Contemporaneamente ci sono dei campi sui quali faccio sempre dei filtri (ad esempio sul settore di lavoro in base al login effettuato)...
Io ho creato degli indici per tutti i campi per i quali è possibile fare ricerche (o quasi tutti), ma cosi mi viene in mente che forse siano un po troppi....
inoltre ho letto (l'ho scoperto da poco) che le query su più campi se non hanno degli indici multipli servono a ben poco....
La mia domanda è quindi composta da più "sottodomande"
Come si applicano degli indici in maniera corretta ?
Nel caso fornirò un esempio di una tabella se fosse necessario a valutare meglio la questione...
tonyexpo
Profilo
| Senior Member
229
messaggi | Data Invio:
ven 4 set 2009 - 17:25
ciao
in attesa che qualche mvp/itpro di sql ti risponda meglio di me ti posso dire un paio di parole io:
mettere gli indici a tutte le colonne o quasi è una pessima idea
mettere un indice a più colonne per ogni combinazione di ricerca è un'idea ancora peggiore
oltre la chiave che identifica in modo univoco un rigo di tabella (solitamente un campo ma anche più) gli indici sono utili per migliorare i tempi di ricerca, ovviamente aumentando i tempi di inserimento dati visto che ad ogni commit sul db questi vengono aggiornati (in base a regole che trascureremo...)
comunque, in db piccoli (pochi mb) le differenze sn minime
su db di milioni di righi gli indici sono importantissimi e anche complessi da architetturare.
nel tuo caso mi viene da dirti: metti gli indici solo sulle colonne spesso presenti nelle ricerche, e lascia fare al db il resto
ciao
Antonio Esposito
MCTS .NET 3.5 WCF
MCTS .NET 3.5 Windows Forms
MCTS .NET 2.0 Distributed applications
MCP
ravalon
Profilo
| Expert
689
messaggi | Data Invio:
sab 5 set 2009 - 17:24
Ti ringrazio molto per il tuo intervento....vorrei però un'indicazione su come creare gli indici allora...
tonyexpo
Profilo
| Senior Member
229
messaggi | Data Invio:
sab 5 set 2009 - 17:33
in che senso?
Antonio Esposito
MCTS .NET 3.5 WCF
MCTS .NET 3.5 Windows Forms
MCTS .NET 2.0 Distributed applications
MCP
ravalon
Profilo
| Expert
689
messaggi | Data Invio:
sab 5 set 2009 - 19:40
Se metterne tanti non è corretto e metterne di composti da più colonne non va bene, vorrei sapere, in base ai tipi di ricerche che ho necessità di fare e che ho spiegato, dove mi conviene metterli....
....forse è utile che posti una tabella e faccia un esempio vero ?
tonyexpo
Profilo
| Senior Member
229
messaggi | Data Invio:
lun 7 set 2009 - 08:44
ripeto perchè potrei essermi spiegato male:
se hai una tabella da 10 colonne, non va bene mettere 10 indici, così come non va bene mettere 90 indici sulle combinazioni di tutti i campi di colonne......
se posti un esempio della tua tabella posso darti un consiglio più diretto ;)
Antonio Esposito
MCTS .NET 3.5 WCF
MCTS .NET 3.5 Windows Forms
MCTS .NET 2.0 Distributed applications
MCP
ravalon
Profilo
| Expert
689
messaggi | Data Invio:
lun 7 set 2009 - 10:16
certo, ne posto una da esempio....
Tabella PRODOTTI
id (PK)
Prodotto (char (120))
CodProdotto (char (20))
CodMagazzino (char (20))
Formato (integer)
CodFornitore (char (20))
IdCategoria (integer)
QtMinima (integer)
QtMinimaOrdineAperto (integer)
CodSettore (char (6))
IsScontoMerce (boolean)
Ora.....il filtro su CodSettore lo applico ad ogni query,perchè mi indirizza l'utente verso i soli dati del suo settore....qui dovrei mettere un indice ?
Spesso faccio query su altri campi incrociati ma niente di cosi frequente come il filtro su CodSettore
Torna su
Stanze Forum
Elenco Threads
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 !