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
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Reindicizzazione, quando è utile?
lunedì 27 luglio 2015 - 10.18
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Elenco Tags
VB.NET
|
.NET 4.0
|
Windows Server 2008 R2
|
Visual Studio 2010
|
SQL Server 2008 R2
Barabas
Profilo
| Junior Member
102
messaggi | Data Invio:
lun 27 lug 2015 - 10:18
Salve a tutti,
o un database su sql server 2008 R2, in cui una tabella viene periodicamente svuotata (con truncate) e ripopolata con un grande numero di righe, circa 1 milione.
poi un'applicativo .Net esegue diverse query su questa tabella.
Inizialmente queste query risultavano molto lente e per velocizzarle abbiamo aggiunto un indice su una colonna (non è una chiave). la velocità delle query è migliorata di molto per qualche tempo, ma ora è di nuovo bassa.
Mi chiedevo se fosse necessaria una reindicizzazione, o ancora meglio se fosse utile aggiungere un comando di reindicizzazione al termine della procedura di popolamento della tabella.
quale sarebbe il comando da utilizzare ed è possibile inserirlo in una stored procedure?
in passato ho usato la reindicizzazione per risolvere problemi simili, ma non ricordo granchè, perciò chiedo il vostro consiglio
grazie in anticipo
Barabas
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
mer 29 lug 2015 - 08:56
>Salve a tutti,
ciao
>Inizialmente queste query risultavano molto lente e per velocizzarle
>abbiamo aggiunto un indice su una colonna (non è una chiave).
>la velocità delle query è migliorata di molto per qualche tempo,
>ma ora è di nuovo bassa.
>Mi chiedevo se fosse necessaria una reindicizzazione, o ancora
>meglio se fosse utile aggiungere un comando di reindicizzazione
>al termine della procedura di popolamento della tabella.
>quale sarebbe il comando da utilizzare ed è possibile inserirlo
>in una stored procedure?
In generale, cancellazioni e scritture creano una grande frammentazione negli indici, quindi, dopo l'operazione massiva è bene fare una riorganizzazione o ricostruzione dell'indice.
La prima è consigliata se l'indice ha una frammentazione inferiore al 30%, la seconda negli altri casi. Visto che fai l'operazione una tantum, ti consiglio di fare una rebuild dell'indice.
Ad ogni modo se vuoi vedere il livello di frammentazione puoi utilizzare il designer di SSMS (nelle proprietà dell'indice, alla voce Storage).
In aggiunta, se vuoi controllare gli eventuali indici mancanti, leggi qui https://msdn.microsoft.com/en-us/library/ms187974(v=sql.105).aspx
>grazie in anticipo
di nulla!
Alessandro Alpi | SQL Server MVP | Engage IT Services s.r.l.
MCP|MCITP|MCTS|MCT
http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com
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 !