Tecnologie e sistemi di database in memoria

Si applica a:SQL Server

Questa pagina è stata progettata come documento di riferimento per le tecnologie e le funzionalità in memoria disponibili in SQL Server. Il concetto di sistema di database in memoria si riferisce a un sistema di database progettato per sfruttare le maggiori capacità di memoria disponibili nei sistemi di database moderni. Un database in memoria può essere di natura relazionale o non relazionale.

Si presuppone spesso che i vantaggi delle prestazioni di un sistema di database in memoria dipendono dalla maggiore velocità di accesso ai dati residenti in memoria rispetto ai dati presenti anche nei più veloci sottosistemi disco disponibili (in base a diversi ordini di grandezza). Molti carichi di lavoro di SQL Server, tuttavia, possono adattarsi all'intero working set nella memoria disponibile. Molti sistemi di database in memoria possono salvare in modo permanente i dati su disco e potrebbero non essere sempre in grado di adattare l'intero set di dati alla memoria disponibile.

Una cache volatile veloce di fronte a un supporto notevolmente più lento ma durevole ha un'importanza predominante per i carichi di lavoro dei database relazionali. Questa cache richiede particolari approcci alla gestione del carico di lavoro. Le opportunità offerte da velocità di trasferimento della memoria superiori, maggiore capacità o persino memoria persistente facilitano lo sviluppo di nuove funzionalità e tecnologie che possono stimolare l'adozione di nuovi approcci alla gestione del carico di lavoro del database relazionale.

Pool di buffer ibrido

Si applica a:SQL Server

Il pool di buffer ibrido espande il pool di buffer per i file di database che risiedono in dispositivi di archiviazione con memoria persistente indirizzabili a byte per entrambe le piattaforme Windows e Linux con SQL Server 2019 (15.x).

Metadati tempdb ottimizzati per la memoria

Si applica a:SQL Server

SQL Server 2019 (15.x) introduce una nuova funzionalità, ovvero i metadati tempdb ottimizzati per la memoria che rimuove in modo efficace i colli di bottiglia dovuti alla contesa e sblocca un nuovo livello di scalabilità per i carichi di lavoro tempdb elevati.

Per altre informazioni sui miglioramenti recenti a tempdb, inclusi i metadati ottimizzati per la memoria in SQL Server 2019 (15.x) e sulle funzionalità più recenti, vedi Improve scalability with system page latch concurrency enhancements in SQL Server 2022 (Migliorare la scalabilità con i miglioramenti della concorrenza della pagina di sistema in SQL Server 2022) e guarda System Page Latch Concurrency Enhancements (Ep. 6) | Data Exposed (Miglioramenti della concorrenza dei latch di pagina di sistema (Ep. 6) | Dati esposti).

OLTP in memoria

Si applica a:SQL Server

OLTP in memoria è una tecnologia di database disponibile in SQL Server e nel database SQL per ottimizzare le prestazioni di elaborazione delle transazioni, l'inserimento di dati, il caricamento di dati e gli scenari di dati temporanei.

Configurazione del supporto della memoria persistente per Linux

Si applica a:SQL Server - Linux

SQL Server 2019 (15.x) descrive come configurare la memoria persistente (PMEM) usando la memoria persistente dell'utilità ndctl.

Buffer di log persistente

Il Service Pack 1 di SQL Server 2016 (13.x) ha introdotto un'ottimizzazione delle prestazioni per i carichi di lavoro a elevato utilizzo di scrittura vincolati dalle attese di WRITELOG. Per archiviare il buffer di log viene usata la memoria persistente. Questo buffer, di dimensioni ridotte (20 MB per database utente), deve essere scaricato su disco per garantire la finalizzazione delle transazioni scritte nel log. Per i carichi di lavoro OLTP a elevato utilizzo di scrittura, questo meccanismo di scaricamento può diventare un collo di bottiglia. Con il buffer di log nella memoria persistente, il numero di operazioni necessarie per finalizzare il log viene ridotto, migliorando i tempi complessivi delle transazioni e aumentando le prestazioni del carico di lavoro. Questo processo è stato inizialmente definito memorizzazione nella cache della coda del log. Questo nome, tuttavia, appariva in conflitto con il backup della coda del log e la nozione classica in base alla quale la coda del log è la parte finalizzata, ma non ancora sottoposta a backup, del log delle transazioni. È stato quindi usato il nome ufficiale di questa funzionalità, ovvero "buffer di log persistente".

Vedere Aggiungere un buffer di log persistente a un database.