Share via


Miglioramenti della scalabilità e delle prestazioni del Motore di database

Il partizionamento dei dati è stato migliorato con il partizionamento delle tabelle e degli indici nativi. La concorrenza delle applicazioni risulta più efficiente grazie al nuovo livello di isolamento dello snapshot e alla possibilità di avere più set di risultati attivi in una connessione.

Miglioramenti della scalabilità e delle prestazioni

Guide di piano

È disponibile una nuova stored procedure di sistema, denominata sp_create_plan_guide, che consente di ottimizzare le prestazioni delle query associandovi hint quando non è possibile o consigliabile modificare direttamente il testo della query. Le guide di piano possono risultare utili quando un piccolo insieme di query non funziona come previsto in un'applicazione di database distribuita da un produttore di terze parti.

Per ulteriori informazioni, vedere Ottimizzazione delle query nelle applicazioni distribuite tramite le guide di piano.

Livello di isolamento dello snapshot

Il livello di isolamento dello snapshot implementa il controllo delle versioni delle righe per offrire all'utente una vista dei dati del database corrispondente al momento in cui è iniziata la transazione corrente. Le transazioni degli snapshot acquisiscono blocchi per proteggere le operazioni di lettura solo durante il ripristino. L'isolamento dello snapshot può ridurre al minimo i problemi relativi ai blocchi nelle applicazioni in sola lettura.

Per ulteriori informazioni, vedere Livelli di isolamento basati sul controllo delle versioni delle righe nel Motore di database.

Statistiche sulle colonne datetime correlate

È possibile attivare una nuova opzione SET di database, denominata DATE_CORRELATION_OPTIMIZATION, per migliorare le prestazioni delle query che uniscono in join due tabelle le cui colonne datetime sono correlate e che specificano una limitazione di data nel predicato delle query.

Per ulteriori informazioni, vedere Ottimizzazione di query che accedono a colonne datetime correlate.

Parametrizzazione forzata

È possibile specificare che tutte le query eseguite in un database vengano parametrizzate impostando una nuova opzione SET di database PARAMETERIZATION su FORCED. La parametrizzazione forzata può migliorare le prestazioni di determinati database riducendo la frequenza di ricompilazione delle query.

Per ulteriori informazioni, vedere Parametrizzazione forzata.

Aggiornamento asincrono delle statistiche

La nuova opzione SET di database AUTO_UPDATE_STATISTICS_ASYNC consente di migliorare la prevedibilità dei tempi di risposta delle query. Quando è attivata, le statistiche non aggiornate vengono inserite in una coda di aggiornamento per un thread di lavoro in background e la query che ha iniziato l'aggiornamento delle statistiche viene compilata immediatamente anziché attendere l'aggiornamento delle statistiche.

Per ulteriori informazioni, vedere Statistiche dell'indice.

Colonne calcolate persistenti

Le colonne calcolate possono essere contrassegnate come PERSISTED, per fare in modo che i valori vengano archiviati nella pagine di dati della tabella. Questa soluzione può velocizzare il recupero di colonne che implicano molte operazioni di elaborazione.

Per ulteriori informazioni, vedere Colonne calcolate.

MARS (Multiple Active Result Set)

In SQL Server 2005 più istruzioni possono restituire set di risultati simultaneamente su una singola connessione. Nelle versioni precedenti di SQL Server, una sola istruzione alla volta può restituire attivamente set di risultati per ogni connessione e non è possibile eseguire nuove istruzioni fino a quando non sono stati recuperati tutti i set di risultati.

Per ulteriori informazioni, vedere Ambiente di esecuzione del batch e MARS.

Inclusione di colonne non chiave in indici non cluster

Le colonne che non fanno parte della chiave di indice possono essere incluse in indici non cluster. L'inclusione delle colonne non chiave può velocizzare le query che possono acquisire tutti i dati necessari dall'indice senza dovere accedere alle righe di dati e consente di superare le limitazioni correnti di dimensione dell'indice di un massimo di 16 colonne chiave e della dimensione della chiave di indice di un massimo di 900 byte.

Per ulteriori informazioni, vedere Indice con colonne incluse.

Granularità dei blocchi di indice

Le nuove opzioni ALLOW_ROW_LOCKS e ALLOW_PAGE_LOCKS in CREATE INDEX e ALTER INDEX possono essere utilizzate per controllare il livello di applicazione dei blocchi per l'indice.

Per ulteriori informazioni, vedere Impostazione delle opzioni di un indice.

Indici su colonne di tipo XML

I documenti e i frammenti XML archiviati tramite il tipo di dati XML possono essere di dimensioni molto elevate. Se non sono indicizzati, Motore di database deve suddividere i documenti e i frammenti per ogni riferimento. La definizione di un indice su una colonna tramite il tipo di dati XML consente a Motore di database di elaborare in modo più efficiente i documenti e i frammenti.

Per ulteriori informazioni, vedere Indici nelle colonne con tipo di dati XML

Miglioramenti delle viste indicizzate

Query Optimizer di SQL Server 2005 è in grado di associare più query alle viste indicizzate rispetto alle versioni precedenti, incluse le query contenti espressioni scalari, funzioni di aggregazione scalare e definite dall'utente, espressioni di intervallo e condizioni di equivalenza.

Per ulteriori informazioni, vedere Progettazione di viste indicizzate.

Le definizioni delle viste indicizzate possono inoltre contenere funzioni di aggregazione scalare e definite dall'utente con alcune limitazioni.

Per ulteriori informazioni, vedere Creazione di viste indicizzate.

Nuovi hint per le query

Sono stati aggiunti quattro hint per le query da utilizzare nella generazione di piani ottimali per le query.

RECOMPILE impone a SQL Server l'eliminazione del piano generato per la query dopo l'esecuzione, in modo che ne venga generato uno nuovo la volta successiva in cui viene eseguito lo stesso piano di query o uno simile. RECOMPILE risulta utile per le query con valori variabili che cambiano di molto ogni volta che vengono compilate ed eseguite. Questo hint può essere utilizzato in sostituzione dell'opzione WITH RECOMPILE per la creazione di stored procedure quando si desidera ricompilare un solo subset di query all'interno della stored procedure.

OPTIMIZE FOR indica a SQL Server di utilizzare un determinato valore per una variabile locale con un valore che altrimenti sarebbe sconosciuto quando la query viene compilata e ottimizzata.

USE PLAN indica a SQL Server di utilizzare un piano esistente per una query. L'hint per la query USE PLAN può essere utilizzato per le query i cui piani hanno tempi di esecuzione prolungati, ma per le quali esistono piani migliori.

PARAMETERIZATION specifica se una query viene parametrizzata come parte della compilazione di un piano per la query e viene utilizzata all'interno di una guida del piano per eseguire l'override dell'impostazione corrente dell'opzione SET di database PARAMETERIZATION.

Per ulteriori informazioni, vedere query_hint (Transact-SQL).

Eliminazione e ricostruzione di oggetti di grandi dimensioni

Quando si eliminano o si ricostruiscono tabelle e indici che utilizzano più di 128 extent, SQL Server 2005 posticipa le deallocazioni effettive della pagina e i blocchi associati fino all'avvenuto commit della transazione. Questi blocchi vengono evitati suddividendo il processo in una fase fisica e una logica.

Per ulteriori informazioni, vedere Eliminazione e ricostruzione di oggetti di grandi dimensioni.

Database condivisi scalabili

Questa nuova funzionalità consente di associare un database in sola lettura a più istanze del server di SQL Server 2005 in una rete di archiviazione (SAN). Un database condiviso scalabile consente di applicare la scalabilità orizzontale a un database tramite comuni componenti hardware per server di report e volumi e per ottenere un aggiornamento senza problemi.

Per ulteriori informazioni, vedere Panoramica dei database condivisi scalabili.

Vedere anche

Concetti

Miglioramenti del Motore di database

Guida in linea e informazioni

Assistenza su SQL Server 2005