Get-DbaDbPartitionScheme
View SourceSynopsis
Retrieves partition schemes from SQL Server databases for table partitioning management.
Description
Retrieves partition scheme objects from one or more SQL Server databases, providing details about how partitioned tables and indexes are distributed across filegroups. Partition schemes define the physical storage mapping for partitioned tables by specifying which filegroups contain each partition’s data. This function helps DBAs inventory existing partition schemes when planning table partitioning strategies, troubleshooting performance issues with partitioned tables, or preparing for partition maintenance operations.
Syntax
Get-DbaDbPartitionScheme
[-SqlInstance] <DbaInstanceParameter[]>
[[-SqlCredential] <PSCredential>]
[[-Database] <Object[]>]
[[-ExcludeDatabase] <Object[]>]
[[-PartitionScheme] <String[]>]
[-EnableException]
[<CommonParameters>]
Examples
Example: 1
PS C:\> Get-DbaDbPartitionScheme -SqlInstance sql2016
Gets all database partition schemes.
Example: 2
PS C:\> Get-DbaDbPartitionScheme -SqlInstance Server1 -Database db1
Gets the partition schemes for the db1 database.
Example: 3
PS C:\> Get-DbaDbPartitionScheme -SqlInstance Server1 -ExcludeDatabase db1
Gets the partition schemes for all databases except db1.
Example: 4
PS C:\> 'Sql1','Sql2/sqlexpress' | Get-DbaDbPartitionScheme
Gets the partition schemes for the databases on Sql1 and Sql2/sqlexpress.
Example: 5
PS C:\> Get-DbaDbPartitionScheme -SqlInstance localhost -Database TestDB -PartitionScheme partSch01
Gets the partition scheme partSch01 for the TestDB on localhost.
Required Parameters
-SqlInstance
The target SQL Server instance or instances
| Property | Value |
|---|---|
| Alias | |
| Required | True |
| Pipeline | true (ByValue) |
| Default Value |
Optional Parameters
-SqlCredential
Login to the target instance using alternative credentials. Accepts PowerShell credentials (Get-Credential).
Windows Authentication, SQL Server Authentication, Active Directory - Password, and Active Directory - Integrated are all supported.
For MFA support, please use Connect-DbaInstance.
| Property | Value |
|---|---|
| Alias | |
| Required | False |
| Pipeline | false |
| Default Value |
-Database
Specifies which databases to scan for partition schemes. Accepts multiple database names.
Use this when you need to check partition schemes in specific databases rather than all accessible databases on the instance.
| Property | Value |
|---|---|
| Alias | |
| Required | False |
| Pipeline | false |
| Default Value |
-ExcludeDatabase
Specifies databases to skip when scanning for partition schemes. Accepts multiple database names.
Use this to exclude system databases or specific databases you don’t want to check, such as development or staging databases during production audits.
| Property | Value |
|---|---|
| Alias | |
| Required | False |
| Pipeline | false |
| Default Value |
-PartitionScheme
Specifies which partition schemes to retrieve by name. Accepts multiple scheme names for targeted retrieval.
Use this when you need to examine specific partition schemes rather than all schemes in the database, such as when troubleshooting performance issues with particular partitioned tables.
| Property | Value |
|---|---|
| Alias | Name |
| Required | False |
| Pipeline | false |
| Default Value |
-EnableException
By default, when something goes wrong we try to catch it, interpret it and give you a friendly warning message.
This avoids overwhelming you with “sea of red” exceptions, but is inconvenient because it basically disables advanced scripting.
Using this switch turns this “nice by default” feature off and enables you to catch exceptions with your own try/catch.
| Property | Value |
|---|---|
| Alias | |
| Required | False |
| Pipeline | false |
| Default Value | False |
Outputs
Microsoft.SqlServer.Management.Smo.PartitionScheme
Returns one PartitionScheme object per partition scheme found in the specified databases. When no filters are applied, all accessible databases are scanned and all partition schemes are returned.
Default display properties (via Select-DefaultView):
- ComputerName: The computer name of the SQL Server instance
- InstanceName: The SQL Server instance name
- SqlInstance: The full SQL Server instance name (computer\instance)
- Database: The database containing this partition scheme
- Name: The name of the partition scheme
- PartitionFunction: The name of the partition function used by this scheme
Additional properties available (from SMO PartitionScheme object):
- PartitionFunctionName: The partition function name (same as PartitionFunction)
- Urn: The Uniform Resource Name of the partition scheme object
- State: The current state of the SMO object (Existing, Creating, Pending, Dropping, etc.)
- Parent: The database object that contains this partition scheme All properties from the base SMO PartitionScheme object are accessible using Select-Object *.
dbatools