Comprendere le funzionalità del linguaggio Transact-SQL per Azure Synapse Analytics
Azure Synapse Analytics supporta l'esecuzione di query su dati relazionali (endpoint SQL dedicati e serverless) e non relazionali (Azure Data Lake Storage Gen 2, Cosmos DB e Archiviazione BLOB di Azure) a livello di petabyte con Transact SQL, supportando il linguaggio SQL conforme ad ANSI.
Il linguaggio di query di Azure Synapse SQL supporta funzionalità diverse in base al modello di risorse in uso. La tabella seguente illustra le istruzioni Transact-SQL che funzionano con ogni modello di risorsa.
Istruzione T-SQL | Dedicato | Senza server |
---|---|---|
Istruzione SELECT | Sì | Sì |
Istruzione INSERT | Sì | No |
Istruzione UPDATE | Sì | No |
Istruzione DELETE | Sì | No |
Istruzione merge | No | No |
Transazioni | Sì | Sì |
Etichette | Sì | No |
Caricamento dati | Sì | No |
Esportazione dei dati | Sì, con CETAS | Sì, con CETAS |
Query tra database | No | Sì |
Funzioni predefinite (analisi, testo, valori di tabella) | Sì | Sì |
Aggregazioni | Aggregazioni predefinite di Transact-SQL | Aggregazioni predefinite di Transact-SQL |
Operatori | Sì | Sì |
Flusso di controllo | Sì | Sì |
Istruzioni DDL | Sì | Sì |
Piani di esecuzione di query
In Synapse Analytics è possibile visualizzare il piano di esecuzione delle query per un pool SQL dedicato a livello di nodo di controllo e calcolo usando la verifica coerenza del database, DBCC PDW_SHOWEXECUTIONPLAN
Nota
Questo processo non è supportato dal pool SQL serverless in Azure Synapse Analytics.
Per vedere cosa è in esecuzione in un pool dedicato di Azure Synapse è possibile usare la query seguente:
SELECT [sql_spid], [pdw_node_id], [request_id], [dms_step_index], [type], [start_time], [end_time], [status], [distribution_id]
FROM sys.dm_pdw_dms_workers
WHERE [status] <> 'StepComplete' and [status] <> 'StepError'
order by request_id, [dms_step_index];
Dopo aver identificato un nodo da analizzare, è possibile usare il comando DBCC PDW_SHOWEXECUTIONPLAN per esaminare il piano di esecuzione per una distribuzione specifica e la relativa sessione specifica, come illustrato nell'esempio seguente:
DBCC PDW_SHOWEXECUTIONPLAN ( 1, 375 );