From 999e60ea6b8a203aeefc01f7d2187dbee428ce59 Mon Sep 17 00:00:00 2001 From: Vlad Drumea <48413726+VladDBA@users.noreply.github.com> Date: Wed, 21 Feb 2024 02:46:10 +0200 Subject: [PATCH] minor bugfixes --- PSBlitz.ps1 | 175 +++++++++++------------------------ Resources/PSBlitzOutput.xlsx | Bin 711430 -> 711435 bytes 2 files changed, 54 insertions(+), 121 deletions(-) diff --git a/PSBlitz.ps1 b/PSBlitz.ps1 index ccdd41f..7d874d9 100644 --- a/PSBlitz.ps1 +++ b/PSBlitz.ps1 @@ -257,8 +257,8 @@ param( ###Internal params #Version -$Vers = "4.0.1" -$VersDate = "2024-02-14" +$Vers = "4.0.2" +$VersDate = "2024-02-21" $TwoMonthsFromRelease = [datetime]::ParseExact("$VersDate", 'yyyy-MM-dd', $null).AddMonths(2) $NowDate = Get-Date #Get script path @@ -905,7 +905,7 @@ if (($InteractiveMode -eq 1) -and (!([string]::IsNullOrEmpty($SQLLogin))) ) { } ###If release is older than 2 months print an info message -if($NowDate -ge $TwoMonthsFromRelease){ +if ($NowDate -ge $TwoMonthsFromRelease) { Write-Host "Informational: This release of PSBlitz is two months old" -Fore Yellow Write-Host "->You can check for a newer release at https://github.com/VladDBA/PSBlitz/releases" } @@ -1377,7 +1377,8 @@ try { Write-Host " check for " -NoNewLine if ($IsAzureSQLDB) { Write-Host "Azure SQL DB - $ASDBName" - }elseif($IsAzureSQLMI){ + } + elseif ($IsAzureSQLMI) { Write-Host "Azure SQL MI - $($ServerName.Replace('.database.windows.net',''))" } else { @@ -2802,7 +2803,7 @@ $htmlTable6 Write-Host " ->Converting Database Info results to HTML" -fore yellow } $htmlTable = $DBInfoTbl | Select-Object "Database", @{Name = "Created"; Expression = { ($_."Created").ToString("yyyy-MM-dd HH:mm:ss") } }, - "DatabaseState","UserAccess", "DataFiles", "DataFilesSizeGB", "LogFiles", + "DatabaseState", "UserAccess", "DataFiles", "DataFilesSizeGB", "LogFiles", "LogFilesSizeGB", "VirtualLogFiles", "FILESTREAMContainers", "FSContainersSizeGB", "DatabaseSizeGB", "CurrentLogReuseWait", "CompatibilityLevel", "PageVerifyOption", "Containment", "Collation", "SnapshotIsolationState", "ReadCommittedSnapshotOn", "RecoveryModel", "AutoCloseOn", @@ -2888,7 +2889,7 @@ $htmlBlock $RowNum = 0 #List of columns that should be returned from the data set - $DataSetCols = @("Database", "Created", "DatabaseState", "UserAccess","DataFiles", "DataFilesSizeGB", "LogFiles", + $DataSetCols = @("Database", "Created", "DatabaseState", "UserAccess", "DataFiles", "DataFilesSizeGB", "LogFiles", "LogFilesSizeGB", "VirtualLogFiles", "FILESTREAMContainers", "FSContainersSizeGB", "DatabaseSizeGB", "CurrentLogReuseWait", "CompatibilityLevel", "PageVerifyOption", "Containment", "Collation", "SnapshotIsolationState", "ReadCommittedSnapshotOn", "RecoveryModel", "AutoCloseOn", @@ -3618,13 +3619,18 @@ $htmlTable #Setting $i to 0 $i = 0 + $BlitzCacheTbl.Columns.Add("SQLPlan File", [string]) | Out-Null + foreach ($row in $BlitzCacheTbl) { #Increment file name counter $i += 1 + $SQLPlanFile = "-- N/A --" #Get only the column storing the execution plan data that's not NULL and write it to a file if ($BlitzCacheTbl.Rows[$RowNum]["Query Plan"] -ne [System.DBNull]::Value) { - $BlitzCacheTbl.Rows[$RowNum]["Query Plan"] | Format-XML | Set-Content -Path $PlanOutDir\$($FileSOrder)_$($i).sqlplan -Force - } + $SQLPlanFile = $FileSOrder + "_" + $i + ".sqlplan" + $BlitzCacheTbl.Rows[$RowNum]["Query Plan"] | Format-XML | Set-Content -Path "$PlanOutDir\$SQLPlanFile" -Force + } + $BlitzCacheTbl.Rows[$RowNum]["SQLPlan File"] = $SQLPlanFile #Increment row retrieval counter $RowNum += 1 } @@ -3668,20 +3674,10 @@ $htmlTable if ($ToHTML -eq "Y") { $SheetName = $SheetName -replace "sp_BlitzCache ", "" - $BlitzCacheTbl.Columns.Add("SQLPlan File", [string]) | Out-Null + $RowNum = 0 $i = 0 - foreach ($row in $BlitzCacheTbl) { - if ($BlitzCacheTbl.Rows[$RowNum]["Query Plan"] -ne [System.DBNull]::Value) { - $i += 1 - $SQLPlanFile = $FileSOrder + "_" + $i + ".sqlplan" - - } - else { $SQLPlanFile = "-- N/A --" } - $BlitzCacheTbl.Rows[$RowNum]["SQLPlan File"] = $SQLPlanFile - $RowNum += 1 - } #adding query name $BlitzCacheTbl.Columns.Add("Query", [string]) | Out-Null $RowNum = 0 @@ -3866,7 +3862,7 @@ $htmlTable $ExcelColNum = 1 #define column list to only get the sp_BlitzCache columns that are relevant in this case - $DataSetCols = @("Database", "Cost", "Query Text", "Query Type", "Warnings", "Missing Indexes", "Implicit Conversion Info", "Cached Execution Parameters", + $DataSetCols = @("Database", "Cost", "Query Text", "SQLPlan File", "Query Type", "Warnings", "Missing Indexes", "Implicit Conversion Info", "Cached Execution Parameters", "# Executions", "Executions / Minute", "Execution Weight", "% Executions (Type)", "Serial Desired Memory", "Serial Required Memory", "Total CPU (ms)", "Avg CPU (ms)", "CPU Weight", "% CPU (Type)", @@ -3883,11 +3879,6 @@ $htmlTable Write-Host " ->Writing sp_BlitzCache results to sheet $SheetName" -fore yellow } foreach ($row in $BlitzCacheTbl) { - $SQLPlanFile = "-- N/A --" - #Changing the value of $SQLPlanFile only for records where execution plan exists - if ($BlitzCacheTbl.Rows[$RowNum]["Query Plan"] -ne [System.DBNull]::Value) { - $SQLPlanFile = $FileSOrder + "_" + $SQLPlanNum + ".sqlplan" - } #Loop through each column from $DataSetCols for curent row and retrieve data from foreach ($col in $DataSetCols) { @@ -3909,23 +3900,13 @@ $htmlTable $ExcelSheet.Cells.Item($ExcelStartRow, $ExcelColNum) = $BlitzCacheTbl.Rows[$RowNum][$col] #move to the next column $ExcelColNum += 1 - <# - If the next column is the SQLPlan Name column - fill it separately and then move to next column - #> - if ($ExcelColNum -eq 4) { - $ExcelSheet.Cells.Item($ExcelStartRow, $ExcelColNum) = $SQLPlanFIle - #move to the next column - $ExcelColNum += 1 - } + } #move to the next row in the spreadsheet $ExcelStartRow += 1 #move to the next row in the data set $RowNum += 1 - #Move to the next sqlplan file - $SQLPlanNum += 1 # reset Excel column number so that next row population begins with column 1 $ExcelColNum = 1 } @@ -4045,7 +4026,7 @@ $htmlTable [int]$TwoThirdsBlitzCache = [Math]::Floor([decimal]($BlitzCacheRecs / 1.5)) [string]$DBName = $DBArray | Group-Object -NoElement | Sort-Object Count | ForEach-Object Name | Select-Object -Last 1 [int]$DBCount = $DBArray | Group-Object -NoElement | Sort-Object Count | ForEach-Object Count | Select-Object -Last 1 - if (($DBCount -ge $TwoThirdsBlitzCache) -and ($DBName -ne "-- N/A --")) { + if (($DBCount -ge $TwoThirdsBlitzCache) -and ($DBName -ne "-- N/A --") -and (!([string]::IsNullOrEmpty($DBName)))) { Write-Host " $DBName accounts for at least 2/3 of the records returned by sp_BlitzCache" Write-Host " ->" -NoNewLine $StepStart = get-date @@ -4059,7 +4040,7 @@ $htmlTable ##Check if DB is eligible for sp_BlitzQueryStore first if ((!([string]::IsNullOrEmpty($CheckDB))) -or ($IsAzureSQLDB)) { - if($DBSwitched -ne "Y"){ + if ($DBSwitched -ne "Y") { Write-Host " " -NoNewLine } $CheckDBQuery = new-object System.Data.SqlClient.SqlCommand @@ -4225,36 +4206,27 @@ ELSE IF ( (SELECT PARSENAME(CONVERT(NVARCHAR(128), SERVERPROPERTY ('PRODUCTVERSI if ($DebugInfo) { Write-Host " ->Exporting execution plans" -fore yellow } + #Add column to table + $BlitzQSTbl.Columns.Add("SQLPlan File", [string]) | Out-Null #Set counter used for row retrieval $RowNum = 0 #Setting $i to 0 $i = 0 - $FileSOrder = "QueryStore" - + foreach ($row in $BlitzQSTbl) { #Increment file name counter $i += 1 + $SQLPlanFile = "-- N/A --" #Get only the column storing the execution plan data that's not NULL and write it to a file if ($BlitzQSTbl.Rows[$RowNum]["query_plan_xml"] -ne [System.DBNull]::Value) { - $BlitzQSTbl.Rows[$RowNum]["query_plan_xml"] | Format-XML | Set-Content -Path $PlanOutDir\$($FileSOrder)_$($i).sqlplan -Force - } - #Increment row retrieval counter - $RowNum += 1 - } - $BlitzQSTbl.Columns.Add("SQLPlan File", [string]) | Out-Null - $RowNum = 0 - $i = 0 - - foreach ($row in $BlitzQSTbl) { - if ($BlitzQSTbl.Rows[$RowNum]["query_plan_xml"] -ne [System.DBNull]::Value) { - $i += 1 $SQLPlanFile = "QueryStore_" + $i + ".sqlplan" - + $BlitzQSTbl.Rows[$RowNum]["query_plan_xml"] | Format-XML | Set-Content -Path "$PlanOutDir\$SQLPlanFile" -Force } - else { $SQLPlanFile = "-- N/A --" } - $BlitzQSTbl.Rows[$RowNum]["SQLPlan File"] = $SQLPlanFile + $BlitzQSTbl.Rows[$RowNum]["SQLPlan File"] = $SQLPlanFile + #Increment row retrieval counter $RowNum += 1 } + if ($ToHTML -eq "Y") { #adding query name @@ -4266,7 +4238,6 @@ ELSE IF ( (SELECT PARSENAME(CONVERT(NVARCHAR(128), SERVERPROPERTY ('PRODUCTVERSI if ($BlitzQSTbl.Rows[$RowNum]["query_sql_text"] -ne [System.DBNull]::Value) { $i += 1 $QueryName = "QueryStore_" + $i + ".query" - } else { $QueryName = "" } $BlitzQSTbl.Rows[$RowNum]["Query"] = $QueryName @@ -4862,6 +4833,7 @@ ELSE IF ( (SELECT PARSENAME(CONVERT(NVARCHAR(128), SERVERPROPERTY ('PRODUCTVERSI if ($DebugInfo) { Write-Host " ->Exporting execution plans related to deadlocks." -fore yellow } + $TblLockPlans.Columns.Add("PlanID", [string]) | Out-Null #Set counter used for row retrieval $RowNum = 0 #Setting $i to 0 @@ -4870,10 +4842,13 @@ ELSE IF ( (SELECT PARSENAME(CONVERT(NVARCHAR(128), SERVERPROPERTY ('PRODUCTVERSI foreach ($row in $TblLockPlans) { #Increment file name counter $i += 1 + $SQLPlanFile = "-- N/A --" #Get only the column storing the execution plan data that's not NULL and write it to a file if ($TblLockPlans.Rows[$RowNum]["query_plan"] -ne [System.DBNull]::Value) { - $TblLockPlans.Rows[$RowNum]["query_plan"] | Format-XML | Set-Content -Path $PlanOutDir\"Deadlock_"$($i).sqlplan -Force - } + $SQLPlanFile = "Deadlock_" + $i + ".sqlplan" + $TblLockPlans.Rows[$RowNum]["query_plan"] | Format-XML | Set-Content -Path "$PlanOutDir\$SQLPlanFile" -Force + } + $TblLockPlans.Rows[$RowNum]["PlanID"] = $SQLPlanFile #Increment row retrieval counter $RowNum += 1 } @@ -4882,19 +4857,6 @@ ELSE IF ( (SELECT PARSENAME(CONVERT(NVARCHAR(128), SERVERPROPERTY ('PRODUCTVERSI if ($DebugInfo) { Write-Host " ->Converting sp_BlitzLock output to HTML" -fore yellow } - $TblLockPlans.Columns.Add("PlanID", [string]) | Out-Null - $RowNum = 0 - $i = 0 - foreach ($row in $TblLockPlans) { - if ($TblLockPlans.Rows[$RowNum]["query_plan"] -ne [System.DBNull]::Value) { - $i += 1 - $SQLPlanFile = "Deadlock_" + $i + ".sqlplan" - } - else { $SQLPlanFile = "-- N/A --" } - $TblLockPlans.Rows[$RowNum]["PlanID"] = $SQLPlanFile - $RowNum += 1 - } - $HtmlTabName = "Deadlocks" if (!([string]::IsNullOrEmpty($CheckDB))) { @@ -5111,7 +5073,7 @@ ELSE IF ( (SELECT PARSENAME(CONVERT(NVARCHAR(128), SERVERPROPERTY ('PRODUCTVERSI $SQLPlanNum = 1 #List of columns that should be returned from the data set - $DataSetCols = @("database_name", "creation_time", + $DataSetCols = @("database_name", "PlanID", "creation_time", "last_execution_time", "execution_count", "executions_per_second", "total_worker_time_ms", "avg_worker_time_ms", "total_elapsed_time_ms", @@ -5125,25 +5087,12 @@ ELSE IF ( (SELECT PARSENAME(CONVERT(NVARCHAR(128), SERVERPROPERTY ('PRODUCTVERSI } #Loop through each Excel row foreach ($row in $TblLockPlans) { - $SQLPlanFile = "-- N/A --" - #Changing the value of $SQLPlanFile only for records where execution plan exists - if ($TblLockPlans.Rows[$RowNum]["query_plan"] -ne [System.DBNull]::Value) { - $SQLPlanFile = "Deadlock_" + $SQLPlanNum + ".sqlplan" - } foreach ($col in $DataSetCols) { #Fill Excel cell with value from the data set $ExcelSheet.Cells.Item($ExcelStartRow, $ExcelColNum) = $TblLockPlans.Rows[$RowNum][$col] #move to the next column $ExcelColNum += 1 - <# - If the next column is the SQLPlan Name column - fill it separately and then move to next column - #> - if ($ExcelColNum -eq 2) { - $ExcelSheet.Cells.Item($ExcelStartRow, $ExcelColNum) = $SQLPlanFIle - #move to the next column - $ExcelColNum += 1 - } + } #move to the next row in the spreadsheet @@ -5152,8 +5101,6 @@ ELSE IF ( (SELECT PARSENAME(CONVERT(NVARCHAR(128), SERVERPROPERTY ('PRODUCTVERSI $RowNum += 1 # reset Excel column number so that next row population begins with column 1 $ExcelColNum = 1 - #Move to the next sqlplan file - $SQLPlanNum += 1 } ##Saving file @@ -5185,7 +5132,7 @@ ELSE IF ( (SELECT PARSENAME(CONVERT(NVARCHAR(128), SERVERPROPERTY ('PRODUCTVERSI [int]$TwoThirdsBlitzCache = [Math]::Floor([decimal]($BlitzCacheRecs / 1.5)) [string]$DBName = $DBArray | Group-Object -NoElement | Sort-Object Count | ForEach-Object Name | Select-Object -Last 1 [int]$DBCount = $DBArray | Group-Object -NoElement | Sort-Object Count | ForEach-Object Count | Select-Object -Last 1 - if (($DBCount -ge $TwoThirdsBlitzCache) -and ($DBName -ne "-- N/A --")) { + if (($DBCount -ge $TwoThirdsBlitzCache) -and ($DBName -ne "-- N/A --") -and (!([string]::IsNullOrEmpty($DBName)) )) { Write-Host " $DBName accounts for at least 2/3 of the records returned by sp_BlitzCache" $StepStart = get-date Write-Host " ->" -NoNewline @@ -5199,7 +5146,7 @@ ELSE IF ( (SELECT PARSENAME(CONVERT(NVARCHAR(128), SERVERPROPERTY ('PRODUCTVERSI #Only run the check if a specific database name has been provided if ((!([string]::IsNullOrEmpty($CheckDB))) -or ($IsAzureSQLDB)) { - if($DBSwitched -ne "Y"){ + if ($DBSwitched -ne "Y") { Write-Host " " -NoNewLine } [string]$Query = [System.IO.File]::ReadAllText("$ResourcesPath\GetStatsInfoForWholeDB.sql") @@ -5355,9 +5302,10 @@ ELSE IF ( (SELECT PARSENAME(CONVERT(NVARCHAR(128), SERVERPROPERTY ('PRODUCTVERSI } ### get index frag info [string]$Query = [System.IO.File]::ReadAllText("$ResourcesPath\GetIndexInfoForWholeDB.sql") - if($DBSwitched -ne "Y"){ + if ($DBSwitched -ne "Y") { Write-Host " " -NoNewLine - } elseif ($DBSwitched -eq "Y") { + } + elseif ($DBSwitched -eq "Y") { Write-Host " ->" -NoNewLine } if ($IsAzureSQLDB) { @@ -5677,40 +5625,23 @@ finally { ##Add plan file column $BlitzWhoAggTbl.Columns.Add("sqlplan_file", [string]) | Out-Null + ##Exporting execution plans to file and setting plan file names + if ($DebugInfo) { + Write-Host " ->Exporting execution plans" -fore yellow + } $RowNum = 0 - $i = 0 - + $i = 0 foreach ($row in $BlitzWhoAggTbl) { + $i += 1 + $SQLPlanFile = "-- N/A --" if ($BlitzWhoAggTbl.Rows[$RowNum]["query_plan"] -ne [System.DBNull]::Value) { - $i += 1 - $SQLPlanFile = "RunningNow_" + $i + ".sqlplan" + $SQLPlanFile = "RunningNow_" + $i + ".sqlplan" + $BlitzWhoAggTbl.Rows[$RowNum]["query_plan"] | Format-XML | Set-Content -Path "$PlanOutDir\$SQLPlanFile" -Force } - else { $SQLPlanFile = "-- N/A --" } $BlitzWhoAggTbl.Rows[$RowNum]["sqlplan_file"] = $SQLPlanFile $RowNum += 1 } - ##Exporting execution plans to file - #Set counter used for row retrieval - [int]$RowNum = 0 - #loop through each row - if ($DebugInfo) { - Write-Host " ->Exporting execution plans" -fore yellow - } - foreach ($row in $BlitzWhoAggTbl) { - <# - Get only the column storing the execution plan data that's - not NULL and write it to a file - #> - if ($BlitzWhoAggTbl.Rows[$RowNum]["query_plan"] -ne [System.DBNull]::Value) { - #Get session_id to append to filename - [string]$SQLPlanFile = $BlitzWhoAggTbl.Rows[$RowNum]["sqlplan_file"] - #Write execution plan to file - $BlitzWhoAggTbl.Rows[$RowNum]["query_plan"] | Format-XML | Set-Content -Path $PlanOutDir\$($SQLPlanFile) -Force - } - #Increment row retrieval counter - $RowNum += 1 - } if ($ToHTML -eq "Y") { if ($DebugInfo) { @@ -5775,8 +5706,9 @@ finally { $i = 0 foreach ($row in $BlitzWhoAggTbl) { + $i += 1 if ($BlitzWhoAggTbl.Rows[$RowNum]["query_text"] -ne [System.DBNull]::Value) { - $i += 1 + $QueryName = "RunningNow_" + $i + ".query" } @@ -6155,9 +6087,10 @@ finally { "@ $html | Out-File -Encoding utf8 -FilePath "$HTMLOutDir\ExecutionLog.html" $AzureEnv = "" - if($IsAzureSQLMI){ + if ($IsAzureSQLMI) { $AzureEnv = "- Azure SQL MI" - }elseif($IsAzureSQLDB){ + } + elseif ($IsAzureSQLDB) { $AzureEnv = "- Azure SQL DB" $DbPortion = "- $ASDBName" } diff --git a/Resources/PSBlitzOutput.xlsx b/Resources/PSBlitzOutput.xlsx index b8b5e37803e96e5ca879cd0044bc5104ff041e01..16aef6c95ae045f6fde7d46ac57c32e2c13293d2 100644 GIT binary patch delta 24076 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 delta 24348 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