Eventi
31 mar, 23 - 2 apr, 23
Il più grande evento di apprendimento di SQL, Infrastruttura e Power BI. 31 marzo - 2 aprile. Usare il codice FABINSIDER per salvare $400.
Iscriviti oggi stessoQuesto browser non è più supportato.
Esegui l'aggiornamento a Microsoft Edge per sfruttare i vantaggi di funzionalità più recenti, aggiornamenti della sicurezza e supporto tecnico.
Si applica a:SQL Server
Database SQL di Azure
Istanza gestita di SQL di Azure
Azure Synapse Analytics
Analytics Platform System (PDW)
Database SQL in Microsoft Fabric
Informazioni sulle funzionalità columnstore disponibili per ogni versione di SQL Server e sulle versioni più recenti di database SQL, Azure Synapse Analytics e Piattaforma di strumenti analitici (PDW).
Questa tabella riepiloga le funzionalità principali per gli indici columnstore e i prodotti in cui sono disponibili.
1 per SQL Server 2016 (13.x) SP1 e versioni successive, gli indici columnstore sono disponibili in tutte le edizioni. Per SQL Server 2016 (13.x) (prima di SP1) e versioni precedenti, gli indici columnstore sono disponibili solo in Enterprise Edition.
2 Per il database SQL di Azure, gli indici columnstore sono disponibili nei livelli DTU Premium, livelli DTU Standard - S3 e versioni successive e tutti i livelli vCore.
3 Il grado di parallelismo (DOP) per modalità batch operazioni è limitato a 2 per SQL Server Standard Edition e 1 per le edizioni Web ed Express di SQL Server. Questa limitazione si riferisce agli indici columnstore creati tramite le tabelle basate su disco e le tabelle ottimizzate per la memoria.
4 Per creare un indice columnstore non clusterizzato di sola lettura, archiviare su un filegroup di sola lettura.
5 Non supportato nei pool SQL dedicati, ma è supportato nel pool SQL serverless.
AUTD si applica all'istanza gestita di SQL di Azure configurata con i criteri di aggiornamento sempre aggiornati.
SQL Server 2022 (16.x) ha aggiunto queste funzionalità:
ALTER INDEX REBUILD
o CREATE INDEX WITH (DROP_EXISTING = ON)
.LIKE
, ad esempio column LIKE 'string%'
. L'eliminazione dei segmenti non è supportata per l'uso di LIKE
in modi che non siano prefissi, come nel caso di column LIKE '%string'
.SQL Server 2019 (15.x) aggiunge queste nuove funzionalità:
A partire da SQL Server 2019 (15.x), il motore di tuple viene aiutato da un'attività di unione in background, che comprime automaticamente i rowgroup delta aperti più piccoli che sono esistiti per un dato periodo di tempo (come determinato da una soglia interna) oppure unisce i rowgroup compressi da cui è stato eliminato un numero elevato di righe. In precedenza era necessaria un'operazione di riorganizzazione dell'indice per unire i rowgroup con dati eliminati parzialmente. In questo modo viene migliorata la qualità dell'indice columnstore nel tempo.
SQL Server 2017 (14.x) aggiunge queste nuove funzionalità.
SQL Server 2016 (13.x) aggiunge miglioramenti importanti per aumentare le prestazioni e la flessibilità degli indici columnstore. In questo modo è possibile migliorare gli scenari di data warehouse e abilitare l'analisi operativa in tempo reale.
Una tabella di tipo rowstore può avere un solo indice columnstore non cluster aggiornabile. In precedenza, l'indice columnstore non-cluster era di sola lettura.
La definizione degli indici columnstore non clusterizzati supporta l'uso di una condizione filtrata. Per ridurre al minimo l'impatto sulle prestazioni conseguente all'aggiunta di un indice columnstore in una tabella OLTP, usare una condizione filtrata per creare un indice columnstore non clusterizzato solo sui dati freddi del carico di lavoro operativo.
Una tabella in memoria può avere un solo indice a colonne. È possibile crearlo durante la creazione della tabella o aggiungerlo in un secondo momento con ALTER TABLE (Transact-SQL). In precedenza, solo una tabella basata su disco poteva avere un indice columnstore.
Un indice columnstore clusterizzato può avere uno o più indici rowstore non clusterizzati. In precedenza, l'indice columnstore non supportava gli indici non cluster. SQL Server gestisce automaticamente gli indici non cluster per le operazioni DML.
Supporto per chiavi primarie e chiavi esterne tramite un indice B-tree per imporre questi vincoli su un indice columnstore clusterizzato.
Gli indici columnstore hanno un'opzione relativa al ritardo di compressione che riduce al minimo l'impatto che il carico di lavoro transazionale ha sull'analisi operativa in tempo reale. Questa opzione consente di modificare frequentemente le righe per stabilizzarle prima di comprimerle nel columnstore. Per informazioni dettagliate, vedere CREATE COLUMNSTORE INDEX (Transact-SQL); e Introduzione a columnstore per l'analisi operativa in tempo reale.
Gli indici columnstore supportano il livello di isolamento con conferma lettura (RCSI) e l'isolamento snapshot (SI). Questo consente le query di analisi coerente transazionale senza alcun blocco.
Columnstore supporta la deframmentazione degli indici rimuovendo le righe eliminate senza necessità di ricompilare l'indice in modo esplicito. L'istruzione ALTER INDEX ... REORGANIZE
rimuove dal columnstore le righe eliminate in base a un criterio definito internamente, con un'operazione online
Gli indici columnstore possono essere accessibili su una replica secondaria leggibile Always On. È possibile migliorare le prestazioni per l'analisi operativa ripartendo le query di analisi su una replica secondaria Always On.
Aggregazione Pushdown determina le funzioni di aggregazione MIN
, MAX
, SUM
, COUNT
e AVG
durante le scansioni di tabella, quando il tipo di dati usa non più di 8 byte e non è di tipo di dato stringa. Il pushdown delle aggregazioni è supportato con o senza clausola GROUP BY
sia per gli indici columnstore clusterizzati sia per quelli non clusterizzati. In SQL Server questa funzionalità avanzata è riservata per l'edizione Enterprise.
Lo spostamento del predicato di stringa accelera le query che confrontano stringhe di tipo VARCHAR/CHAR o NVARCHAR/NCHAR. Questo si applica ai comuni operatori di confronto e include operatori come LIKE
che usano i filtri bitmap. Funziona con tutte le collazioni supportate. In SQL Server questa funzionalità avanzata è riservata per l'edizione Enterprise.
Miglioramenti per le operazioni in modalità batch sfruttando le funzionalità hardware basate su vettori. Il motore di database rileva il livello di supporto CPU per le estensioni hardware AVX 2 (Advanced Vector Extensions) e SSE 4 (Streaming SIMD Extensions 4) e le usa se supportate. In SQL Server questa funzionalità avanzata è riservata per l'edizione Enterprise.
Nuovo supporto dell'esecuzione in modalità batch per le query che usano uno di questi operatori:
SORT
COUNT/COUNT
, AVG/SUM
, CHECKSUM_AGG
, STDEV/STDEVP
COUNT
, COUNT_BIG
, SUM
, AVG
, MIN
, MAX
e CLR
CHECKSUM_AGG
, STDEV
, STDEVP
, VAR
, VARP
e GROUPING
LAG
, LEAD
, FIRST_VALUE
, LAST_VALUE
, PERCENTILE_CONT
, PERCENTILE_DISC
, CUME_DIST
e PERCENT_RANK
Le query a thread singolo in esecuzione in MAXDOP 1
o con un piano di query seriale vengono eseguite in modalità batch. In passato, le query multithreading venivano eseguite in modalità batch.
Le query delle tabelle ottimizzate per la memoria possono avere piani paralleli in modalità SQL InterOp sia quando accedono ai dati in un archivio a righe (rowstore) che in un indice a colonne (columnstore).
Queste viste di sistema sono una novità per columnstore:
Queste DMV basate su OLTP in memoria contengono aggiornamenti per l'archiviazione a colonne:
Si applica a: SQL Server e Istanza gestita di SQL di Azure
DBCC SHRINKDATABASE
e DBCC SHRINKFILE
.SQL Server 2014 (12.x) ha introdotto l'indice columnstore cluster come formato di archiviazione primario. Questo ha consentito caricamenti regolari, nonché operazioni di aggiornamento, eliminazione e inserimento.
SQL Server 2012 (11.x) ha introdotto l'indice columnstore non clusterizzato come un'ulteriore tipologia di indice per le tabelle rowstore e l'elaborazione massiva per le query sui dati columnstore.
INSERT
, DELETE
e UPDATE
: per eseguire queste operazioni è necessario eliminare l'indice, aggiornare la tabella e ricompilare l'indice columnstore. È possibile caricare dati aggiuntivi nella tabella usando un cambio di partizione. Il vantaggio del cambio di partizione è che consente di caricare dati senza eliminare e ricompilare l'indice columnstore.Eventi
31 mar, 23 - 2 apr, 23
Il più grande evento di apprendimento di SQL, Infrastruttura e Power BI. 31 marzo - 2 aprile. Usare il codice FABINSIDER per salvare $400.
Iscriviti oggi stessoFormazione
Modulo
Ottimizzare le prestazioni delle query sul data warehouse in Azure Synapse Analytics - Training
Ottimizzare le prestazioni delle query sul data warehouse in Azure Synapse Analytics