Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a: pool SQL dedicati di Azure Synapse Analytics (in precedenza SQL Data Warehouse)
In Azure Synapse SQL ogni tabella viene distribuita usando la strategia scelta dal cliente (Round Robin, Hash Distributed, Replicated). La strategia di distribuzione scelta può influire sostanzialmente sulle prestazioni delle query.
La funzionalità Advisor distribuzione (DA) di Azure Synapse SQL analizza le query dei clienti e consiglia le migliori strategie di distribuzione per le tabelle per migliorare le prestazioni delle query. Le interrogazioni da considerare dal consulente possono essere fornite dal cliente o prelevate dalle interrogazioni storiche disponibili presso DMV.
Annotazioni
Advisor della distribuzione è attualmente in anteprima per Azure Synapse Analytics. Le funzionalità di anteprima sono destinate solo ai test e non devono essere usate nelle istanze di produzione o nei dati di produzione. Come funzionalità di anteprima, Advisor distribuzione è soggetto a modifiche al comportamento o alla funzionalità. Se i dati sono importanti, conservare anche una copia dei dati di test. Il Gestore di Distribuzione non supporta le tabelle distribuite multicolonna.
Prerequisiti
Eseguire l'istruzione
SELECT @@versionT-SQL per assicurarsi che il pool SQL dedicato di Azure Synapse Analytics sia versione 10.0.15669 o successiva. Se la versione è inferiore, una nuova versione dovrebbe raggiungere automaticamente i pool SQL dedicati che hai configurato nel loro ciclo di manutenzione.Assicurarsi che le statistiche siano disponibili e aggiornate prima di eseguire Advisor. Per altre informazioni, vedere Gestire le statistiche delle tabelle, gli articoli CREATE STATISTICS e UPDATE STATISTICS per altri dettagli sulle statistiche.
Abilitare Azure Synapse Distribution Advisor per la sessione corrente con il comando T-SQL SET RECOMMENDATIONS .
Analizzare il carico di lavoro e generare raccomandazioni per la distribuzione
Il tutorial seguente illustra un caso d'uso di esempio relativo all'uso della funzionalità Distribution Advisor per analizzare le query dei clienti e raccomandare le migliori strategie di distribuzione.
Assistente Distribuzione analizza solo le query eseguite nelle tabelle utente.
1. Creare procedure memorizzate di Distribution Advisor
Per eseguire facilmente l'advisor, creare due nuove stored procedure nel database. Eseguire lo script CreateDistributionAdvisor_PublicPreview disponibile per il download da GitHub:
| Comando | Descrizione |
|---|---|
dbo.write_dist_recommendation |
Definisce le query che DA analizzerà. È possibile fornire query manualmente o leggere fino a 100 query precedenti dai carichi di lavoro effettivi in sys.dm_pdw_exec_requests. |
dbo.read_dist_recommendation |
Esegue Advisor e genera le raccomandazioni. |
Di seguito è riportato un esempio di come eseguire l'advisor.
2a. Eseguire Advisor sul carico di lavoro precedente nel DMV
Eseguire i seguenti comandi per leggere fino alle ultime 100 query nel carico di lavoro, al fine di ottenere suggerimenti per l'analisi e la distribuzione.
EXEC dbo.write_dist_recommendation <Number of Queries max 100>, NULL
go
EXEC dbo.read_dist_recommendation;
go
Per vedere quali query sono state analizzate da DA, eseguire lo script e2e_queries_used_for_recommendations.sql disponibile per il download da GitHub.
2b. Esegui l'advisor per le query selezionate
Il primo parametro in dbo.write_dist_recommendation deve essere impostato su 0e il secondo parametro è un elenco separato da punti e virgola di un massimo di 100 query che verranno analizzate da DA. Nell'esempio seguente vogliamo vedere la raccomandazione di distribuzione per due istruzioni separate da punto e virgola, select count (*) from t1; e select * from t1 join t2 on t1.a1 = t2.a1;.
EXEC dbo.write_dist_recommendation 0, 'select count (*) from t1; select * from t1 join t2 on t1.a1 = t2.a1;'
go
EXEC dbo.read_dist_recommendation;
go
3. Visualizzare le raccomandazioni
La dbo.read_dist_recommendation stored procedure di sistema restituirà raccomandazioni nel formato seguente al termine dell'esecuzione:
| Nome colonna | Descrizione |
|---|---|
| Table_name | Tabella analizzata da DA. Una riga per tabella indipendentemente dalla modifica della raccomandazione. |
| Distribuzione_Corrente | Strategia corrente di distribuzione delle tabelle. |
| Distribuzione_Raccomandata | Distribuzione consigliata. Può essere uguale a Current_Distribution se non è consigliato alcun cambiamento. |
| Distribution_Change_Command | Comando T-SQL CTAS per implementare la raccomandazione. |
4. Implementare il consiglio
- Eseguire il comando CTAS fornito da Advisor distribuzione per creare nuove tabelle con la strategia di distribuzione consigliata.
- Modificare le query da eseguire in nuove tabelle.
- Eseguire query su tabelle precedenti e nuove per confrontare i miglioramenti delle prestazioni.
Annotazioni
Per contribuire al miglioramento di Advisor distribuzione, compilare questo rapido sondaggio.
Risoluzione dei problemi
Questa sezione contiene scenari comuni di risoluzione dei problemi e errori comuni che possono verificarsi.
1. Stato non aggiornato da un'esecuzione precedente di Advisor
1a. Sintomo:
Viene visualizzato questo messaggio di errore durante l'esecuzione dell'advisor:
Msg 110813, Level 16, State 1, Line 1
Calling GetLastScalarResult() before executing scalar subquery.
1b. Mitigazione:
- Verificare di usare virgolette singole '' per eseguire Advisor sulle query selezionate.
- Avviare una nuova sessione in SSMS ed eseguire Advisor.
2. Errori durante l'esecuzione dell'advisor
2a. Sintomo:
Il riquadro 'result' mostra CommandToInvokeAdvisorString sotto ma non mostra il RecommendationOutput sotto.
Ad esempio, viene visualizzato solo il Command_to_Invoke_Distribution_Advisor set di risultati.
Ma non il set di risultati del secondo che contiene i comandi T-SQL per la modifica della tabella.
2b. Mitigazione:
Verifica l'output di
CommandToInvokeAdvisorStringsopra.Rimuovere le query che potrebbero non essere più valide che potrebbero essere state aggiunte qui dalle query selezionate a mano o dalla DMV modificando
WHEREla clausola in: Query considerate da DA.
3. Errore durante la post-elaborazione dell'output delle raccomandazioni
3a. Sintomo:
Viene visualizzato il messaggio di errore seguente.
Invalid length parameter passed to the LEFT or SUBSTRING function.
3b. Mitigazione:
Assicurati di avere la versione più aggiornata della procedura memorizzata da GitHub:
Script e2e_queries_used_for_recommendations.sql, disponibile su GitHub per il download
CreateDistributionAdvisor_PublicPreview.sql script disponibile per il download da GitHub
Feedback del gruppo di prodotti Azure Synapse
Per contribuire al miglioramento di Advisor distribuzione, compilare questo rapido sondaggio.
Se sono necessarie informazioni non fornite in questo articolo, cercare la pagina delle domande di Microsoft Q&A per Azure Synapse per porre domande ad altri utenti e al gruppo di prodotti Azure Synapse Analytics.
Monitoriamo attivamente questo forum per assicurarsi che le tue domande vengano risposte da un altro utente o da uno di noi. Se si preferisce porre domande su Stack Overflow, è disponibile anche un forum di Stack Overflow di Azure Synapse Analytics.
Per le richieste di funzionalità, usare la pagina Commenti e suggerimenti di Azure Synapse Analytics . L'aggiunta delle richieste o l'up-voting di altre richieste consente di concentrarsi sulle funzionalità più richieste.
Passaggi successivi
- SET RECOMMENDATIONS (Transact-SQL)
- Caricamento di dati in un pool SQL dedicato
- Strategie di caricamento dei dati per il pool SQL dedicato in Azure Synapse Analytics.
- Architettura del pool SQL dedicato (in precedenza SQL Data Warehouse) in Azure Synapse Analytics
- Guida rapida per il pool SQL dedicato (in precedenza SQL Data Warehouse) in Azure Synapse Analytics