Indici su tabelle di appoggio

lunedì 18 novembre 2013 - 17.09
Tag Elenco Tags  C#  |  SQL Server 2008 R2  |  SQL Server 2008  |  SQL Server 2005

Defkon1 Profilo | Newbie

Ho realizzato uno script che genera una serie di analisi avanzate e appoggia i risultati su una serie di tabelle Dimensioni/Fatti (in stile datamart); queste tabelle sono poi utilizzate per la generazione di una serie di report. Terminata l'esecuzione dei report le tabelle dei Fatti vengono svuotate (mentre le Dimensioni mantenute).

Le prestazioni sono già complessivamente buone, ma nel tentativo di migliorarle ancora ho registrato alcuni test di carico e ho dato in pasto i tracciati all'ottimizzatore.

Oltre ai già previsti indici sulle dimensioni, l'ottimizzatore mi produce molti consigli (in termini di indici e statistiche) anche sulle tabelle dei fatti.
Ha senso però inserire indici su tabelle temporanee di questo tipo?
Essendo i dati "fire and forget", ha senso introdurre l'overhead di gestione/aggiornamento degli indici e delle statistiche su questi datamart?

Grazie in anticipo dei consigli

--------------------------------------------------

Defkon1
Project Manager/.NET Developer
http://www.alessiomarinelli.it

alx_81 Profilo | Guru

>Essendo i dati "fire and forget", ha senso introdurre l'overhead
>di gestione/aggiornamento degli indici e delle statistiche su
>questi datamart?
il fatto è che l'indice sarebbe ottimo per le letture, ma poi vai a perderci quando scrivi.
Se la cancellazione è massiva e quindi fai la delete basandoti sui campi di un già presente indice (tipo la chiave) oppure se cancelli tutto, secondo me ti conviene fare gli indici all'atto della ricostruzione della fact table, ma solo dopo averla popolata.
Quindi quando cancelli:
- drop indici
- delete o truncate tabella
- reinsert
- re index

>Grazie in anticipo dei consigli
di nulla!
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com
http://mvp.microsoft.com/profiles/Alessandro.Alpi
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-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5