Architettura dei thread e delle attività
I thread rappresentano una funzionalità del sistema operativo che consente di suddividere la logica dell'applicazione in più percorsi di esecuzione simultanei. Questa funzionalità è utile quando in applicazioni complesse è necessario eseguire numerose attività simultaneamente.
Quando esegue un'istanza di un'applicazione, il sistema operativo crea un'unità denominata processo per gestire l'istanza. Il processo dispone di un thread di esecuzione. Si tratta di una serie di istruzioni di programmazione eseguite dal codice dell'applicazione. In un'applicazione semplice con un singolo set di istruzioni che è possibile eseguire in serie, ad esempio, è disponibile un singolo percorso di esecuzione, o thread, per tutta l'applicazione. Nelle applicazioni più complesse è possibile eseguire più attività in parallelo, anziché in serie, avviando processi distinti per ogni attività. L'avvio di un processo, tuttavia, rappresenta un'operazione che richiede un numero elevato di risorse. In alternativa, l'applicazione può avviare thread distinti, che richiedono una quantità minore di risorse. Ogni thread, inoltre, può essere pianificato per l'esecuzione indipendentemente dagli altri thread associati al processo.
I thread consentono alle applicazioni complesse di ottimizzare l'utilizzo della CPU anche nel caso di computer con una singola CPU che possono eseguire un solo thread per volta. Se un thread esegue un'operazione che richiede tempi prolungati e non utilizza la CPU, ad esempio un'operazione di lettura o scrittura su disco, può essere eseguito un altro thread fino al completamento della prima operazione. La possibilità di eseguire thread mentre altri thread sono in attesa del completamento di un'operazione consente all'applicazione di ottimizzare l'utilizzo della CPU. Questo vale in particolare per le applicazioni multiutente che eseguono una grande quantità di I/O su disco, ad esempio i server di database. I computer con più microprocessori o CPU possono eseguire contemporaneamente un thread per ogni CPU. Se un computer dispone di otto CPU, ad esempio, può eseguire otto thread simultaneamente.
Contenuto della sezione
Pianificazione delle attività o dei batch di SQL Server
Descrive le modalità di pianificazione di thread o fiber per batch o attività.Allocazione di thread a una CPU
Descrive in che modo i thread delle istanze di SQL Server vengono distribuiti in modo uniforme tra i microprocessori di un computer da parte del sistema operativo. Descrive inoltre l'opzione di configurazione affinity mask.Utilizzo dell'opzione lightweight pooling
Descrive le condizioni in cui può risultare utile attivare l'opzione lightweight pooling.Thread ed esecuzione in modalità fiber
Descrive le modalità di esecuzione di thread e fiber e l'opzione utilizzata per impostare la priorità di esecuzione.Aggiunta di CPU a caldo
Descrive la funzionalità di aggiunta a caldo di CPU disponibile in SQL Server.