Comando Sequence (TMSL)
Si applica a:
SQL Server 2016 e versioni successive Analysis Services
Azure Analysis Services
Power BI Premium
Usare il comando Sequence per eseguire un set consecutivo di operazioni in modalità batch in un'istanza di Analysis Services. Per la riuscita della transazione, è necessario completare l'intero comando e tutte le relative parti componenti.
I comandi seguenti possono essere eseguiti in sequenza, ad eccezione del comando Refresh che viene eseguito in parallelo per elaborare più oggetti contemporaneamente.
Richiesta
maxParallelism è una proprietà facoltativa che determina se le operazioni di aggiornamento vengono eseguite in sequenza o in parallelo.
Il comportamento predefinito è usare il maggior parallelismo possibile. Incorporando Refresh all'interno di Sequence, è possibile controllare il numero esatto di thread usati durante l'elaborazione, inclusa la limitazione dell'operazione a un solo thread.
Nota
Il numero intero assegnato a maxParallelism determina il numero massimo di thread usati durante l'elaborazione. I valori validi sono qualsiasi numero intero positivo. L'impostazione del valore su 1 equivale a non parallela (usa un thread).
Solo l'aggiornamento viene eseguito in parallelo. Se si modifica maxParallelism in modo da usare un numero fisso di thread, assicurarsi di esaminare le proprietà nel comando Refresh (TMSL) per comprendere il potenziale impatto. È possibile impostare le proprietà in modo da compromettere il parallelismo anche quando sono stati resi disponibili più thread. La sequenza seguente di tipi di aggiornamento offrirà il miglior grado di parallelismo:
Prima di tutto, specificare Refresh per tutti gli oggetti usando ClearValues
Specificare quindi Refresh per tutti gli oggetti usando DataOnly
Specificare per ultimo l'aggiornamento per tutti gli oggetti che usano Full, Calculate, Automatic o Add
Qualsiasi variazione in questo caso interromperà il parallelismo.
{
"sequence":
{
"maxParallelism": 3,
"operations": [
{
"mergepartitions": {
"sources": [
{
"database": "salesdatabase",
"table": "Sales",
"partition": "partition1"
},
{
"database": "salesdatabase",
"table": "Sales",
"partition": "partition2"
}
]
}
},
{
"refresh": {
"type": "calculate",
"objects": [
{
"database": "salesdatabase"
}
]
}
}
]
}
}
Risposta
Restituisce un risultato vuoto quando il comando ha esito positivo. In caso contrario, viene restituita un'eccezione XMLA.
Utilizzo (endpoint)
Questo elemento di comando viene usato in un'istruzione del metodo Execute in tutto un endpoint XMLA, esposto nei modi seguenti:
Come finestra XMLA in SQL Server Management Studio (SSMS)
Come file di input per il cmdlet di PowerShell invoke-ascmd
Come input per un'attività SSIS o un SQL Server Agent
Non è possibile generare uno script pronto per questo comando da SSMS. È invece possibile iniziare con un esempio o scriverlo.