-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathDAtabase Freespace.ps1
More file actions
73 lines (57 loc) · 2.44 KB
/
DAtabase Freespace.ps1
File metadata and controls
73 lines (57 loc) · 2.44 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
Get-Help Get-DbaDatabaseFreespace -ShowWindow
# details for a single instance
$server = ''
Get-DbaDatabaseFreespace -sqlserver $server
# For a number of instances
$SQLServers == '',''
Get-DbaDatabaseFreespace -SqlInstance $SQLServers | Out-GridView
## Get the total size of a database
$server = ''
$dbName = ''
$database = @{Name = 'Database'; Expression = {$dbname}}
$FileSize = @{Name = 'FileSize'; Expression = {$_.Sum}}
Get-DbaDatabaseFreespace -SqlServer $server -database $dbName |
Select Database,FileSizeMB |
Measure-Object FileSizeMB -Sum |
Select $database ,Property, $filesize
## Total Size of all databases on an instance
$server = ''
$srv = Connect-DbaSqlServer $server
$SizeonDisk = @()
$srv.Databases |ForEach-Object {
$dbName = $_.Name
$database = @{Name = 'Database'; Expression = {$dbname}}
$FileSize = @{Name = 'FileSize'; Expression = {$_.Sum}}
$SizeOnDisk += Get-DbaDatabaseFreespace -SqlServer $server -database $dbName | Select Database,FileSizeMB | Measure-Object FileSizeMb -Sum | Select $database ,Property, $Filesize
}
$SizeOnDisk
## Sort the sizes
$SizeOnDisk |Sort-Object Filesize -Descending
## Do things with thte results
## In a text file
$SizeonDisk | Out-file C:\temp\Sizeondisk.txt
Invoke-Item C:\temp\Sizeondisk.txt
## In a CSV
$SizeonDisk | Export-Csv C:\temp\Sizeondisk.csv -NoTypeInformation
notepad C:\temp\Sizeondisk.csv
## Email
Send-MailMessage -SmtpServer $smtp -From DBATeam@TheBeard.local -To JuniorDBA-Smurf@TheBeard.Local `
-Subject "Smurf this needs looking At" -Body $SizeonDisk
## Email as Attachment
Send-MailMessage -SmtpServer $smtp -From DBATeam@TheBeard.local -To JuniorDBA-Smurf@TheBeard.Local `
-Subject "Smurf this needs looking At" -Body "Smurf" -Attachments C:\temp\Sizeondisk.csv
## Only those 80% + full
Get-DbaDatabaseFreespace -SqlServer $server | Where-Object {$_.PercentUsed -gt 80}
## File growth settings
Get-DbaDatabaseFreespace -SqlServer $server | Where-Object {$_.AutoGrowType -ne 'Mb'}
## Get FileSize, Used and Free Space per database
$server = ''
$srv = Connect-DbaSqlServer $server
$SizeonDisk = @()
$srv.Databases |ForEach-Object {
$dbName = $_.Name
$database = @{Name = 'Database'; Expression = {$dbname}}
$MB = @{Name = 'Mbs'; Expression = {$_.Sum}}
$SizeOnDisk += Get-DbaDatabaseFreespace -SqlServer $server -database $dbName | Select Database,FileSizeMB, UsedSpaceMB, FreeSpaceMb | Measure-Object FileSizeMb , UsedSpaceMB, FreeSpaceMb -Sum | Select $database ,Property, $Mb
}
$SizeOnDisk