Filtered Indexes Filtered Index and Statistics Sergio Govoni [email protected] Speaker Sergio Govoni • Dal 1999 mi occupo di progettazione, analisi e sviluppo di un ERP multi-aziendale client/server in ambiente Win32 – Team leader – Product manager • MCP, MCTS, MVP SQL Server – Lavoro con SQL Server dalla versione 7.0 • Speaker, Editor, Publisher @ UGISS – www.ugiss.org – Blog: http://community.ugiss.org/blogs/sgovoni UGISS - User Group Italiano SQL Server Agenda • Filtered Indexes and Statistics – Overview – Differenze nella struttura B-Tree per: • Non Filtered Index • Filtered Index – Filtered Statistics – DEMO: Quando utilizzare un Filtered Index e come può migliorare le performance delle query UGISS - User Group Italiano SQL Server Overview • Con SQL Server 2008 fanno il loro debutto gli indici e le statistiche filtrare • Sono le strutture che conosciamo già a cui però viene applicato un criterio di filtro: – CREATE INDEX…WHERE(<filter_predicate>) – CREATE STATISTICS…WHERE(<filter_predicate>) • Query Optimizer sceglierà di utilizzare un indice filtrato quando i criteri nella clausola WHERE, dell’indice e della query, sono simili UGISS - User Group Italiano SQL Server Non Filtered Index • Un indice standard definito su due colonne, contiene, nel livello foglia, la combinazione dei valori delle due colonne Prev | Next Index rows Prev | Next Prev | Next 1-2 ; A-Z 3-4 ; A-Z Prev | Next Prev | Next Prev | Next Prev | Next … Data rows … Data rows 4 CHM 4 PTXY UGISS - User Group Italiano SQL Server Filtered Index • Applicando la clausola WHERE nel comando CREATE INDEX, le righe che non soddisfano la condizione verranno ignorate, già nella fase di costruzione dell’indice Prev | Next A-Z Prev | Next … UGISS - User Group Italiano SQL Server Prev | Next Prev | Next CHM PTXY Filtered Statistics • Sono statistiche ottimizzate, vengono create automaticamente per i Filtered Index • Consentono di migliorare la qualità del piano di esecuzione per le query: – Che utilizzano un indice filtrato – Su subset di dati nelle colonne non indicizzate – Che eseguono la selezione da una colonna non indicizzata che contiene un subset di dati correlati a valori di un'altra colonna UGISS - User Group Italiano SQL Server When use it and benefit Filtered Index UGISS - User Group Italiano SQL Server Filtered Indexes Risorse Generiche • Filtered Index – • Informazioni sul prodotto SQL Server – – • http://www.ugiss.org http://community.ugiss.org Newsgroups pubblici via WEB – – • http://msdn.microsoft.com/sql Comunità SQL Server – – • http://www.microsoft.com/italy/sql http://www.microsoft.com/sql Supporto sviluppo e professionisti IT – • http://www.ugiss.org/Content/Article/Filtered-Indexes.aspx http://www.microsoft.com/italy/communities/newsgroups/default.mspx http://www.microsoft.com/technet/community/newsgroups/server/sql.mspx Formazione e mentoring – – http://www.microsoft.com/italy/traincert http://www.solidqualitylearning.com/ UGISS - User Group Italiano SQL Server Filtered Indexes Grazie!