Quantcast
Channel: SQL Server Analysis Services forum
Viewing all articles
Browse latest Browse all 14337

PowerShell script to process ALL SSAS databases (dimensions, partitions, and cubes)

$
0
0

I searched everywhere for a simple method to reprocess all my SSAS databases and ended up just writing a PowerShell script to do it for me. Below is the script.

## TODO: Replace SQLServerName with the name of your SQL Server. ## 

Import-Module “sqlps” -DisableNameChecking
Set-Location SQLSERVER:\SQLAS\SQLServerName\TABULAR\Databases

#Get a list of databases
$databases = Get-ChildItem 

ForEach($database in $databases) { 

    Write-Host "Working in database: " $database.Name  -ForegroundColor Gray
    #Process all Partitions BEGIN
    Set-Location SQLSERVER:\SQLAS\SQLServerName\TABULAR\Databases\$database\Cubes
    $cubes = Get-ChildItem 
    foreach($cube in $cubes) { 
        Set-Location SQLSERVER:\SQLAS\SQLServerName\TABULAR\Databases\$database\Cubes\$cube\MeasureGroups
        $MeasureGroups = Get-ChildItem
        foreach($MeasureGroup in $MeasureGroups) { 
            Set-Location SQLSERVER:\SQLAS\SQLServerName\TABULAR\Databases\$database\Cubes\$cube\MeasureGroups\$MeasureGroup\Partitions
            $Partitions = Get-ChildItem
            foreach($Partition in $Partitions) { 
                Write-Host "Processing partition: " $Partition -ForegroundColor Gray
                Invoke-ProcessPartition -CubeName $cube -Database $database -MeasureGroupName $MeasureGroup -Name $Partition -ProcessType ProcessFull -ErrorAction SilentlyContinue -ErrorVariable ex 
                if($ex[0].Exception) { Write-Host -ForegroundColor Red -Object $ex[0].Exception.Message }
            }
        }
    }
    #Process all Partitions END

    #Process all Dimensions BEGIN
    Set-Location SQLSERVER:\SQLAS\SQLServerName\TABULAR\Databases\$database\Dimensions
    $dimensions = Get-ChildItem 
    foreach($dimension in $dimensions) { 
        Write-Host "Processing dimension: " $dimension -ForegroundColor Gray
        Invoke-ProcessDimension -Database $database -Name $dimension -ProcessType ProcessFull -ErrorAction SilentlyContinue -ErrorVariable ex 
        if($ex[0].Exception) { Write-Host -ForegroundColor Red -Object $ex[0].Exception.Message }
    }
    #Process all Dimensions END

    #Process all cubes BEGIN
    Set-Location SQLSERVER:\SQLAS\SQLServerName\TABULAR\Databases\$database\Cubes
    $cubes = Get-ChildItem 
    foreach($cube in $cubes) { 
        Write-Host "Processing cube: " $cube -ForegroundColor Gray
        Invoke-ProcessCube -Database $database -Name $cube -ProcessType ProcessFull -ErrorAction SilentlyContinue -ErrorVariable ex
        if($ex[0].Exception) { Write-Host -ForegroundColor Red -Object $ex[0].Exception.Message }
    }
    #Process all cubes END


}


Viewing all articles
Browse latest Browse all 14337

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>