Tuning

SQL Query Stress

Davide Mauri

Un tool free utilissimo per effettuare stress test su SQL Server di una particolare query e quindi verificarne l’ottimizzazione:

http://www.datamanipulation.net/SQLQueryStress/

Molto utile anche per vedere in media l’ìmpatto che ha la creazione di indici, l’utilizzo del profiler e via dicendo sulle query eseguite, simulando anche una situazione di concorrenza, tipica in un database server.

Analysis Services 2008 Performance Guide

Davide Mauri

Whitepaper dedicato all’ottimizzazione delle performance di Analysis Services 2008. Il whitepaper è diviso in tre sezioni principali:

Enhancing Query Performance - Query performance directly impacts the quality of the end user experience. As such, it is the primary benchmark used to evaluate the success of an online analytical processing (OLAP) implementation. Analysis Services provides a variety of mechanisms to accelerate query performance, including aggregations, caching, and indexed data retrieval. In addition, you can improve query performance by optimizing the design of your dimension attributes, cubes, and Multidimensional Expressions (MDX) queries.

RML Utilities for SQL Server Cumulative Update 1

Gianluca Hotz

Aggiornamento alla versione 9.01.0109 degli strumenti per il troubleshooting delle prestazioni di SQL Server forniti dal team di supporto Microsoft .

Download processori x86:
http://www.microsoft.com/downloads/details.aspx?familyid=7EDFA95A-A32F-440F-A3A8-5160C8DBE926&displaylang=en

Download processori x64:
http://www.microsoft.com/downloads/details.aspx?familyid=B60CDFA3-732E-4347-9C06-2D1F1F84C342&displaylang=en

Indici : capire quando e come sono veramente utilizzati? Utilizzo dei piani di esecuzione per rispondere a queste domande

Davide Mauri

Gli indici sono gli oggetti che permettono di fare un salto di qualità da un punto di vista di performance al nostro sistema.

Ma un indice è veramente utilizzato dal nostro sistema?

E, nel caso sia utilizzato come viene utilizzato e qual’è il suo costo in termini di gestione?

Molto spesso gli indici vengono messi ad intuito e, visto, che le performance di una particolare query sono migliorate si riitiene che l’indice è utile e quindi lo lasciamo.

Calcolo progressivo via Cte e operatore Apply

Davide Mauri

Sql 2005, come è universalmente noto, ha introdotto, rispetto al predecessore, molte novità. Quello che ci interessa qui è un uso intrecciato e non standatd delle nuove Common Table Expression [cte] ricorsive e dell’operatore Apply.

L’idea base del funzionamento di una cte ricorsiva è abbastanza semplice, si consideri il set di dati S1. Mettendo questo set in join con altro posso ottenere un set di dati S2 che supporremo avere una struttura identica [Colonne e tipi] a S1. Fatto ciò è possibile usare S2 al posto di S1 per generare S3 e così via finché l’operazione non genera più alcun record. I risultati S1, S2, S3, S4… ottenuti, avendo la stessa identica struttura, saranno restituiti come concatenazione di records tramite union all.
Questo genere di strutture sono perfette per la gestione dei dati ricorsivi, volendo estrarre da un’organigramma una persona e tutti i suoi sottoposti, si può procedere come sopra con: