2009-03-03 13 views
8

Qual è il miglior modo pratico per imparare l'indicizzazione durante la scrittura di query tsql? Ho VS2008 SQL Express. Qualcuno potrebbe fornirci esempi, ecc.? Ho già trovato articoli online e sono fantastici in teoria, ma non riesco ancora a vedere la sintonizzazione dell'indice nelle azioni della vita reale. Ci sono piccoli esempi facili da creare là fuori?Come posso imparare l'ottimizzazione dell'indice di SQL Server?

risposta

6

Per sintonizzare gli indici, si tende ad avere bisogno di tabelle grandi con molti dati, quindi non sono facili da trovare piccoli esempi semplici.

La mia esperienza è con gli strumenti di SQL 2000. Query Analyzer, che mostra il piano di esecuzione e esamina i tipi di indici e join utilizzati. Molto difficile da descrivere qui.

posso consigliare un buon libro sul tema, in particolare il capitolo 9.

http://www.amazon.com/Professional-Server-Performance-Tuning-Programmer/dp/0470176393

vorrei scoraggiare dal utilizzando gli strumenti automatizzati Indice sintonia fino a capire come farlo da soli manualmente. Penso che sia importante quando si consiglia di aggiungere un indice che si è in grado di controllare la raccomandazione e decidere autonomamente se si tratti di una buona opzione. Spesso ti consigliamo di aggiungere un indice di "copertura" con molte colonne per accelerare una singola query che hai chiesto di analizzare, ma questo potrebbe avere effetti negativi sul tuo database generale quando guardi tutte le query su quella tabella.

+0

quando ho risposto a questo, SO mi ha chiesto se ero umano o un bot! :(lol – MikeW

+0

smettere di rubare i referral Amazon di jeff! ecco perchè SO pensa che tu sia un bot –

0

Se si dispone di SQL Developer Edition, si desidera dare un'occhiata all'advisor di ottimizzazione del motore di database.

Se si utilizza il profiler per acquisire un carico di lavoro standard contro il proprio database, il DETA può consigliare quali statistiche e indici è possibile applicare.

Attenzione però che l'ottimizzazione richiede una buona dose di riflessione, poiché l'aggiunta di nuovi indici può aumentare la velocità del carico di lavoro, ma è possibile aumentare la velocità di una query non importante a scapito di una molto importante.

C'è un buon libro su TSQL Querying che ha alcuni ottimi consigli su come funzionano le query e su come è possibile controllarle, che è specifico per MSSQL.

+0

E il nome di quel buon libro sarebbe? – Svish

+0

http://www.amazon.com/Inside-Microsoft-SQL-Server-2005/dp/0735623139/ref=sr_1_1?ie=UTF8&s=books&qid=1242338708&sr=8-1 All'interno di MIcrosoft SQl Server: T-SQL Interrogazione. Immagino che quello del 2008 possa essere più appropriato ora. – Spence

0

In SQL Server, se lo schema del database è più semplice, non è necessario ottimizzare molto, poiché le chiavi primarie producono automaticamente un indice cluster e i vincoli di chiave esterna richiedono un indice univoco. Quindi i tuoi contatti vengono presi in considerazione, di solito.

Dove è difficile trovare le ricerche e i filtri utilizzati dalle query nell'applicazione. Dovrai esaminare specificamente queste query e identificare i candidati per ulteriori indici.

Un'altra opzione è l'Ottimizzazione guidata di SQL Server, ma scoraggio il suo utilizzo, perché genera così tanto rumore. Puoi usarlo per trovare le query più offensive, però.

0

Per un punto di partenza per identificare le query con le peggiori prestazioni, vedere la mia risposta here.

Imparare a sintonizzarsi è qualcosa che richiede pratica.Se vuoi diventare abili a esso, iniziare con l'acquisto del libro di Sajal Dam SQL Server Query Performance Tuning Distilled